From f62a466ff046aef908588ed50b7f1c83535d8bb6 Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Thu, 30 Apr 2026 15:20:29 -0700 Subject: [PATCH 01/73] Rename get-resource-lf-tags.rst to list-lf-tags.rst --- .../lakeformation/{get-resource-lf-tags.rst => list-lf-tags.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename awscli/examples/lakeformation/{get-resource-lf-tags.rst => list-lf-tags.rst} (100%) diff --git a/awscli/examples/lakeformation/get-resource-lf-tags.rst b/awscli/examples/lakeformation/list-lf-tags.rst similarity index 100% rename from awscli/examples/lakeformation/get-resource-lf-tags.rst rename to awscli/examples/lakeformation/list-lf-tags.rst From f2964a5c4eccadfe83179c9636fdf4f934a32ad7 Mon Sep 17 00:00:00 2001 From: Andrew Asseily <77591070+AndrewAsseily@users.noreply.github.com> Date: Tue, 12 May 2026 10:47:43 -0400 Subject: [PATCH 02/73] Add Express Configuration example to create-db-cluster CLI docs (#10301) Co-authored-by: Prashant Bharti --- awscli/examples/rds/create-db-cluster.rst | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/awscli/examples/rds/create-db-cluster.rst b/awscli/examples/rds/create-db-cluster.rst index 02181f03ca8d..d3452dd6342e 100644 --- a/awscli/examples/rds/create-db-cluster.rst +++ b/awscli/examples/rds/create-db-cluster.rst @@ -115,4 +115,71 @@ Output:: } } +**Example 3: To create an Aurora PostgreSQL DB cluster with Express Configuration** + +The following ``create-db-cluster`` example creates an Aurora PostgreSQL-compatible DB cluster with Express Configuration enabled. Unlike the standard create cluster, Express Configuration automatically adds a DB instance ``sample-cluster-instance-1`` for your DB cluster, so you don't need to separately call the ``create-db-instance`` AWS CLI command. :: + + aws rds create-db-cluster \ + --db-cluster-identifier sample-cluster \ + --engine aurora-postgresql \ + --with-express-configuration + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1c", + "us-east-1a", + "us-east-1b" + ], + "BackupRetentionPeriod": 7, + "DBClusterIdentifier": "sample-cluster", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "Status": "creating", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "17.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "06:15-06:45", + "PreferredMaintenanceWindow": "sat:03:44-sat:04:14", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "sample-cluster-instance-1", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [], + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-EXAMPLE4RESOURCE", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": true, + "ClusterCreateTime": "2026-01-10T22:14:02Z", + "EngineMode": "provisioned", + "AutoMinorVersionUpgrade": true, + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [], + "TagList": [], + "ServerlessV2ScalingConfiguration": { + "MinCapacity": 0.0, + "MaxCapacity": 16.0, + "SecondsUntilAutoPause": 300 + }, + "ServerlessV2PlatformVersion": "3", + "DatabaseInsightsMode": "standard", + "PerformanceInsightsEnabled": false, + "LocalWriteForwardingStatus": "disabled", + "EngineLifecycleSupport": "open-source-rds-extended-support" + } + } + For more information, see `Creating an Amazon Aurora DB cluster `__ in the *Amazon Aurora User Guide*. From e2b9d007552b1e147bef3eef227d238d56152741 Mon Sep 17 00:00:00 2001 From: Andrew Asseily <77591070+AndrewAsseily@users.noreply.github.com> Date: Tue, 12 May 2026 13:27:54 -0400 Subject: [PATCH 03/73] Add CLI examples for ControlTower APIs (#10302) Co-authored-by: eodeyemi14 <84422131+eodeyemi14@users.noreply.github.com> --- .../controltower/create-landing-zone.rst | 16 ++++++ .../controltower/delete-landing-zone.rst | 14 +++++ .../controltower/disable-baseline.rst | 14 +++++ .../examples/controltower/disable-control.rst | 15 ++++++ .../examples/controltower/enable-baseline.rst | 36 +++++++++++++ .../examples/controltower/enable-control.rst | 16 ++++++ .../controltower/get-baseline-operation.rst | 21 ++++++++ awscli/examples/controltower/get-baseline.rst | 16 ++++++ .../controltower/get-control-operation.rst | 24 +++++++++ .../controltower/get-enabled-baseline.rst | 29 +++++++++++ .../controltower/get-enabled-control.rst | 39 ++++++++++++++ .../get-landing-zone-operation.rst | 19 +++++++ .../controltower/get-landing-zone.rst | 52 +++++++++++++++++++ .../examples/controltower/list-baselines.rst | 49 +++++++++++++++++ .../controltower/list-control-operations.rst | 34 ++++++++++++ .../controltower/list-enabled-baselines.rst | 38 ++++++++++++++ .../controltower/list-enabled-controls.rst | 37 +++++++++++++ .../list-landing-zone-operations.rst | 34 ++++++++++++ .../controltower/list-landing-zones.rst | 17 ++++++ .../controltower/list-tags-for-resource.rst | 16 ++++++ .../controltower/reset-enabled-baseline.rst | 14 +++++ .../controltower/reset-enabled-control.rst | 14 +++++ .../controltower/reset-landing-zone.rst | 14 +++++ awscli/examples/controltower/tag-resource.rst | 11 ++++ .../examples/controltower/untag-resource.rst | 11 ++++ .../controltower/update-enabled-baseline.rst | 30 +++++++++++ .../controltower/update-enabled-control.rst | 15 ++++++ .../controltower/update-landing-zone.rst | 16 ++++++ 28 files changed, 661 insertions(+) create mode 100644 awscli/examples/controltower/create-landing-zone.rst create mode 100644 awscli/examples/controltower/delete-landing-zone.rst create mode 100644 awscli/examples/controltower/disable-baseline.rst create mode 100644 awscli/examples/controltower/disable-control.rst create mode 100644 awscli/examples/controltower/enable-baseline.rst create mode 100644 awscli/examples/controltower/enable-control.rst create mode 100644 awscli/examples/controltower/get-baseline-operation.rst create mode 100644 awscli/examples/controltower/get-baseline.rst create mode 100644 awscli/examples/controltower/get-control-operation.rst create mode 100644 awscli/examples/controltower/get-enabled-baseline.rst create mode 100644 awscli/examples/controltower/get-enabled-control.rst create mode 100644 awscli/examples/controltower/get-landing-zone-operation.rst create mode 100644 awscli/examples/controltower/get-landing-zone.rst create mode 100644 awscli/examples/controltower/list-baselines.rst create mode 100644 awscli/examples/controltower/list-control-operations.rst create mode 100644 awscli/examples/controltower/list-enabled-baselines.rst create mode 100644 awscli/examples/controltower/list-enabled-controls.rst create mode 100644 awscli/examples/controltower/list-landing-zone-operations.rst create mode 100644 awscli/examples/controltower/list-landing-zones.rst create mode 100644 awscli/examples/controltower/list-tags-for-resource.rst create mode 100644 awscli/examples/controltower/reset-enabled-baseline.rst create mode 100644 awscli/examples/controltower/reset-enabled-control.rst create mode 100644 awscli/examples/controltower/reset-landing-zone.rst create mode 100644 awscli/examples/controltower/tag-resource.rst create mode 100644 awscli/examples/controltower/untag-resource.rst create mode 100644 awscli/examples/controltower/update-enabled-baseline.rst create mode 100644 awscli/examples/controltower/update-enabled-control.rst create mode 100644 awscli/examples/controltower/update-landing-zone.rst diff --git a/awscli/examples/controltower/create-landing-zone.rst b/awscli/examples/controltower/create-landing-zone.rst new file mode 100644 index 000000000000..05a64f67cc5c --- /dev/null +++ b/awscli/examples/controltower/create-landing-zone.rst @@ -0,0 +1,16 @@ +**To create a Control Tower landing zone** + +The following ``create-landing-zone`` example creates AWS Control Tower landing zone. :: + + aws controltower create-landing-zone \ + --landing-zone-version 3.3 \ + --manifest "file://LandingZoneManifest.json" + +Output:: + + { + "arn": "arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5", + "operationIdentifier": "55XXXXXX-e2XX-41XX-a7XX-446XXXXXXXXX" + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/delete-landing-zone.rst b/awscli/examples/controltower/delete-landing-zone.rst new file mode 100644 index 000000000000..88ac8b8362df --- /dev/null +++ b/awscli/examples/controltower/delete-landing-zone.rst @@ -0,0 +1,14 @@ +**To decommission a landing zone** + +The following ``delete-landing-zone`` example decommissions the AWS Control Tower landing zone. :: + + aws controltower delete-landing-zone \ + --landing-zone-identifier arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5 + +Output:: + + { + "operationIdentifier": "47XXXXXX-a6XX-82XX-c9XX-432XXXXXXXXX" + } + +For more information, see `Decommission an AWS Control Tower landing zone `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/disable-baseline.rst b/awscli/examples/controltower/disable-baseline.rst new file mode 100644 index 000000000000..f2fdcd0a8d46 --- /dev/null +++ b/awscli/examples/controltower/disable-baseline.rst @@ -0,0 +1,14 @@ +**To disable a Control Tower baseline** + +The following ``disable-baseline`` example disables an AWS Control Tower baseline. :: + + aws controltower disable-baseline \ + --enabled-baseline-identifier arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2 + +Output:: + + { + "operationIdentifier": "b33486d7-5396-4ad0-9eae-3a57969fe8cd" + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/disable-control.rst b/awscli/examples/controltower/disable-control.rst new file mode 100644 index 000000000000..8611db947a19 --- /dev/null +++ b/awscli/examples/controltower/disable-control.rst @@ -0,0 +1,15 @@ +**To disable a Control Tower control** + +The following ``disable-control`` example disables an AWS Control Tower enabled control. :: + + aws controltower disable-control \ + --control-identifier arn:aws:controlcatalog:::control/497wrm2xnk1wxlf4obrxxxxxx \ + --target-identifier arn:aws:organizations::123456789012:ou/o-s64ryxxxxx/ou-oqxx-i5wnxxxx + +Output:: + + { + "operationIdentifier": "b8f0dxxx-08xx-43xx-a2xx-568e9922xxxx" + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/enable-baseline.rst b/awscli/examples/controltower/enable-baseline.rst new file mode 100644 index 000000000000..b1176eded6fc --- /dev/null +++ b/awscli/examples/controltower/enable-baseline.rst @@ -0,0 +1,36 @@ +**Example 1: To enable a Control Tower baseline that is disabled** + +The following ``enable-baseline`` example enables an AWS Control Tower baseline if baseline ``IdentityCenterBaseline`` is disabled. :: + + aws controltower enable-baseline \ + --baseline-identifier arn:aws:controltower:us-east-1::baseline/17BSJV3IGJ2QSGA2 \ + --baseline-version 4.0 \ + --target-identifier arn:aws:organizations::123456789012:ou/o-s64ryixxxx/ou-oq9f-i5wnxxxx + +Output:: + + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2", + "operationIdentifier": "51e190ac-8a37-4f6d-b63c-fb5104b5db38" + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. + +**Example 2: To enable a Control Tower baseline that is enabled** + +The following ``enable-baseline`` example enables an AWS Control Tower baseline if baseline ``IdentityCenterBaseline`` is enabled. :: + + aws controltower enable-baseline \ + --baseline-identifier arn:aws:controltower:us-east-1::baseline/17BSJV3IGJ2QSGA2 \ + --baseline-version 4.0 \ + --target-identifier arn:aws:organizations::123456789012:ou/o-s64ryixxxx/ou-oqxx-i5wnxxxx \ + --parameters '[{"key":"IdentityCenterEnabledBaselineArn","value":"arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XAJNZNCBC1I386C7B"}]' + +Output:: + + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2", + "operationIdentifier": "51e190ac-8a37-4f6d-b63c-fb5104b5db38" + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/enable-control.rst b/awscli/examples/controltower/enable-control.rst new file mode 100644 index 000000000000..31599561b25a --- /dev/null +++ b/awscli/examples/controltower/enable-control.rst @@ -0,0 +1,16 @@ +**To enable a Control Tower control** + +The following ``enable-control`` example enables an AWS Control Tower control. :: + + aws controltower enable-control \ + --control-identifier arn:aws:controlcatalog:::control/497wrm2xnk1wxlf4obrxxxxxx \ + --target-identifier arn:aws:organizations::123456789012:ou/o-s64ryxxxxx/ou-oqxx-i5wnxxxx + +Output:: + + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/18J5KBJ3W3VTIRLV", + "operationIdentifier": "7691fc5a-de87-4540-8c95-b0aabd56382c" + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-baseline-operation.rst b/awscli/examples/controltower/get-baseline-operation.rst new file mode 100644 index 000000000000..3508febefd51 --- /dev/null +++ b/awscli/examples/controltower/get-baseline-operation.rst @@ -0,0 +1,21 @@ +**To get a Control Tower baseline operation** + +The following ``get-baseline-operation`` example gets details of an AWS Control Tower baseline operation. :: + + aws controltower get-baseline-operation \ + --operation-identifier "51e190ac-8a37-4f6d-b63c-fb5104b5db38" + +Output:: + + { + "baselineOperation": { + "endTime": "2025-04-17T23:48:46+00:00", + "operationIdentifier": "51e190ac-8a37-4f6d-b63c-fb5104b5db38", + "operationType": "ENABLE_BASELINE", + "startTime": "2025-04-17T23:46:37+00:00", + "status": "SUCCEEDED", + "statusMessage": "AWS Control Tower completed the baseline operation successfully." + } + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-baseline.rst b/awscli/examples/controltower/get-baseline.rst new file mode 100644 index 000000000000..60956a7116b0 --- /dev/null +++ b/awscli/examples/controltower/get-baseline.rst @@ -0,0 +1,16 @@ +**To get a Control Tower baseline** + +The following ``get-baseline`` example gets details of an AWS Control Tower baseline. :: + + aws controltower get-baseline \ + --baseline-identifier arn:aws:controltower:us-east-1::baseline/LN25R72TTG6IGPTQ + +Output:: + + { + "arn": "arn:aws:controltower:us-east-1::baseline/LN25R72TTG6IGPTQ", + "description": "Sets up shared resources for AWS Identity Center, which prepares the AWSControlTowerBaseline to set up Identity Center access for accounts.", + "name": "IdentityCenterBaseline" + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-control-operation.rst b/awscli/examples/controltower/get-control-operation.rst new file mode 100644 index 000000000000..7ff42089460d --- /dev/null +++ b/awscli/examples/controltower/get-control-operation.rst @@ -0,0 +1,24 @@ +**To get Control Tower control operations** + +The following ``get-control-operation`` example gets details of an AWS Control Tower control operation. :: + + aws controltower get-control-operation \ + --operation-identifier "7691fc5a-de87-4540-8c95-b0aabd56382c" + +Output:: + + { + "controlOperation": { + "controlIdentifier": "arn:aws:controlcatalog:::control/497wrm2xnk1wxlf4obrdo7mej", + "enabledControlIdentifier": "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/18J5KBJ3W3VTIRLV", + "endTime": "2025-04-17T03:08:55+00:00", + "operationIdentifier": "7691fc5a-de87-4540-8c95-b0aabd56382c", + "operationType": "ENABLE_CONTROL", + "startTime": "2025-04-17T03:07:52+00:00", + "status": "SUCCEEDED", + "statusMessage": "Operation was successful.", + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-s64ryixxxx/ou-oqxx-i5wnxxxx" + } + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-enabled-baseline.rst b/awscli/examples/controltower/get-enabled-baseline.rst new file mode 100644 index 000000000000..4cbce3ccdca8 --- /dev/null +++ b/awscli/examples/controltower/get-enabled-baseline.rst @@ -0,0 +1,29 @@ +**To get a Control Tower enabled baseline** + +The following ``get-enabled-baseline`` example gets details of an AWS Control Tower enabled baseline. :: + + aws controltower get-enabled-baseline \ + --enabled-baseline-identifier arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2 + +Output:: + + { + "enabledBaselineDetails": { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2", + "baselineIdentifier": "arn:aws:controltower:us-east-1::baseline/17BSJV3IGJ2QSGA2", + "baselineVersion": "4.0", + "parameters": [ + { + "key": "IdentityCenterEnabledBaselineArn", + "value": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XAJNZNCBC1I386C7B" + } + ], + "statusSummary": { + "lastOperationIdentifier": "51e190ac-8a37-4f6d-b63c-fb5104b5db38", + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-3onqfufxxx/ou-g8xx-5kluxxxx" + } + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-enabled-control.rst b/awscli/examples/controltower/get-enabled-control.rst new file mode 100644 index 000000000000..ab750067d083 --- /dev/null +++ b/awscli/examples/controltower/get-enabled-control.rst @@ -0,0 +1,39 @@ +**To get a Control Tower enabled control** + +The following ``get-enabled-control`` example gets details of an AWS Control Tower enabled control. :: + + aws controltower get-enabled-control \ + --enabled-control-identifier arn:aws:controltower:us-east-1:123456789012:enabledcontrol/26RGJRSLXCP1KW8D + +Output:: + + { + "enabledControlDetails": { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/26RGJRSLXCP1KW8D", + "controlIdentifier": "arn:aws:controltower:us-east-1::control/AWS-GR_CLOUDTRAIL_CHANGE_PROHIBITED", + "driftStatusSummary": { + "driftStatus": "NOT_CHECKING" + }, + "parameters": [], + "statusSummary": { + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-s64ryixxxx/ou-oqxx-i5wnxxxx", + "targetRegions": [ + { + "name": "ap-south-2" + }, + { + "name": "ap-south-1" + }, + { + "name": "eu-south-1" + }, + { + "name": "us-east-1" + } + ] + } + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-landing-zone-operation.rst b/awscli/examples/controltower/get-landing-zone-operation.rst new file mode 100644 index 000000000000..cde8c04eb761 --- /dev/null +++ b/awscli/examples/controltower/get-landing-zone-operation.rst @@ -0,0 +1,19 @@ +**To get a Control Tower landing zone operation** + +The following ``get-landing-zone-operation`` example gets details of an AWS Control Tower landing zone operation. :: + + aws controltower get-landing-zone-operation \ + --operation-identifier ee9d0d2d-6532-42d8-9b85-3fbb0700a606 + +Output:: + + { + "operationDetails": { + "operationIdentifier": "ee9d0d2d-6532-42d8-9b85-3fbb0700xxxx", + "operationType": "RESET", + "startTime": "2025-04-17T03:19:33+00:00", + "status": "IN_PROGRESS" + } + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/get-landing-zone.rst b/awscli/examples/controltower/get-landing-zone.rst new file mode 100644 index 000000000000..bf60d6dcb112 --- /dev/null +++ b/awscli/examples/controltower/get-landing-zone.rst @@ -0,0 +1,52 @@ +**To describe a Control Tower landing zone** + +The following ``get-landing-zone`` example gets details of an AWS Control Tower landing zone. :: + + aws controltower get-landing-zone \ + --landing-zone-identifier arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5 + +Output:: + + { + "landingZone": { + "arn": "arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5", + "driftStatus": { + "status": "IN_SYNC" + }, + "latestAvailableVersion": "3.3", + "manifest": { + "accessManagement": { + "enabled": true + }, + "securityRoles": { + "accountId": "098765432101" + }, + "governedRegions": [ + "us-east-1", + "us-west-2" + ], + "organizationStructure": { + "security": { + "name": "Security" + } + }, + "centralizedLogging": { + "accountId": "111122223333", + "configurations": { + "loggingBucket": { + "retentionDays": 365 + }, + "kmsKeyArn": "arn:aws:kms:us-east-1:123456789012:key/example-key-id", + "accessLoggingBucket": { + "retentionDays": 3650 + } + }, + "enabled": true + } + }, + "status": "ACTIVE", + "version": "3.3" + } + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-baselines.rst b/awscli/examples/controltower/list-baselines.rst new file mode 100644 index 000000000000..0e7fe3a7fb60 --- /dev/null +++ b/awscli/examples/controltower/list-baselines.rst @@ -0,0 +1,49 @@ +**To list Control Tower baselines** + +The following ``list-baselines`` example lists all available AWS Control Tower baselines. :: + + aws controltower list-baselines + +Output:: + + { + "baselines": [ + { + "arn": "arn:aws:controltower:us-east-1::baseline/4T4HA1KMO10S6311", + "description": "Sets up resources to monitor security and compliance of accounts in your organization.", + "name": "AuditBaseline" + }, + { + "arn": "arn:aws:controltower:us-east-1::baseline/J8HX46AHS5MIKQPD", + "description": "Sets up a central repository for logs of API activities and resource configurations from accounts in your organization.", + "name": "LogArchiveBaseline" + }, + { + "arn": "arn:aws:controltower:us-east-1::baseline/LN25R72TTG6IGPTQ", + "description": "Sets up shared resources for AWS Identity Center, which prepares the AWSControlTowerBaseline to set up Identity Center access for accounts.", + "name": "IdentityCenterBaseline" + }, + { + "arn": "arn:aws:controltower:us-east-1::baseline/17BSJV3IGJ2QSGA2", + "description": "Sets up resources and mandatory controls for member accounts within the target OU, required for AWS Control Tower governance.", + "name": "AWSControlTowerBaseline" + }, + { + "arn": "arn:aws:controltower:us-east-1::baseline/3WPD0NA6TJ9AOMU2", + "description": "Sets up a central AWS Backup vault in your organization.", + "name": "BackupCentralVaultBaseline" + }, + { + "arn": "arn:aws:controltower:us-east-1::baseline/H6C5JFCJJ3CPU3J5", + "description": "Sets up AWS Backup Audit Manager.", + "name": "BackupAdminBaseline" + }, + { + "arn": "arn:aws:controltower:us-east-1::baseline/APO9ATVPBKFRRGLK", + "description": "Sets up a local AWS Backup vault and attaches multiple AWS Backup plans.", + "name": "BackupBaseline" + } + ] + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-control-operations.rst b/awscli/examples/controltower/list-control-operations.rst new file mode 100644 index 000000000000..d80f9db6f2a6 --- /dev/null +++ b/awscli/examples/controltower/list-control-operations.rst @@ -0,0 +1,34 @@ +**To list Control Tower control operations** + +The following ``list-control-operations`` example lists details of AWS Control Tower controls in progress or queued. :: + + aws controltower list-control-operations + +Output:: + + { + "controlOperations": [ + { + "startTime": "2024-02-19T19:22:08+00:00", + "operationType": "ENABLE_CONTROL", + "status": "IN_PROGRESS", + "statusMessage": "Operation is in progress.", + "operationIdentifier": "f9f43b45-db27-44df-89d8-f9129e3632XX", + "controlIdentifier": "arn:aws:controltower:us-east-1::control/SKIBWKYUQAAC", + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-yy67i3pfv2/ou-slt4-8abknXXX", + "enabledControlIdentifier": "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/RWZFSHV2BBRU6JSE" + }, + { + "startTime": "2024-02-19T19:21:09+00:00", + "operationType": "ENABLE_CONTROL", + "status": "IN_PROGRESS", + "statusMessage": "Operation is in progress", + "operationIdentifier": "171ee0b1-e926-486e-9775-005bd244ccXX", + "controlIdentifier": "arn:aws:controltower:us-east-1::control/PDKYAANJEWJE", + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-yy67i3pfv2/ou-slt4-fl6miXXX", + "enabledControlIdentifier": "arn:aws:controltower:us-east-2:123456789012:enabledcontrol/XCNJARWZFSHV6JSE" + } + ] + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-enabled-baselines.rst b/awscli/examples/controltower/list-enabled-baselines.rst new file mode 100644 index 000000000000..f14645049e87 --- /dev/null +++ b/awscli/examples/controltower/list-enabled-baselines.rst @@ -0,0 +1,38 @@ +**To list Control Tower enabled baselines** + +The following ``list-enabled-baselines`` example lists all enabled AWS Control Tower baselines. :: + + aws controltower list-enabled-baselines + +Output:: + + { + "enabledBaselines": [ + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XAJNZNCBC1I386C7B", + "baselineIdentifier": "arn:aws:controltower:us-east-1::baseline/LN25R72TTG6IGPTQ", + "statusSummary": { + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:account/o-3onqfuxxxx/123456789012" + }, + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XAH3ZJL9DWA386CA5", + "baselineIdentifier": "arn:aws:controltower:us-east-1::baseline/4T4HA1KMO10S6311", + "statusSummary": { + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:account/o-3onqfuxxxx/012345098765" + }, + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XALFJ9548TL386CBT", + "baselineIdentifier": "arn:aws:controltower:us-east-1::baseline/J8HX46AHS5MIKQPD", + "statusSummary": { + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:account/o-3onqfuxxxx/098765432109" + } + ] + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-enabled-controls.rst b/awscli/examples/controltower/list-enabled-controls.rst new file mode 100644 index 000000000000..22897c76f523 --- /dev/null +++ b/awscli/examples/controltower/list-enabled-controls.rst @@ -0,0 +1,37 @@ +**To list Control Tower enabled controls** + +The following ``list-enabled-controls`` example gets details of AWS Control Tower enabled controls. :: + + aws controltower list-enabled-controls \ + --target-identifier arn:aws:organizations::123456789012:ou/o-s64ryxxxxx/ou-oqxx-i5wnxxxx + +Output:: + + { + "enabledControls": [ + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/26RGJRSLXCP1KW8D", + "controlIdentifier": "arn:aws:controltower:us-east-1::control/AWS-GR_CLOUDTRAIL_CHANGE_PROHIBITED", + "driftStatusSummary": { + "driftStatus": "NOT_CHECKING" + }, + "statusSummary": { + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-s64ryxxxxx/ou-oqxx-i5wnxxxx" + }, + { + "arn": "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/18AY24CWKM6IVSLU", + "controlIdentifier": "arn:aws:controltower:us-east-1::control/AWS-GR_CLOUDTRAIL_CLOUDWATCH_LOGS_ENABLED", + "driftStatusSummary": { + "driftStatus": "NOT_CHECKING" + }, + "statusSummary": { + "status": "SUCCEEDED" + }, + "targetIdentifier": "arn:aws:organizations::123456789012:ou/o-s64ryxxxxx/ou-oqxx-i5wnxxxx" + } + ] + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-landing-zone-operations.rst b/awscli/examples/controltower/list-landing-zone-operations.rst new file mode 100644 index 000000000000..7730b5320798 --- /dev/null +++ b/awscli/examples/controltower/list-landing-zone-operations.rst @@ -0,0 +1,34 @@ +**To list Control Tower landing zone operations** + +The following ``list-landing-zone-operations`` example lists AWS Control Tower landing zone operations. :: + + aws controltower list-landing-zone-operations + +Output:: + + { + "landingZoneOperations": [ + { + "operationIdentifier": "202ee056-5147-49fd-a7ad-8161e3bf043a", + "operationType": "RESET", + "status": "SUCCEEDED" + }, + { + "operationIdentifier": "dbd4a4b1-baf9-48cc-bd71-6b923d0f2339", + "operationType": "RESET", + "status": "SUCCEEDED" + }, + { + "operationIdentifier": "e6261ab8-3247-4052-af31-1afe7bb0593e", + "operationType": "UPDATE", + "status": "SUCCEEDED" + }, + { + "operationIdentifier": "507c6c87-89a8-435f-8697-b257a800f129", + "operationType": "UPDATE", + "status": "SUCCEEDED" + } + ] + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-landing-zones.rst b/awscli/examples/controltower/list-landing-zones.rst new file mode 100644 index 000000000000..89e8c642dcf6 --- /dev/null +++ b/awscli/examples/controltower/list-landing-zones.rst @@ -0,0 +1,17 @@ +**To list a Control Tower landing zone identifier** + +The following ``list-landing-zones`` example lists a Control Tower landing zone ``identifier``. :: + + aws controltower list-landing-zones + +Output:: + + { + "landingZones": [ + { + "arn": "arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5" + } + ] + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/list-tags-for-resource.rst b/awscli/examples/controltower/list-tags-for-resource.rst new file mode 100644 index 000000000000..3ef0c745e43e --- /dev/null +++ b/awscli/examples/controltower/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To list tags for Control Tower enabled controls** + +The following ``list-tags-for-resource`` example lists the tags for AWS Control Tower Enabled Controls. :: + + aws controltower list-tags-for-resource \ + --resource-arn "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/2H2AWUG4SKG81855" + +Output:: + + { + "tags": { + "TestTagKey": "TestTagValue" + } + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/reset-enabled-baseline.rst b/awscli/examples/controltower/reset-enabled-baseline.rst new file mode 100644 index 000000000000..c1d504a1db11 --- /dev/null +++ b/awscli/examples/controltower/reset-enabled-baseline.rst @@ -0,0 +1,14 @@ +**To reset a Control Tower enabled baseline** + +The following ``reset-enabled-baseline`` example resets an AWS Control Tower enabled baseline. :: + + aws controltower reset-enabled-baseline \ + --enabled-baseline-identifier arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2 + +Output:: + + { + "operationIdentifier": "214cde95-5c39-46b9-b429-4fad550a7096" + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/reset-enabled-control.rst b/awscli/examples/controltower/reset-enabled-control.rst new file mode 100644 index 000000000000..85475d6d4fab --- /dev/null +++ b/awscli/examples/controltower/reset-enabled-control.rst @@ -0,0 +1,14 @@ +**To reset a Control Tower enabled control** + +The following ``reset-enabled-control`` example resets an AWS Control Tower enabled control. :: + + aws controltower reset-enabled-control \ + --enabled-control-identifier arn:aws:controltower:us-east-1:123456789012:enabledcontrol/2H2AWUG4SKG81855 + +Output:: + + { + "operationIdentifier": "8276XXXX-b4XX-4eXX-96XX-881d2a4XXXXX" + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/reset-landing-zone.rst b/awscli/examples/controltower/reset-landing-zone.rst new file mode 100644 index 000000000000..0f77b62d8575 --- /dev/null +++ b/awscli/examples/controltower/reset-landing-zone.rst @@ -0,0 +1,14 @@ +**To reset a Control Tower landing zone** + +The following ``reset-landing-zone`` example resets a AWS Control Tower landing zone. :: + + aws controltower reset-landing-zone \ + --landing-zone-identifier arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5 + +Output:: + + { + "operationIdentifier": "73XXXXXX-b2XX-77XX-c6XX-374XXXXXXXXX" + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/tag-resource.rst b/awscli/examples/controltower/tag-resource.rst new file mode 100644 index 000000000000..789b497802aa --- /dev/null +++ b/awscli/examples/controltower/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a Control Tower enabled control** + +The following ``tag-resource`` example tags an AWS Control Tower enabled control. :: + + aws controltower tag-resource \ + --resource-arn "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/2H2AWUG4SKG81855" \ + --tags "TestTagKey=TestTagValue" + +This command produces no output. + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/untag-resource.rst b/awscli/examples/controltower/untag-resource.rst new file mode 100644 index 000000000000..b253bc277e0d --- /dev/null +++ b/awscli/examples/controltower/untag-resource.rst @@ -0,0 +1,11 @@ +**To untag a Control Tower enabled control** + +The following ``untag-resource`` example untags an AWS Control Tower enabled control. :: + + aws controltower untag-resource \ + --resource-arn "arn:aws:controltower:us-east-1:123456789012:enabledcontrol/2H2AWUG4SKG81855" \ + --tag-keys "TestTagKey" + +This command produces no output. + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/update-enabled-baseline.rst b/awscli/examples/controltower/update-enabled-baseline.rst new file mode 100644 index 000000000000..3f9e3215686b --- /dev/null +++ b/awscli/examples/controltower/update-enabled-baseline.rst @@ -0,0 +1,30 @@ +**Example 1: To update a disabled Control Tower baseline** + +The following ``update-enabled-baseline`` example updates an AWS Control Tower enabled baseline if baseline 'IdentityCenterBaseline' is disabled. :: + + aws controltower update-enabled-baseline \ + --baseline-version 4.0 \ + --enabled-baseline-identifier arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2 + +Output:: + + { + "operationIdentifier": "214cde95-5c39-46b9-b429-4fad550a7096" + } + +**Example 2: To update an enabled Control Tower baseline** + +The following ``update-enabled-baseline`` example updates an AWS Control Tower enabled baseline if baseline 'IdentityCenterBaseline' is enabled. :: + + aws controltower update-enabled-baseline \ + --baseline-version 4.0 \ + --enabled-baseline-identifier arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XOM12BEL4YD578CQ2 \ + --parameters '[{"key":"IdentityCenterEnabledBaselineArn","value":"arn:aws:controltower:us-east-1:123456789012:enabledbaseline/XAJNZNCBC1I386C7B"}]' + +Output:: + + { + "operationIdentifier": "b0f4a7c2-334d-48d9-971e-47fea9db3e8b" + } + +For more information, see `Types of baselines `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/update-enabled-control.rst b/awscli/examples/controltower/update-enabled-control.rst new file mode 100644 index 000000000000..8f3edc3d10e6 --- /dev/null +++ b/awscli/examples/controltower/update-enabled-control.rst @@ -0,0 +1,15 @@ +**To update a Control Tower enabled control** + +The following ``update-enabled-control`` example updates an AWS Control Tower enabled control. :: + + aws controltower update-enabled-control \ + --enabled-control-identifier arn:aws:controltower:us-east-1:123456789012:enabledcontrol/JSJN8UL0G2MWGRTZ \ + --parameters '[{"key":"AllowedRegions","value":["us-east-1","us-west-1","us-west-2","us-east-2"]}]' + +Output:: + + { + "operationIdentifier": "b8f0dxxx-08xx-43xx-a2xx-568e9922xxxx" + } + +For more information, see `About controls in AWS Control Tower `__ in the *AWS Control Tower User Guide*. diff --git a/awscli/examples/controltower/update-landing-zone.rst b/awscli/examples/controltower/update-landing-zone.rst new file mode 100644 index 000000000000..71348c44d36c --- /dev/null +++ b/awscli/examples/controltower/update-landing-zone.rst @@ -0,0 +1,16 @@ +**To update a Control Tower landing zone** + +The following ``update-landing-zone`` example updates AWS Control Tower landing zone. :: + + aws controltower update-landing-zone \ + --landing-zone-identifier arn:aws:controltower:us-east-1:123456789012:landingzone/13CJG46WZKXXX4X5 \ + --landing-zone-version 3.3 \ + --manifest "file://UpdateLandingZoneManifest.json" + +Output:: + + { + "operationIdentifier": "53XXXXXX-b2XX-97XX-c6XX-474XXXXXXXXX" + } + +For more information, see `Getting started with AWS Control Tower `__ in the *AWS Control Tower User Guide*. From 93b5d7a6fbada94dbd8fbb8ffd385f3a1f26a533 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 13 May 2026 18:11:17 +0000 Subject: [PATCH 04/73] Update to latest models --- .../api-change-arcregionswitch-69286.json | 5 + .../next-release/api-change-batch-38873.json | 5 + ...-change-bedrockagentcorecontrol-82849.json | 5 + .../api-change-billingconductor-89789.json | 5 + .../api-change-connect-34254.json | 5 + .../api-change-connectcampaignsv2-68179.json | 5 + .../api-change-connectcases-68990.json | 5 + .../next-release/api-change-dsql-60994.json | 5 + .../next-release/api-change-ec2-53549.json | 5 + .../next-release/api-change-es-93754.json | 5 + .../next-release/api-change-glue-56973.json | 5 + .../api-change-lightsail-11313.json | 5 + .../api-change-opensearch-53141.json | 5 + ...pi-change-partnercentralaccount-16592.json | 5 + .../next-release/api-change-pcs-15137.json | 5 + .../api-change-quicksight-76982.json | 5 + .../api-change-redshift-49770.json | 5 + .../api-change-rtbfabric-44231.json | 5 + .../api-change-sagemaker-45018.json | 5 + .../api-change-securityagent-89551.json | 5 + .../api-change-socialmessaging-84736.json | 5 + .../api-change-stepfunctions-91658.json | 5 + .../2022-07-26/service-2.json | 95 +- .../data/batch/2016-08-10/service-2.json | 8 +- .../2023-06-05/paginators-1.json | 18 + .../2023-06-05/service-2.json | 914 ++++++++++++--- .../2021-07-30/service-2.json | 1 + .../data/connect/2017-08-08/service-2.json | 6 +- .../2024-04-23/service-2.json | 11 +- .../connectcases/2022-10-03/service-2.json | 4 +- .../data/dsql/2018-05-10/paginators-1.json | 6 + .../data/dsql/2018-05-10/service-2.json | 484 ++++++++ .../data/dsql/2018-05-10/waiters-2.json | 23 + .../data/ec2/2016-11-15/service-2.json | 70 +- .../data/es/2015-01-01/service-2.json | 85 ++ .../data/glue/2017-03-31/service-2.json | 12 +- .../data/lightsail/2016-11-28/service-2.json | 16 + .../data/opensearch/2021-01-01/service-2.json | 86 ++ .../2025-04-04/service-2.json | 13 +- .../data/pcs/2023-02-10/service-2.json | 9 +- .../data/quicksight/2018-04-01/service-2.json | 20 + .../data/redshift/2012-12-01/service-2.json | 18 +- .../rtbfabric/2023-05-15/paginators-1.json | 12 + .../data/rtbfabric/2023-05-15/service-2.json | 873 +++++++++++++- .../data/rtbfabric/2023-05-15/waiters-2.json | 96 ++ .../data/sagemaker/2017-07-24/service-2.json | 112 +- .../2025-09-06/paginators-1.json | 18 + .../securityagent/2025-09-06/service-2.json | 1041 ++++++++++++++++- .../socialmessaging/2024-01-01/service-2.json | 47 +- .../2016-11-23/endpoint-rule-set-1.json | 419 ++++--- .../stepfunctions/endpoint-tests-1.json | 466 ++------ 51 files changed, 4298 insertions(+), 795 deletions(-) create mode 100644 .changes/next-release/api-change-arcregionswitch-69286.json create mode 100644 .changes/next-release/api-change-batch-38873.json create mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-82849.json create mode 100644 .changes/next-release/api-change-billingconductor-89789.json create mode 100644 .changes/next-release/api-change-connect-34254.json create mode 100644 .changes/next-release/api-change-connectcampaignsv2-68179.json create mode 100644 .changes/next-release/api-change-connectcases-68990.json create mode 100644 .changes/next-release/api-change-dsql-60994.json create mode 100644 .changes/next-release/api-change-ec2-53549.json create mode 100644 .changes/next-release/api-change-es-93754.json create mode 100644 .changes/next-release/api-change-glue-56973.json create mode 100644 .changes/next-release/api-change-lightsail-11313.json create mode 100644 .changes/next-release/api-change-opensearch-53141.json create mode 100644 .changes/next-release/api-change-partnercentralaccount-16592.json create mode 100644 .changes/next-release/api-change-pcs-15137.json create mode 100644 .changes/next-release/api-change-quicksight-76982.json create mode 100644 .changes/next-release/api-change-redshift-49770.json create mode 100644 .changes/next-release/api-change-rtbfabric-44231.json create mode 100644 .changes/next-release/api-change-sagemaker-45018.json create mode 100644 .changes/next-release/api-change-securityagent-89551.json create mode 100644 .changes/next-release/api-change-socialmessaging-84736.json create mode 100644 .changes/next-release/api-change-stepfunctions-91658.json diff --git a/.changes/next-release/api-change-arcregionswitch-69286.json b/.changes/next-release/api-change-arcregionswitch-69286.json new file mode 100644 index 000000000000..55d1bc0f7564 --- /dev/null +++ b/.changes/next-release/api-change-arcregionswitch-69286.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``arc-region-switch``", + "description": "Adds support for enabling and disabling Lambda event source mappings in Region switch plans." +} diff --git a/.changes/next-release/api-change-batch-38873.json b/.changes/next-release/api-change-batch-38873.json new file mode 100644 index 000000000000..eeefbb3150ca --- /dev/null +++ b/.changes/next-release/api-change-batch-38873.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``batch``", + "description": "Adds a billing callout to docs regarding using the CE Scale Down Delay feature" +} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-82849.json b/.changes/next-release/api-change-bedrockagentcorecontrol-82849.json new file mode 100644 index 000000000000..6c13439b8658 --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcorecontrol-82849.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore-control``", + "description": "Adds support for read-only summary APIs for Policy Engine, Policy, and Policy Generation resources, enabling metadata retrieval without KMS decryption for AWS Config integration." +} diff --git a/.changes/next-release/api-change-billingconductor-89789.json b/.changes/next-release/api-change-billingconductor-89789.json new file mode 100644 index 000000000000..6f94815984f3 --- /dev/null +++ b/.changes/next-release/api-change-billingconductor-89789.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``billingconductor``", + "description": "Add ConflictException to UpdateCustomLineItem operation." +} diff --git a/.changes/next-release/api-change-connect-34254.json b/.changes/next-release/api-change-connect-34254.json new file mode 100644 index 000000000000..2074d26cbec3 --- /dev/null +++ b/.changes/next-release/api-change-connect-34254.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connect``", + "description": "This change added three new EventSourceName for schedule notification feature" +} diff --git a/.changes/next-release/api-change-connectcampaignsv2-68179.json b/.changes/next-release/api-change-connectcampaignsv2-68179.json new file mode 100644 index 000000000000..5c79b142eec7 --- /dev/null +++ b/.changes/next-release/api-change-connectcampaignsv2-68179.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connectcampaignsv2``", + "description": "This release added support for Outbound Campaign timezone detection using all available contact methods" +} diff --git a/.changes/next-release/api-change-connectcases-68990.json b/.changes/next-release/api-change-connectcases-68990.json new file mode 100644 index 000000000000..83949eeacad2 --- /dev/null +++ b/.changes/next-release/api-change-connectcases-68990.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connectcases``", + "description": "Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines." +} diff --git a/.changes/next-release/api-change-dsql-60994.json b/.changes/next-release/api-change-dsql-60994.json new file mode 100644 index 000000000000..b7d2e1ebb0ce --- /dev/null +++ b/.changes/next-release/api-change-dsql-60994.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``dsql``", + "description": "Added support for Amazon Aurora DSQL change data capture (CDC) streams that deliver row-level database changes to Amazon Kinesis in JSON format. Includes CreateStream, GetStream, ListStreams, and DeleteStream operations." +} diff --git a/.changes/next-release/api-change-ec2-53549.json b/.changes/next-release/api-change-ec2-53549.json new file mode 100644 index 000000000000..cb8266646962 --- /dev/null +++ b/.changes/next-release/api-change-ec2-53549.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ec2``", + "description": "Include length limits in the SDK and documentation for text fields in Image (AMI) APIs such as the image name and description" +} diff --git a/.changes/next-release/api-change-es-93754.json b/.changes/next-release/api-change-es-93754.json new file mode 100644 index 000000000000..c493b04b5d2c --- /dev/null +++ b/.changes/next-release/api-change-es-93754.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``es``", + "description": "Adds support for AutomatedSnapshotPauseOptions." +} diff --git a/.changes/next-release/api-change-glue-56973.json b/.changes/next-release/api-change-glue-56973.json new file mode 100644 index 000000000000..b00d81c9f11e --- /dev/null +++ b/.changes/next-release/api-change-glue-56973.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``glue``", + "description": "AWS Glue now defaults the job timeout to 480 minutes for Glue version 5.0 and later when no timeout value is specified. The default remains 2,880 minutes for Glue version 4.0 and earlier." +} diff --git a/.changes/next-release/api-change-lightsail-11313.json b/.changes/next-release/api-change-lightsail-11313.json new file mode 100644 index 000000000000..f7efca407e8c --- /dev/null +++ b/.changes/next-release/api-change-lightsail-11313.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``lightsail``", + "description": "Added OriginIpAddressTypeEnum (ipv4, ipv6, dualstack) and ipAddressType field to Origin and InputOrigin structures for Lightsail CDN distributions. Allows customers to specify how the distribution connects to origins, using IPv4, IPv6, or dualstack networking" +} diff --git a/.changes/next-release/api-change-opensearch-53141.json b/.changes/next-release/api-change-opensearch-53141.json new file mode 100644 index 000000000000..e2358164b8d7 --- /dev/null +++ b/.changes/next-release/api-change-opensearch-53141.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``opensearch``", + "description": "Adds support for AutomatedSnapshotPauseOptions." +} diff --git a/.changes/next-release/api-change-partnercentralaccount-16592.json b/.changes/next-release/api-change-partnercentralaccount-16592.json new file mode 100644 index 000000000000..ee1e8758cc29 --- /dev/null +++ b/.changes/next-release/api-change-partnercentralaccount-16592.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``partnercentral-account``", + "description": "Added ServiceQuotaExceededExceptions for Profile operations" +} diff --git a/.changes/next-release/api-change-pcs-15137.json b/.changes/next-release/api-change-pcs-15137.json new file mode 100644 index 000000000000..308b900aaa14 --- /dev/null +++ b/.changes/next-release/api-change-pcs-15137.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``pcs``", + "description": "Add support for Amazon EC2 Interruptible-ODCR" +} diff --git a/.changes/next-release/api-change-quicksight-76982.json b/.changes/next-release/api-change-quicksight-76982.json new file mode 100644 index 000000000000..3a494289d800 --- /dev/null +++ b/.changes/next-release/api-change-quicksight-76982.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``quicksight``", + "description": "Adds five new custom permission option for Quick Apps so that these capabilities can be controlled by public SDK and CLI." +} diff --git a/.changes/next-release/api-change-redshift-49770.json b/.changes/next-release/api-change-redshift-49770.json new file mode 100644 index 000000000000..4b52569b7b23 --- /dev/null +++ b/.changes/next-release/api-change-redshift-49770.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``redshift``", + "description": "Added rg.xlarge and rg.4xlarge to valid NodeType values and updated documentation for CreateCluster, ModifyCluster, ResizeCluster, and RestoreFromClusterSnapshot APIs to reflect RG node type support." +} diff --git a/.changes/next-release/api-change-rtbfabric-44231.json b/.changes/next-release/api-change-rtbfabric-44231.json new file mode 100644 index 000000000000..19640c500b26 --- /dev/null +++ b/.changes/next-release/api-change-rtbfabric-44231.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``rtbfabric``", + "description": "Customers can now configure custom domain names for their RTB Fabric gateways. This enables partners to use their own branded domain for RTB traffic instead of the default rtbfabric endpoint" +} diff --git a/.changes/next-release/api-change-sagemaker-45018.json b/.changes/next-release/api-change-sagemaker-45018.json new file mode 100644 index 000000000000..784a110896b4 --- /dev/null +++ b/.changes/next-release/api-change-sagemaker-45018.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemaker``", + "description": "Adds execution role session name mode to reflect user identity in Studio. Adds Flexible Training Plans on Studio apps. Adds restricted model packages to control access to proprietary model artifacts via IAM. Fixed instance type parity between inference endpoints and managed shadow tests." +} diff --git a/.changes/next-release/api-change-securityagent-89551.json b/.changes/next-release/api-change-securityagent-89551.json new file mode 100644 index 000000000000..9e1629e17266 --- /dev/null +++ b/.changes/next-release/api-change-securityagent-89551.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``securityagent``", + "description": "Add support for code reviews, a new resource type that enables automated security-focused static analysis of source code repositories." +} diff --git a/.changes/next-release/api-change-socialmessaging-84736.json b/.changes/next-release/api-change-socialmessaging-84736.json new file mode 100644 index 000000000000..513c093805f1 --- /dev/null +++ b/.changes/next-release/api-change-socialmessaging-84736.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``socialmessaging``", + "description": "Adds parameters to call the GetWhatsAppMessageTemplate and UpdateWhatsAppMessageTemplate APIs with a template name and language code in place of the template ID. Linked WhatsApp accounts also describe whether the WABA is onboarded to Meta's Marketing Messages API." +} diff --git a/.changes/next-release/api-change-stepfunctions-91658.json b/.changes/next-release/api-change-stepfunctions-91658.json new file mode 100644 index 000000000000..334b0f228a35 --- /dev/null +++ b/.changes/next-release/api-change-stepfunctions-91658.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``stepfunctions``", + "description": "Updated default SDK endpoints for AWS Step Functions in AWS GovCloud (US) regions. The default Dual-Stack endpoints now resolve to \"states-fips\" prefixed hostnames. There are no changes to service behavior. No customer action is required." +} diff --git a/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json b/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json index c6dae4628b96..bf4cab7de42e 100644 --- a/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json +++ b/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json @@ -922,7 +922,7 @@ }, "targetPercent":{ "shape":"Integer", - "documentation":"

The target percentage that you specify for EC2 Auto Scaling groups.

" + "documentation":"

The target percentage that you specify for EC2 Auto Scaling groups. The default is 100.

" }, "capacityMonitoringApproach":{ "shape":"Ec2AsgCapacityMonitoringApproach", @@ -978,7 +978,7 @@ }, "targetPercent":{ "shape":"Integer", - "documentation":"

The target percentage specified for the configuration.

" + "documentation":"

The target percentage specified for the configuration. The default is 100.

" }, "capacityMonitoringApproach":{ "shape":"EcsCapacityMonitoringApproach", @@ -1082,7 +1082,7 @@ }, "targetPercent":{ "shape":"EksResourceScalingConfigurationTargetPercentInteger", - "documentation":"

The target percentage for the configuration.

" + "documentation":"

The target percentage for the configuration. The default is 100.

" }, "capacityMonitoringApproach":{ "shape":"EksCapacityMonitoringApproach", @@ -1127,6 +1127,36 @@ "unknown" ] }, + "EventSourceMapping":{ + "type":"structure", + "required":["arn"], + "members":{ + "crossAccountRole":{ + "shape":"IamRoleArn", + "documentation":"

The cross account role for the configuration.

" + }, + "externalId":{ + "shape":"String", + "documentation":"

The external ID (secret key) for the configuration.

" + }, + "arn":{ + "shape":"EventSourceMappingArn", + "documentation":"

The Amazon Resource Name (ARN) of the Lambda event source mapping.

" + } + }, + "documentation":"

The Amazon Web Services Lambda event source mapping configuration, containing the resource ARN and optional cross-account configuration.

" + }, + "EventSourceMappingAction":{ + "type":"string", + "enum":[ + "enable", + "disable" + ] + }, + "EventSourceMappingArn":{ + "type":"string", + "pattern":"arn:aws[a-zA-Z-]*:lambda:[a-z0-9-]+:\\d{12}:event-source-mapping:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" + }, "ExecutionAction":{ "type":"string", "enum":[ @@ -1206,6 +1236,10 @@ "rdsCreateCrossRegionReadReplicaConfig":{ "shape":"RdsCreateCrossRegionReplicaConfiguration", "documentation":"

An Amazon RDS create cross-Region replica execution block.

" + }, + "lambdaEventSourceMappingConfig":{ + "shape":"LambdaEventSourceMappingConfiguration", + "documentation":"

A Lambda event source mapping execution block.

" } }, "documentation":"

Execution block configurations for a workflow in a Region switch plan. An execution block represents a specific type of action to perform during a Region switch.

", @@ -1226,7 +1260,8 @@ "Route53HealthCheck", "DocumentDb", "RdsPromoteReadReplica", - "RdsCreateCrossRegionReplica" + "RdsCreateCrossRegionReplica", + "LambdaEventSourceMapping" ] }, "ExecutionComment":{ @@ -1756,6 +1791,51 @@ "documentation":"

Defines a Kubernetes resource to scale in an Amazon EKS cluster.

" }, "LambdaArn":{"type":"string"}, + "LambdaEventSourceMappingConfiguration":{ + "type":"structure", + "required":[ + "action", + "regionEventSourceMappings" + ], + "members":{ + "timeoutMinutes":{ + "shape":"LambdaEventSourceMappingConfigurationTimeoutMinutesInteger", + "documentation":"

The timeout value specified for the configuration.

" + }, + "action":{ + "shape":"EventSourceMappingAction", + "documentation":"

The action to take - whether to enable or disable an event source mapping.

" + }, + "regionEventSourceMappings":{ + "shape":"RegionEventSourceMappingMap", + "documentation":"

Per-region configuration for which Lambda event source mapping to enable or disable when activating or deactivating a region.

" + }, + "ungraceful":{ + "shape":"LambdaEventSourceMappingUngraceful", + "documentation":"

The settings for ungraceful execution.

" + } + }, + "documentation":"

Configuration for Amazon Web Services Lambda event source mappings used in a Region switch plan.

" + }, + "LambdaEventSourceMappingConfigurationTimeoutMinutesInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "LambdaEventSourceMappingUngraceful":{ + "type":"structure", + "members":{ + "behavior":{ + "shape":"LambdaEventSourceMappingUngracefulBehavior", + "documentation":"

Set to skip to skip executing this event source mapping step during an ungraceful execution.

" + } + }, + "documentation":"

Specifies whether to skip enabling or disabling an event source mapping during an ungraceful execution.

" + }, + "LambdaEventSourceMappingUngracefulBehavior":{ + "type":"string", + "enum":["skip"] + }, "LambdaList":{ "type":"list", "member":{"shape":"Lambdas"}, @@ -2264,6 +2344,13 @@ "key":{"shape":"String"}, "value":{"shape":"ArcRoutingControlStates"} }, + "RegionEventSourceMappingMap":{ + "type":"map", + "key":{"shape":"Region"}, + "value":{"shape":"EventSourceMapping"}, + "max":2, + "min":1 + }, "RegionList":{ "type":"list", "member":{"shape":"Region"}, diff --git a/awscli/botocore/data/batch/2016-08-10/service-2.json b/awscli/botocore/data/batch/2016-08-10/service-2.json index ce65e7dabb6a..f1d779fbf03e 100644 --- a/awscli/botocore/data/batch/2016-08-10/service-2.json +++ b/awscli/botocore/data/batch/2016-08-10/service-2.json @@ -962,7 +962,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

The state of the compute environment. The valid values are ENABLED or DISABLED.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges. To prevent additional charges, turn off and then delete the compute environment. For more information, see State in the Batch User Guide.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" + "documentation":"

The state of the compute environment. The valid values are ENABLED or DISABLED.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges, for example, if they have running instances due to jobs that are still executing or a non-zero minvCpus setting. To prevent additional charges, disable and delete the compute environment.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" }, "status":{ "shape":"CEStatus", @@ -1197,7 +1197,7 @@ "members":{ "minScaleDownDelayMinutes":{ "shape":"Integer", - "documentation":"

The minimum time (in minutes) that Batch keeps instances running in the compute environment after their jobs complete. For each instance, the delay period begins when the last job finishes. If no new jobs are placed on the instance during this delay, Batch terminates the instance once the delay expires.

Valid Range: Minimum value of 20. Maximum value of 10080. Use 0 to unset and disable the scale down delay.

The scale down delay does not apply to:

  • Instances being replaced during infrastructure updates

  • Newly launched instances that have not yet run any jobs

  • Spot instances reclaimed due to interruption

" + "documentation":"

The minimum time (in minutes) that Batch keeps instances running in the compute environment after their jobs complete. For each instance, the delay period begins when the last job finishes. If no new jobs are placed on the instance during this delay, Batch terminates the instance once the delay expires.

Valid Range: Minimum value of 20. Maximum value of 10080. Use 0 to unset and disable the scale down delay.

Idle instances retained during the scale-down delay period are billable at standard EC2 pricing.

The scale down delay does not apply to:

  • Instances being replaced during infrastructure updates

  • Newly launched instances that have not yet run any jobs

  • Spot instances reclaimed due to interruption

" } }, "documentation":"

An object that represents a scaling policy for a compute environment.

" @@ -1561,7 +1561,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

The state of the compute environment. If the state is ENABLED, then the compute environment accepts jobs from a queue and can scale out automatically based on queues.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges. To prevent additional charges, turn off and then delete the compute environment. For more information, see State in the Batch User Guide.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" + "documentation":"

The state of the compute environment. If the state is ENABLED, then the compute environment accepts jobs from a queue and can scale out automatically based on queues.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges, for example, if they have running instances due to jobs that are still executing or a non-zero minvCpus setting. To prevent additional charges, disable and delete the compute environment.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" }, "unmanagedvCpus":{ "shape":"Integer", @@ -6157,7 +6157,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

The state of the compute environment. Compute environments in the ENABLED state can accept jobs from a queue and scale in or out automatically based on the workload demand of its associated queues.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges. To prevent additional charges, turn off and then delete the compute environment. For more information, see State in the Batch User Guide.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" + "documentation":"

The state of the compute environment. Compute environments in the ENABLED state can accept jobs from a queue and scale in or out automatically based on the workload demand of its associated queues.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges, for example, if they have running instances due to jobs that are still executing or a non-zero minvCpus setting. To prevent additional charges, disable and delete the compute environment.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" }, "unmanagedvCpus":{ "shape":"Integer", diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json index aaebf55969cf..ed1e79fd9677 100644 --- a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json @@ -161,6 +161,24 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "paymentManagers" + }, + "ListPolicyEngineSummaries": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "policyEngines" + }, + "ListPolicyGenerationSummaries": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "policyGenerations" + }, + "ListPolicySummaries": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "policies" } } } diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json index 06261a5aa79f..7e0c37b07426 100644 --- a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json @@ -1373,6 +1373,25 @@ "documentation":"

Retrieves detailed information about a specific policy engine within the AgentCore Policy system. This operation returns the complete policy engine configuration, metadata, and current status, allowing administrators to review and manage policy engine settings.

", "readonly":true }, + "GetPolicyEngineSummary":{ + "name":"GetPolicyEngineSummary", + "http":{ + "method":"GET", + "requestUri":"/policy-engine-summaries/{policyEngineId}", + "responseCode":200 + }, + "input":{"shape":"GetPolicyEngineSummaryRequest"}, + "output":{"shape":"GetPolicyEngineSummaryResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a metadata-only summary of a specific policy engine without decrypting customer content. This lightweight read operation returns resource identifiers, status, timestamps, and the encryption key ARN, but does not include the description or status reasons. Because this operation does not require access to the customer's KMS key, it is suitable for resource discovery, inventory, and integration scenarios where only metadata is needed.

", + "readonly":true + }, "GetPolicyGeneration":{ "name":"GetPolicyGeneration", "http":{ @@ -1392,6 +1411,44 @@ "documentation":"

Retrieves information about a policy generation request within the AgentCore Policy system. Policy generation converts natural language descriptions into Cedar policy statements using AI-powered translation, enabling non-technical users to create policies.

", "readonly":true }, + "GetPolicyGenerationSummary":{ + "name":"GetPolicyGenerationSummary", + "http":{ + "method":"GET", + "requestUri":"/policy-engines/{policyEngineId}/policy-generation-summaries/{policyGenerationId}", + "responseCode":200 + }, + "input":{"shape":"GetPolicyGenerationSummaryRequest"}, + "output":{"shape":"GetPolicyGenerationSummaryResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a metadata-only summary of a specific policy generation request without decrypting customer content. This lightweight read operation returns resource identifiers, status, timestamps, and findings, but does not include status reasons. Because this operation does not require access to the customer's KMS key, it is suitable for resource discovery, inventory, and integration scenarios where only metadata is needed.

", + "readonly":true + }, + "GetPolicySummary":{ + "name":"GetPolicySummary", + "http":{ + "method":"GET", + "requestUri":"/policy-engines/{policyEngineId}/policy-summaries/{policyId}", + "responseCode":200 + }, + "input":{"shape":"GetPolicySummaryRequest"}, + "output":{"shape":"GetPolicySummaryResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a metadata-only summary of a specific policy without decrypting customer content. This lightweight read operation returns resource identifiers, status, and timestamps, but does not include the policy definition, description, or status reasons. Because this operation does not require access to the customer's KMS key, it is suitable for resource discovery, inventory, and integration scenarios where only metadata is needed.

", + "readonly":true + }, "GetRegistry":{ "name":"GetRegistry", "http":{ @@ -1879,6 +1936,24 @@ "documentation":"

Retrieves a list of policies within the AgentCore Policy engine. This operation supports pagination and filtering to help administrators manage and discover policies across policy engines. Results can be filtered by policy engine or resource associations.

", "readonly":true }, + "ListPolicyEngineSummaries":{ + "name":"ListPolicyEngineSummaries", + "http":{ + "method":"GET", + "requestUri":"/policy-engine-summaries", + "responseCode":200 + }, + "input":{"shape":"ListPolicyEngineSummariesRequest"}, + "output":{"shape":"ListPolicyEngineSummariesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a paginated list of metadata-only policy engine summaries without decrypting customer content. This lightweight read operation returns resource identifiers, status, and timestamps for each policy engine, but does not include descriptions or status reasons. Because this operation does not require access to the customer's KMS key, it is suitable for resource discovery, inventory, and integration scenarios where only metadata is needed.

", + "readonly":true + }, "ListPolicyEngines":{ "name":"ListPolicyEngines", "http":{ @@ -1916,6 +1991,25 @@ "documentation":"

Retrieves a list of generated policy assets from a policy generation request within the AgentCore Policy system. This operation returns the actual Cedar policies and related artifacts produced by the AI-powered policy generation process, allowing users to review and select from multiple generated policy options.

", "readonly":true }, + "ListPolicyGenerationSummaries":{ + "name":"ListPolicyGenerationSummaries", + "http":{ + "method":"GET", + "requestUri":"/policy-engines/{policyEngineId}/policy-generation-summaries", + "responseCode":200 + }, + "input":{"shape":"ListPolicyGenerationSummariesRequest"}, + "output":{"shape":"ListPolicyGenerationSummariesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a paginated list of metadata-only policy generation summaries within a policy engine without decrypting customer content. This lightweight read operation returns resource identifiers, status, timestamps, and findings for each policy generation, but does not include status reasons. Because this operation does not require access to the customer's KMS key, it is suitable for resource discovery, inventory, and integration scenarios where only metadata is needed.

", + "readonly":true + }, "ListPolicyGenerations":{ "name":"ListPolicyGenerations", "http":{ @@ -1935,6 +2029,25 @@ "documentation":"

Retrieves a list of policy generation requests within the AgentCore Policy system. This operation supports pagination and filtering to help track and manage AI-powered policy generation operations.

", "readonly":true }, + "ListPolicySummaries":{ + "name":"ListPolicySummaries", + "http":{ + "method":"GET", + "requestUri":"/policy-engines/{policyEngineId}/policy-summaries", + "responseCode":200 + }, + "input":{"shape":"ListPolicySummariesRequest"}, + "output":{"shape":"ListPolicySummariesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a paginated list of metadata-only policy summaries within a policy engine without decrypting customer content. This lightweight read operation returns resource identifiers, status, and timestamps for each policy, but does not include policy definitions, descriptions, or status reasons. Because this operation does not require access to the customer's KMS key, it is suitable for resource discovery, inventory, and integration scenarios where only metadata is needed.

", + "readonly":true + }, "ListRegistries":{ "name":"ListRegistries", "http":{ @@ -1950,7 +2063,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists all registries in the account. You can optionally filter results by status using the status parameter.

", + "documentation":"

Lists all registries in the account. You can optionally filter results by status using the status parameter, or by authorizer type using the authorizerType parameter.

", "readonly":true }, "ListRegistryRecords":{ @@ -3290,7 +3403,10 @@ "shape":"BrowserNetworkMode", "documentation":"

The network mode for the browser. This field specifies how the browser connects to the network.

" }, - "vpcConfig":{"shape":"VpcConfig"} + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC configuration for the browser. This configuration is required when the network mode is set to VPC.

" + } }, "documentation":"

The network configuration for a browser. This structure defines how the browser connects to the network.

" }, @@ -3684,7 +3800,10 @@ "shape":"CodeInterpreterNetworkMode", "documentation":"

The network mode for the code interpreter. This field specifies how the code interpreter connects to the network.

" }, - "vpcConfig":{"shape":"VpcConfig"} + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC configuration for the code interpreter. This configuration is required when the network mode is set to VPC.

" + } }, "documentation":"

The network configuration for a code interpreter. This structure defines how the code interpreter connects to the network.

" }, @@ -3785,7 +3904,7 @@ "documentation":"

The wallet secret provided by Coinbase Developer Platform.

" } }, - "documentation":"

Coinbase CDP configuration - credentials provided by Coinbase Developer Platform

" + "documentation":"

Coinbase CDP configuration — credentials provided by Coinbase Developer Platform.

" }, "CoinbaseCdpConfigurationOutput":{ "type":"structure", @@ -3802,7 +3921,7 @@ "apiKeySecretArn":{"shape":"Secret"}, "walletSecretArn":{"shape":"Secret"} }, - "documentation":"

Coinbase CDP configuration output with secret ARNs

" + "documentation":"

Coinbase CDP configuration output with secret ARNs.

" }, "CoinbaseCdpWalletSecretType":{ "type":"string", @@ -5386,19 +5505,19 @@ "members":{ "name":{ "shape":"CredentialProviderName", - "documentation":"

Unique name for the payment credential provider

" + "documentation":"

Unique name for the payment credential provider.

" }, "credentialProviderVendor":{ "shape":"PaymentCredentialProviderVendorType", - "documentation":"

The vendor type (e.g., CoinbaseCDP)

" + "documentation":"

The vendor type for the payment credential provider (e.g., CoinbaseCDP, StripePrivy).

" }, "providerConfigurationInput":{ "shape":"PaymentProviderConfigurationInput", - "documentation":"

Configuration specific to the vendor, including API credentials

" + "documentation":"

Configuration specific to the vendor, including API credentials.

" }, "tags":{ "shape":"TagsMap", - "documentation":"

Optional tags for resource organization

" + "documentation":"

Optional tags for resource organization.

" } } }, @@ -5415,14 +5534,17 @@ "shape":"CredentialProviderName", "documentation":"

The name of the created payment credential provider.

" }, - "credentialProviderVendor":{"shape":"PaymentCredentialProviderVendorType"}, + "credentialProviderVendor":{ + "shape":"PaymentCredentialProviderVendorType", + "documentation":"

The vendor type for the created payment credential provider.

" + }, "credentialProviderArn":{ "shape":"PaymentCredentialProviderArnType", "documentation":"

The Amazon Resource Name (ARN) of the created payment credential provider.

" }, "providerConfigurationOutput":{ "shape":"PaymentProviderConfigurationOutput", - "documentation":"

Output configuration (contains secret ARNs, excludes actual secret values)

" + "documentation":"

Output configuration (contains secret ARNs, excludes actual secret values).

" } } }, @@ -5560,10 +5682,6 @@ "shape":"PolicyEngineName", "documentation":"

The customer-assigned name of the created policy engine. This matches the name provided in the request and serves as the human-readable identifier.

" }, - "description":{ - "shape":"Description", - "documentation":"

A human-readable description of the policy engine's purpose.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the policy engine was created. This is automatically set by the service and used for auditing and lifecycle management.

" @@ -5580,13 +5698,17 @@ "shape":"PolicyEngineStatus", "documentation":"

The current status of the policy engine. A status of ACTIVE indicates the policy engine is ready for use.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine creation process.

" - }, "encryptionKeyArn":{ "shape":"KmsKeyArn", "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A human-readable description of the policy engine's purpose.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine creation process.

" } } }, @@ -5633,11 +5755,11 @@ "policyId", "name", "policyEngineId", - "definition", "createdAt", "updatedAt", "policyArn", "status", + "definition", "statusReasons" ], "members":{ @@ -5653,14 +5775,6 @@ "shape":"ResourceId", "documentation":"

The identifier of the policy engine that manages this policy. This confirms the policy engine assignment and is used for policy evaluation routing.

" }, - "definition":{ - "shape":"PolicyDefinition", - "documentation":"

The Cedar policy statement that was created. This is the validated policy definition that will be used for agent behavior control and access decisions.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The human-readable description of the policy's purpose and functionality. This helps administrators understand and manage the policy.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the policy was created. This is automatically set by the service and used for auditing and lifecycle management.

" @@ -5677,6 +5791,14 @@ "shape":"PolicyStatus", "documentation":"

The current status of the policy. A status of ACTIVE indicates the policy is ready for use.

" }, + "definition":{ + "shape":"PolicyDefinition", + "documentation":"

The Cedar policy statement that was created. This is the validated policy definition that will be used for agent behavior control and access decisions.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The human-readable description of the policy's purpose and functionality. This helps administrators understand and manage the policy.

" + }, "statusReasons":{ "shape":"PolicyStatusReasons", "documentation":"

Additional information about the policy status. This provides details about any failures or the current state of the policy creation process.

" @@ -6149,7 +6271,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces associated with the custom memory strategy.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces associated with the custom memory strategy.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -6963,10 +7085,6 @@ "shape":"PolicyEngineName", "documentation":"

The customer-assigned name of the deleted policy engine.

" }, - "description":{ - "shape":"Description", - "documentation":"

The human-readable description of the deleted policy engine.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the deleted policy engine was originally created.

" @@ -6983,13 +7101,17 @@ "shape":"PolicyEngineStatus", "documentation":"

The status of the policy engine deletion operation. This provides status about any issues that occurred during the deletion process.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the deletion status. This provides details about the deletion process or any issues that may have occurred.

" - }, "encryptionKeyArn":{ "shape":"KmsKeyArn", "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The human-readable description of the deleted policy engine.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the deletion status. This provides details about the deletion process or any issues that may have occurred.

" } } }, @@ -7020,11 +7142,11 @@ "policyId", "name", "policyEngineId", - "definition", "createdAt", "updatedAt", "policyArn", "status", + "definition", "statusReasons" ], "members":{ @@ -7040,11 +7162,6 @@ "shape":"ResourceId", "documentation":"

The identifier of the policy engine from which the policy was deleted. This confirms the policy engine context for the deletion operation.

" }, - "definition":{"shape":"PolicyDefinition"}, - "description":{ - "shape":"Description", - "documentation":"

The human-readable description of the deleted policy.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the deleted policy was originally created.

" @@ -7061,6 +7178,11 @@ "shape":"PolicyStatus", "documentation":"

The status of the policy deletion operation. This provides information about any issues that occurred during the deletion process.

" }, + "definition":{"shape":"PolicyDefinition"}, + "description":{ + "shape":"Description", + "documentation":"

The human-readable description of the deleted policy.

" + }, "statusReasons":{ "shape":"PolicyStatusReasons", "documentation":"

Additional information about the deletion status. This provides details about the deletion process or any issues that may have occurred.

" @@ -7316,7 +7438,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces for which to create episodes.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces for which to create episodes.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -7407,7 +7529,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces to use for episodic reflection. Can be less nested than the episodic namespaces.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces to use for episodic reflection. Can be less nested than the episodic namespaces.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -7428,7 +7550,7 @@ "members":{ "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces for which to create reflections. Can be less nested than the episodic namespaces.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces for which to create reflections. Can be less nested than the episodic namespaces.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -7449,7 +7571,7 @@ "members":{ "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces over which to create reflections. Can be less nested than episode namespaces.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces over which to create reflections. Can be less nested than episode namespaces.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -7482,7 +7604,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces over which reflections were created. Can be less nested than the episodic namespaces.

", + "documentation":"

This is a legacy parameter. The namespaces over which reflections were created. Can be less nested than the episodic namespaces.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -9425,10 +9547,13 @@ "shape":"PaymentCredentialProviderArnType", "documentation":"

The Amazon Resource Name (ARN) of the payment credential provider.

" }, - "credentialProviderVendor":{"shape":"PaymentCredentialProviderVendorType"}, + "credentialProviderVendor":{ + "shape":"PaymentCredentialProviderVendorType", + "documentation":"

The vendor type for the payment credential provider.

" + }, "providerConfigurationOutput":{ "shape":"PaymentProviderConfigurationOutput", - "documentation":"

Output configuration (contains secret ARNs, excludes actual secret values)

" + "documentation":"

Output configuration (contains secret ARNs, excludes actual secret values).

" }, "createdTime":{ "shape":"Timestamp", @@ -9545,10 +9670,6 @@ "shape":"PolicyEngineName", "documentation":"

The customer-assigned name of the policy engine. This is the human-readable identifier that was specified when the policy engine was created.

" }, - "description":{ - "shape":"Description", - "documentation":"

The human-readable description of the policy engine's purpose and scope. This helps administrators understand the policy engine's role in governance.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the policy engine was originally created.

" @@ -9565,9 +9686,66 @@ "shape":"PolicyEngineStatus", "documentation":"

The current status of the policy engine.

" }, + "encryptionKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The human-readable description of the policy engine's purpose and scope. This helps administrators understand the policy engine's role in governance.

" + }, "statusReasons":{ "shape":"PolicyStatusReasons", "documentation":"

Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine.

" + } + } + }, + "GetPolicyEngineSummaryRequest":{ + "type":"structure", + "required":["policyEngineId"], + "members":{ + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the policy engine to retrieve the summary for. This must be a valid policy engine ID that exists within the account.

", + "location":"uri", + "locationName":"policyEngineId" + } + } + }, + "GetPolicyEngineSummaryResponse":{ + "type":"structure", + "required":[ + "policyEngineId", + "name", + "createdAt", + "updatedAt", + "policyEngineArn", + "status" + ], + "members":{ + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the policy engine.

" + }, + "name":{ + "shape":"PolicyEngineName", + "documentation":"

The customer-assigned name of the policy engine.

" + }, + "createdAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy engine was originally created.

" + }, + "updatedAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy engine was last modified.

" + }, + "policyEngineArn":{ + "shape":"PolicyEngineArn", + "documentation":"

The Amazon Resource Name (ARN) of the policy engine.

" + }, + "status":{ + "shape":"PolicyEngineStatus", + "documentation":"

The current status of the policy engine.

" }, "encryptionKeyArn":{ "shape":"KmsKeyArn", @@ -9642,70 +9820,134 @@ "shape":"PolicyGenerationStatus", "documentation":"

The current status of the policy generation. This indicates whether the generation is in progress, completed successfully, or failed during processing.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the generation status. This provides details about any failures, warnings, or the current state of the generation process.

" - }, "findings":{ "shape":"String", "documentation":"

The findings and results from the policy generation process. This includes any issues, recommendations, validation results, or insights from the generated policies.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the generation status. This provides details about any failures, warnings, or the current state of the generation process.

" } } }, - "GetPolicyRequest":{ + "GetPolicyGenerationSummaryRequest":{ "type":"structure", "required":[ - "policyEngineId", - "policyId" + "policyGenerationId", + "policyEngineId" ], "members":{ - "policyEngineId":{ + "policyGenerationId":{ "shape":"ResourceId", - "documentation":"

The identifier of the policy engine that manages the policy to be retrieved.

", + "documentation":"

The unique identifier of the policy generation request to retrieve the summary for.

", "location":"uri", - "locationName":"policyEngineId" + "locationName":"policyGenerationId" }, - "policyId":{ + "policyEngineId":{ "shape":"ResourceId", - "documentation":"

The unique identifier of the policy to be retrieved. This must be a valid policy ID that exists within the specified policy engine.

", + "documentation":"

The identifier of the policy engine associated with the policy generation request.

", "location":"uri", - "locationName":"policyId" + "locationName":"policyEngineId" } } }, - "GetPolicyResponse":{ + "GetPolicyGenerationSummaryResponse":{ "type":"structure", "required":[ - "policyId", - "name", "policyEngineId", - "definition", + "policyGenerationId", + "name", + "policyGenerationArn", + "resource", "createdAt", "updatedAt", - "policyArn", - "status", - "statusReasons" + "status" ], "members":{ - "policyId":{ + "policyEngineId":{ "shape":"ResourceId", - "documentation":"

The unique identifier of the retrieved policy. This matches the policy ID provided in the request and serves as the system identifier for the policy.

" - }, - "name":{ - "shape":"PolicyName", - "documentation":"

The customer-assigned name of the policy. This is the human-readable identifier that was specified when the policy was created.

" + "documentation":"

The identifier of the policy engine associated with this policy generation.

" }, - "policyEngineId":{ + "policyGenerationId":{ "shape":"ResourceId", - "documentation":"

The identifier of the policy engine that manages this policy. This confirms the policy engine context for the retrieved policy.

" + "documentation":"

The unique identifier of the policy generation request.

" }, - "definition":{ - "shape":"PolicyDefinition", - "documentation":"

The Cedar policy statement that defines the access control rules. This contains the actual policy logic used for agent behavior control and access decisions.

" + "name":{ + "shape":"PolicyGenerationName", + "documentation":"

The customer-assigned name for the policy generation request.

" }, - "description":{ - "shape":"Description", - "documentation":"

The human-readable description of the policy's purpose and functionality. This helps administrators understand and manage the policy.

" + "policyGenerationArn":{ + "shape":"PolicyGenerationArn", + "documentation":"

The Amazon Resource Name (ARN) of the policy generation request.

" + }, + "resource":{ + "shape":"Resource", + "documentation":"

The resource information associated with the policy generation.

" + }, + "createdAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy generation request was created.

" + }, + "updatedAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy generation was last updated.

" + }, + "status":{ + "shape":"PolicyGenerationStatus", + "documentation":"

The current status of the policy generation request.

" + }, + "findings":{ + "shape":"String", + "documentation":"

The findings from the policy generation process, if available.

" + } + } + }, + "GetPolicyRequest":{ + "type":"structure", + "required":[ + "policyEngineId", + "policyId" + ], + "members":{ + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine that manages the policy to be retrieved.

", + "location":"uri", + "locationName":"policyEngineId" + }, + "policyId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the policy to be retrieved. This must be a valid policy ID that exists within the specified policy engine.

", + "location":"uri", + "locationName":"policyId" + } + } + }, + "GetPolicyResponse":{ + "type":"structure", + "required":[ + "policyId", + "name", + "policyEngineId", + "createdAt", + "updatedAt", + "policyArn", + "status", + "definition", + "statusReasons" + ], + "members":{ + "policyId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the retrieved policy. This matches the policy ID provided in the request and serves as the system identifier for the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The customer-assigned name of the policy. This is the human-readable identifier that was specified when the policy was created.

" + }, + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine that manages this policy. This confirms the policy engine context for the retrieved policy.

" }, "createdAt":{ "shape":"DateTimestamp", @@ -9723,12 +9965,83 @@ "shape":"PolicyStatus", "documentation":"

The current status of the policy.

" }, + "definition":{ + "shape":"PolicyDefinition", + "documentation":"

The Cedar policy statement that defines the access control rules. This contains the actual policy logic used for agent behavior control and access decisions.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The human-readable description of the policy's purpose and functionality. This helps administrators understand and manage the policy.

" + }, "statusReasons":{ "shape":"PolicyStatusReasons", "documentation":"

Additional information about the policy status. This provides details about any failures or the current state of the policy.

" } } }, + "GetPolicySummaryRequest":{ + "type":"structure", + "required":[ + "policyEngineId", + "policyId" + ], + "members":{ + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine that manages the policy to retrieve the summary for.

", + "location":"uri", + "locationName":"policyEngineId" + }, + "policyId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the policy to retrieve the summary for. This must be a valid policy ID that exists within the specified policy engine.

", + "location":"uri", + "locationName":"policyId" + } + } + }, + "GetPolicySummaryResponse":{ + "type":"structure", + "required":[ + "policyId", + "name", + "policyEngineId", + "createdAt", + "updatedAt", + "policyArn", + "status" + ], + "members":{ + "policyId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The customer-assigned name of the policy.

" + }, + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine that manages this policy.

" + }, + "createdAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy was originally created.

" + }, + "updatedAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy was last modified.

" + }, + "policyArn":{ + "shape":"PolicyArn", + "documentation":"

The Amazon Resource Name (ARN) of the policy.

" + }, + "status":{ + "shape":"PolicyStatus", + "documentation":"

The current status of the policy.

" + } + } + }, "GetRegistryRecordRequest":{ "type":"structure", "required":[ @@ -11962,6 +12275,37 @@ } } }, + "ListPolicyEngineSummariesRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous ListPolicyEngineSummaries call. Use this token to retrieve the next page of results when the response is paginated.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of policy engine summaries to return in a single response.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListPolicyEngineSummariesResponse":{ + "type":"structure", + "required":["policyEngines"], + "members":{ + "policyEngines":{ + "shape":"PolicyEngineSummaryList", + "documentation":"

An array of policy engine summary objects that exist in the account. Each summary contains resource identifiers, status, and timestamps without customer-encrypted content.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that can be used in subsequent ListPolicyEngineSummaries calls to retrieve additional results. This token is only present when there are more results available.

" + } + } + }, "ListPolicyEnginesRequest":{ "type":"structure", "members":{ @@ -12039,6 +12383,44 @@ } } }, + "ListPolicyGenerationSummariesRequest":{ + "type":"structure", + "required":["policyEngineId"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous ListPolicyGenerationSummaries call. Use this token to retrieve the next page of results when the response is paginated.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of policy generation summaries to return in a single response.

", + "location":"querystring", + "locationName":"maxResults" + }, + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine whose policy generation summaries to retrieve.

", + "location":"uri", + "locationName":"policyEngineId" + } + } + }, + "ListPolicyGenerationSummariesResponse":{ + "type":"structure", + "required":["policyGenerations"], + "members":{ + "policyGenerations":{ + "shape":"PolicyGenerationSummaryList", + "documentation":"

An array of policy generation summary objects that match the specified criteria. Each summary contains resource identifiers, status, timestamps, and findings without customer-encrypted content.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that can be used in subsequent ListPolicyGenerationSummaries calls to retrieve additional results. This token is only present when there are more results available.

" + } + } + }, "ListPolicyGenerationsRequest":{ "type":"structure", "required":["policyEngineId"], @@ -12077,6 +12459,50 @@ } } }, + "ListPolicySummariesRequest":{ + "type":"structure", + "required":["policyEngineId"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous ListPolicySummaries call. Use this token to retrieve the next page of results when the response is paginated.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of policy summaries to return in a single response.

", + "location":"querystring", + "locationName":"maxResults" + }, + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine whose policy summaries to retrieve.

", + "location":"uri", + "locationName":"policyEngineId" + }, + "targetResourceScope":{ + "shape":"BedrockAgentcoreResourceArn", + "documentation":"

Optional filter to list policy summaries that apply to a specific resource scope or resource type. This helps narrow down results to those relevant for particular Amazon Web Services resources, agent tools, or operational contexts within the policy engine ecosystem.

", + "location":"querystring", + "locationName":"targetResourceScope" + } + } + }, + "ListPolicySummariesResponse":{ + "type":"structure", + "required":["policies"], + "members":{ + "policies":{ + "shape":"PolicySummaryList", + "documentation":"

An array of policy summary objects that match the specified criteria. Each summary contains resource identifiers, status, and timestamps without customer-encrypted content.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that can be used in subsequent ListPolicySummaries calls to retrieve additional results. This token is only present when there are more results available.

" + } + } + }, "ListRegistriesRequest":{ "type":"structure", "members":{ @@ -12097,6 +12523,12 @@ "documentation":"

Filter registries by their current status. Possible values include CREATING, READY, UPDATING, CREATE_FAILED, UPDATE_FAILED, DELETING, and DELETE_FAILED.

", "location":"querystring", "locationName":"status" + }, + "authorizerType":{ + "shape":"RegistryAuthorizerType", + "documentation":"

Filter registries by their authorizer type. Possible values are CUSTOM_JWT and AWS_IAM. For more information about authorizer types, see the RegistryAuthorizerType enum.

", + "location":"querystring", + "locationName":"authorizerType" } } }, @@ -12395,7 +12827,7 @@ "documentation":"

An IAM principal to match against, specified by ARN.

" } }, - "documentation":"

Union for principal matching. Currently supports IAM principal ARN glob matching. Extensible for future principal types (e.g., OAuth client ID).

", + "documentation":"

Union for principal matching. Currently supports IAM principal ARN glob matching.

", "union":true }, "MatchPrincipals":{ @@ -12691,7 +13123,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces associated with the memory strategy.

", + "documentation":"

This is a legacy parameter. The namespaces associated with the memory strategy.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -13016,7 +13448,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The updated namespaces for the memory strategy.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The updated namespaces for the memory strategy.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -13256,7 +13688,7 @@ }, "grantType":{ "shape":"OAuthGrantType", - "documentation":"

Specifies the kind of credentials to use for authorization:

  • CLIENT_CREDENTIALS - Authorization with a client ID and secret.

  • AUTHORIZATION_CODE - Authorization with a token that is specific to an individual end user.

" + "documentation":"

Specifies the kind of credentials to use for authorization:

  • CLIENT_CREDENTIALS - Authorization with a client ID and secret.

  • AUTHORIZATION_CODE - Authorization with a token that is specific to an individual end user.

  • TOKEN_EXCHANGE - Authorization using on-behalf-of token exchange. An inbound user token is exchanged for a downstream access token scoped to the target audience.

" }, "defaultReturnUrl":{ "shape":"OAuthDefaultReturnUrl", @@ -13709,7 +14141,10 @@ "shape":"CredentialProviderName", "documentation":"

The name of the payment credential provider.

" }, - "credentialProviderVendor":{"shape":"PaymentCredentialProviderVendorType"}, + "credentialProviderVendor":{ + "shape":"PaymentCredentialProviderVendorType", + "documentation":"

The vendor type for the payment credential provider.

" + }, "credentialProviderArn":{ "shape":"PaymentCredentialProviderArnType", "documentation":"

The Amazon Resource Name (ARN) of the payment credential provider.

" @@ -13727,7 +14162,7 @@ }, "PaymentCredentialProviderVendorType":{ "type":"string", - "documentation":"

Supported vendor types for payment providers using non-standard auth protocols

", + "documentation":"

Supported vendor types for payment providers using non-standard auth protocols.

", "enum":[ "CoinbaseCDP", "StripePrivy" @@ -13825,19 +14260,31 @@ "PaymentProviderConfigurationInput":{ "type":"structure", "members":{ - "coinbaseCdpConfiguration":{"shape":"CoinbaseCdpConfigurationInput"}, - "stripePrivyConfiguration":{"shape":"StripePrivyConfigurationInput"} + "coinbaseCdpConfiguration":{ + "shape":"CoinbaseCdpConfigurationInput", + "documentation":"

The Coinbase CDP configuration.

" + }, + "stripePrivyConfiguration":{ + "shape":"StripePrivyConfigurationInput", + "documentation":"

The Stripe Privy configuration.

" + } }, - "documentation":"

PROVIDER CONFIGURATION INPUT - Contains secrets for creation/update

", + "documentation":"

Provider configuration input — contains secrets for creation and update. Varies by vendor type.

", "union":true }, "PaymentProviderConfigurationOutput":{ "type":"structure", "members":{ - "coinbaseCdpConfiguration":{"shape":"CoinbaseCdpConfigurationOutput"}, - "stripePrivyConfiguration":{"shape":"StripePrivyConfigurationOutput"} + "coinbaseCdpConfiguration":{ + "shape":"CoinbaseCdpConfigurationOutput", + "documentation":"

The Coinbase CDP configuration.

" + }, + "stripePrivyConfiguration":{ + "shape":"StripePrivyConfigurationOutput", + "documentation":"

The Stripe Privy configuration.

" + } }, - "documentation":"

PROVIDER CONFIGURATION OUTPUT - No raw secrets, only ARNs

", + "documentation":"

Provider configuration output — no raw secrets, only ARNs. Varies by vendor type.

", "union":true }, "PaymentsAuthorizerType":{ @@ -13865,11 +14312,11 @@ "policyId", "name", "policyEngineId", - "definition", "createdAt", "updatedAt", "policyArn", "status", + "definition", "statusReasons" ], "members":{ @@ -13885,14 +14332,6 @@ "shape":"ResourceId", "documentation":"

The identifier of the policy engine that manages this policy. This establishes the policy engine context for policy evaluation and management.

" }, - "definition":{ - "shape":"PolicyDefinition", - "documentation":"

The Cedar policy statement that defines the access control rules. This contains the actual policy logic used for agent behavior control and access decisions.

" - }, - "description":{ - "shape":"Description", - "documentation":"

A human-readable description of the policy's purpose and functionality. Limited to 4,096 characters, this helps administrators understand and manage the policy.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the policy was originally created. This is automatically set by the service and used for auditing and lifecycle management.

" @@ -13909,6 +14348,14 @@ "shape":"PolicyStatus", "documentation":"

The current status of the policy.

" }, + "definition":{ + "shape":"PolicyDefinition", + "documentation":"

The Cedar policy statement that defines the access control rules. This contains the actual policy logic used for agent behavior control and access decisions.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A human-readable description of the policy's purpose and functionality. Limited to 4,096 characters, this helps administrators understand and manage the policy.

" + }, "statusReasons":{ "shape":"PolicyStatusReasons", "documentation":"

Additional information about the policy status. This provides details about any failures or the current state of the policy lifecycle.

" @@ -13957,10 +14404,6 @@ "shape":"PolicyEngineName", "documentation":"

The customer-assigned immutable name for the policy engine. This human-readable identifier must be unique within the account and cannot exceed 48 characters.

" }, - "description":{ - "shape":"Description", - "documentation":"

A human-readable description of the policy engine's purpose and scope. Limited to 4,096 characters, this helps administrators understand the policy engine's role in the overall governance strategy.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the policy engine was originally created. This is automatically set by the service and used for auditing and lifecycle management.

" @@ -13977,13 +14420,17 @@ "shape":"PolicyEngineStatus", "documentation":"

The current status of the policy engine.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine lifecycle.

" - }, "encryptionKeyArn":{ "shape":"KmsKeyArn", "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A human-readable description of the policy engine's purpose and scope. Limited to 4,096 characters, this helps administrators understand the policy engine's role in the overall governance strategy.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine lifecycle.

" } }, "documentation":"

Represents a policy engine resource within the AgentCore Policy system. Policy engines serve as containers for grouping related policies and provide the execution context for policy evaluation and management. Each policy engine can be associated with one Gateway (one engine per Gateway), where it intercepts all agent tool calls and evaluates them against the contained policies before allowing tools to execute. The policy engine maintains the Cedar schema generated from the Gateway's tool manifest, ensuring that policies are validated against the actual tools and parameters available. Policy engines support two enforcement modes that can be configured when associating with a Gateway: log-only mode for testing (evaluates decisions without blocking) and enforce mode for production (actively allows or denies based on policy evaluation).

" @@ -14012,6 +14459,54 @@ "DELETE_FAILED" ] }, + "PolicyEngineSummary":{ + "type":"structure", + "required":[ + "policyEngineId", + "name", + "createdAt", + "updatedAt", + "policyEngineArn", + "status" + ], + "members":{ + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier for the policy engine.

" + }, + "name":{ + "shape":"PolicyEngineName", + "documentation":"

The customer-assigned name of the policy engine.

" + }, + "createdAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy engine was originally created.

" + }, + "updatedAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy engine was last modified.

" + }, + "policyEngineArn":{ + "shape":"PolicyEngineArn", + "documentation":"

The Amazon Resource Name (ARN) of the policy engine.

" + }, + "status":{ + "shape":"PolicyEngineStatus", + "documentation":"

The current status of the policy engine.

" + }, + "encryptionKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.

" + } + }, + "documentation":"

Represents a metadata-only summary of a policy engine resource. This structure contains resource identifiers, status, and timestamps without customer-encrypted fields such as description or status reasons. Policy engine summaries are returned by operations that do not require access to the customer's KMS key.

" + }, + "PolicyEngineSummaryList":{ + "type":"list", + "member":{"shape":"PolicyEngineSummary"}, + "max":100, + "min":0 + }, "PolicyEngines":{ "type":"list", "member":{"shape":"PolicyEngine"}, @@ -14064,13 +14559,13 @@ "shape":"PolicyGenerationStatus", "documentation":"

The current status of this policy generation request.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the generation status.

" - }, "findings":{ "shape":"String", "documentation":"

Findings and insights from this policy generation process.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the generation status.

" } }, "documentation":"

Represents a policy generation request within the AgentCore Policy system. Tracks the AI-powered conversion of natural language descriptions into Cedar policy statements, enabling users to author policies by describing authorization requirements in plain English. The generation process analyzes the natural language input along with the Gateway's tool context and Cedar schema to produce one or more validated policy options. Each generation request tracks the status of the conversion process and maintains findings about the generated policies, including validation results and potential issues. Generated policy assets remain available for one week after successful generation, allowing time to review and create policies from the generated options.

" @@ -14142,6 +14637,64 @@ "DELETE_FAILED" ] }, + "PolicyGenerationSummary":{ + "type":"structure", + "required":[ + "policyEngineId", + "policyGenerationId", + "name", + "policyGenerationArn", + "resource", + "createdAt", + "updatedAt", + "status" + ], + "members":{ + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine associated with this generation request.

" + }, + "policyGenerationId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier for this policy generation request.

" + }, + "name":{ + "shape":"PolicyGenerationName", + "documentation":"

The customer-assigned name for this policy generation request.

" + }, + "policyGenerationArn":{ + "shape":"PolicyGenerationArn", + "documentation":"

The ARN of this policy generation request.

" + }, + "resource":{ + "shape":"Resource", + "documentation":"

The resource information associated with this policy generation.

" + }, + "createdAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when this policy generation request was created.

" + }, + "updatedAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when this policy generation was last updated.

" + }, + "status":{ + "shape":"PolicyGenerationStatus", + "documentation":"

The current status of this policy generation request.

" + }, + "findings":{ + "shape":"String", + "documentation":"

Findings and insights from this policy generation process.

" + } + }, + "documentation":"

Represents a metadata-only summary of a policy generation resource. This structure contains resource identifiers, status, timestamps, and findings without customer-encrypted fields such as status reasons. Policy generation summaries are returned by operations that do not require access to the customer's KMS key.

" + }, + "PolicyGenerationSummaryList":{ + "type":"list", + "member":{"shape":"PolicyGenerationSummary"}, + "max":100, + "min":0 + }, "PolicyGenerations":{ "type":"list", "member":{"shape":"PolicyGeneration"}, @@ -14170,6 +14723,55 @@ "type":"list", "member":{"shape":"String"} }, + "PolicySummary":{ + "type":"structure", + "required":[ + "policyId", + "name", + "policyEngineId", + "createdAt", + "updatedAt", + "policyArn", + "status" + ], + "members":{ + "policyId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier for the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The customer-assigned name of the policy.

" + }, + "policyEngineId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the policy engine that manages this policy.

" + }, + "createdAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy was originally created.

" + }, + "updatedAt":{ + "shape":"DateTimestamp", + "documentation":"

The timestamp when the policy was last modified.

" + }, + "policyArn":{ + "shape":"PolicyArn", + "documentation":"

The Amazon Resource Name (ARN) of the policy.

" + }, + "status":{ + "shape":"PolicyStatus", + "documentation":"

The current status of the policy.

" + } + }, + "documentation":"

Represents a metadata-only summary of a policy resource. This structure contains resource identifiers, status, and timestamps without customer-encrypted fields such as definition, description, or status reasons. Policy summaries are returned by operations that do not require access to the customer's KMS key.

" + }, + "PolicySummaryList":{ + "type":"list", + "member":{"shape":"PolicySummary"}, + "max":100, + "min":0 + }, "PolicyValidationMode":{ "type":"string", "enum":[ @@ -15179,7 +15781,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces associated with the semantic memory strategy.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces associated with the semantic memory strategy.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -15522,13 +16124,13 @@ "shape":"PolicyGenerationStatus", "documentation":"

The initial status of the policy generation request.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the generation status.

" - }, "findings":{ "shape":"String", "documentation":"

Initial findings from the policy generation process.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the generation status.

" } } }, @@ -15741,7 +16343,7 @@ "documentation":"

The authorization ID for the Stripe Privy integration.

" } }, - "documentation":"

StripePrivy configuration - credentials provided by Stripe + Privy

" + "documentation":"

Stripe Privy configuration — credentials provided by Stripe and Privy.

" }, "StripePrivyConfigurationOutput":{ "type":"structure", @@ -15763,7 +16365,7 @@ "documentation":"

The authorization ID for the Stripe Privy integration.

" } }, - "documentation":"

StripePrivy configuration output with secret ARNs

" + "documentation":"

Stripe Privy configuration output with secret ARNs.

" }, "SubmitRegistryRecordForApprovalRequest":{ "type":"structure", @@ -15864,7 +16466,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces associated with the summary memory strategy.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces associated with the summary memory strategy.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -17654,10 +18256,13 @@ "shape":"CredentialProviderName", "documentation":"

The name of the payment credential provider to update.

" }, - "credentialProviderVendor":{"shape":"PaymentCredentialProviderVendorType"}, + "credentialProviderVendor":{ + "shape":"PaymentCredentialProviderVendorType", + "documentation":"

The vendor type for the payment credential provider (e.g., CoinbaseCDP, StripePrivy).

" + }, "providerConfigurationInput":{ "shape":"PaymentProviderConfigurationInput", - "documentation":"

Configuration specific to the vendor, including API credentials

" + "documentation":"

Configuration specific to the vendor, including API credentials.

" } } }, @@ -17676,14 +18281,17 @@ "shape":"CredentialProviderName", "documentation":"

The name of the updated payment credential provider.

" }, - "credentialProviderVendor":{"shape":"PaymentCredentialProviderVendorType"}, + "credentialProviderVendor":{ + "shape":"PaymentCredentialProviderVendorType", + "documentation":"

The vendor type for the updated payment credential provider.

" + }, "credentialProviderArn":{ "shape":"PaymentCredentialProviderArnType", "documentation":"

The Amazon Resource Name (ARN) of the updated payment credential provider.

" }, "providerConfigurationOutput":{ "shape":"PaymentProviderConfigurationOutput", - "documentation":"

Output configuration (contains secret ARNs, excludes actual secret values)

" + "documentation":"

Output configuration (contains secret ARNs, excludes actual secret values).

" }, "createdTime":{ "shape":"Timestamp", @@ -17807,10 +18415,6 @@ "shape":"PolicyEngineName", "documentation":"

The name of the updated policy engine.

" }, - "description":{ - "shape":"Description", - "documentation":"

The updated description of the policy engine.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The original creation timestamp of the policy engine.

" @@ -17827,13 +18431,17 @@ "shape":"PolicyEngineStatus", "documentation":"

The current status of the updated policy engine.

" }, - "statusReasons":{ - "shape":"PolicyStatusReasons", - "documentation":"

Additional information about the update status.

" - }, "encryptionKeyArn":{ "shape":"KmsKeyArn", "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The updated description of the policy engine.

" + }, + "statusReasons":{ + "shape":"PolicyStatusReasons", + "documentation":"

Additional information about the update status.

" } } }, @@ -17876,11 +18484,11 @@ "policyId", "name", "policyEngineId", - "definition", "createdAt", "updatedAt", "policyArn", "status", + "definition", "statusReasons" ], "members":{ @@ -17896,14 +18504,6 @@ "shape":"ResourceId", "documentation":"

The identifier of the policy engine managing the updated policy.

" }, - "definition":{ - "shape":"PolicyDefinition", - "documentation":"

The updated Cedar policy statement.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The updated description of the policy.

" - }, "createdAt":{ "shape":"DateTimestamp", "documentation":"

The original creation timestamp of the policy.

" @@ -17920,6 +18520,14 @@ "shape":"PolicyStatus", "documentation":"

The current status of the updated policy.

" }, + "definition":{ + "shape":"PolicyDefinition", + "documentation":"

The updated Cedar policy statement.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The updated description of the policy.

" + }, "statusReasons":{ "shape":"PolicyStatusReasons", "documentation":"

Additional information about the update status.

" @@ -18514,7 +19122,7 @@ }, "namespaces":{ "shape":"NamespacesList", - "documentation":"

The namespaces associated with the user preference memory strategy.

", + "documentation":"

This is a legacy parameter, use namespaceTemplates. The namespaces associated with the user preference memory strategy.

", "deprecated":true, "deprecatedMessage":"Use namespaceTemplates instead", "deprecatedSince":"2026-03-02" @@ -18714,6 +19322,10 @@ "subnets":{ "shape":"Subnets", "documentation":"

The subnets associated with the VPC configuration.

" + }, + "requireServiceS3Endpoint":{ + "shape":"Boolean", + "documentation":"

This field applies only to Agent Runtimes. It is not applicable to Browsers or Code Interpreters.

Controls whether a service-managed Amazon S3 gateway endpoint is provisioned in the VPC network topology for the agent runtime. This gateway is used by Amazon Bedrock AgentCore Runtime to download code and container images during agent startup.

Starting May 5, 2026, Amazon Bedrock AgentCore Runtime is gradually rolling out a change to how network isolation is configured for VPC mode agents. Agent runtimes created on or after this rollout will no longer include the service-managed Amazon S3 gateway. Instead, all network access, including to Amazon S3, is governed exclusively by your VPC configuration. This field cannot be set on agent runtimes created after the rollout. Passing this field in an UpdateAgentRuntime request for these agent runtimes returns a ValidationException.

Agent runtimes created before the rollout are not affected and continue to operate with the service-managed Amazon S3 gateway. To enforce full VPC network isolation on these existing agent runtimes, set this field to false via the UpdateAgentRuntime API. Before opting out, ensure your VPC provides the Amazon S3 access required for agent startup. If this field is not specified or is set to true, the service-managed Amazon S3 gateway remains provisioned.

This field is only supported in the UpdateAgentRuntime API for pre-rollout agent runtimes. Passing this field in a CreateAgentRuntime request returns a ValidationException.

" } }, "documentation":"

VpcConfig for the Agent.

" diff --git a/awscli/botocore/data/billingconductor/2021-07-30/service-2.json b/awscli/botocore/data/billingconductor/2021-07-30/service-2.json index 220c94e8cc31..3dfe1b4b2575 100644 --- a/awscli/botocore/data/billingconductor/2021-07-30/service-2.json +++ b/awscli/botocore/data/billingconductor/2021-07-30/service-2.json @@ -581,6 +581,7 @@ "input":{"shape":"UpdateCustomLineItemInput"}, "output":{"shape":"UpdateCustomLineItemOutput"}, "errors":[ + {"shape":"ConflictException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, diff --git a/awscli/botocore/data/connect/2017-08-08/service-2.json b/awscli/botocore/data/connect/2017-08-08/service-2.json index ed447a1d352b..d20c110e56b4 100644 --- a/awscli/botocore/data/connect/2017-08-08/service-2.json +++ b/awscli/botocore/data/connect/2017-08-08/service-2.json @@ -19016,7 +19016,11 @@ "OnMetricDataUpdate", "OnCaseCreate", "OnCaseUpdate", - "OnSlaBreach" + "OnSlaBreach", + "OnAlertUpdate", + "OnSchedulePublish", + "OnScheduleUpdate", + "OnScheduleTimeOffRequestActivity" ] }, "ExecutionRecord":{ diff --git a/awscli/botocore/data/connectcampaignsv2/2024-04-23/service-2.json b/awscli/botocore/data/connectcampaignsv2/2024-04-23/service-2.json index 49ac7c303f3c..b2c352ff8fa3 100644 --- a/awscli/botocore/data/connectcampaignsv2/2024-04-23/service-2.json +++ b/awscli/botocore/data/connectcampaignsv2/2024-04-23/service-2.json @@ -1892,7 +1892,8 @@ "type":"structure", "members":{ "defaultTimeZone":{"shape":"TimeZone"}, - "localTimeZoneDetection":{"shape":"LocalTimeZoneDetection"} + "localTimeZoneDetection":{"shape":"LocalTimeZoneDetection"}, + "localTimeZoneDetectionScope":{"shape":"LocalTimeZoneDetectionScope"} }, "documentation":"

Local time zone config

" }, @@ -1901,6 +1902,14 @@ "member":{"shape":"LocalTimeZoneDetectionType"}, "documentation":"

Local TimeZone Detection method list

" }, + "LocalTimeZoneDetectionScope":{ + "type":"string", + "documentation":"

Local TimeZone Detection scope.

", + "enum":[ + "PRIMARY_ONLY", + "ALL_AVAILABLE" + ] + }, "LocalTimeZoneDetectionType":{ "type":"string", "documentation":"

Local TimeZone Detection method.

", diff --git a/awscli/botocore/data/connectcases/2022-10-03/service-2.json b/awscli/botocore/data/connectcases/2022-10-03/service-2.json index 1db5d3b4bb8e..f3a665ed3bd4 100644 --- a/awscli/botocore/data/connectcases/2022-10-03/service-2.json +++ b/awscli/botocore/data/connectcases/2022-10-03/service-2.json @@ -1485,7 +1485,7 @@ "members":{ "conditions":{ "shape":"BooleanConditionList", - "documentation":"

The list of conditions to combine using the logical operator.

" + "documentation":"

The list of conditions to combine using the logical operator.

For API users: A case rule can have a maximum of 5 conditions, spread across a maximum of 2 levels of nesting.

" } }, "documentation":"

A compound condition that combines multiple boolean conditions using logical operators. In the Amazon Connect admin website, case rules are known as case field conditions. For more information about case field conditions, see Add case field conditions to a case template.

" @@ -4541,7 +4541,7 @@ "TargetSlaMinutes":{ "type":"long", "box":true, - "max":129600, + "max":1051200, "min":1 }, "TemplateArn":{ diff --git a/awscli/botocore/data/dsql/2018-05-10/paginators-1.json b/awscli/botocore/data/dsql/2018-05-10/paginators-1.json index c9cfb66eb2f5..7249aa7dae3b 100644 --- a/awscli/botocore/data/dsql/2018-05-10/paginators-1.json +++ b/awscli/botocore/data/dsql/2018-05-10/paginators-1.json @@ -5,6 +5,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "clusters" + }, + "ListStreams": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "streams" } } } diff --git a/awscli/botocore/data/dsql/2018-05-10/service-2.json b/awscli/botocore/data/dsql/2018-05-10/service-2.json index 1a778e1837b7..27de88f586c5 100644 --- a/awscli/botocore/data/dsql/2018-05-10/service-2.json +++ b/awscli/botocore/data/dsql/2018-05-10/service-2.json @@ -32,6 +32,26 @@ ], "documentation":"

The CreateCluster API allows you to create both single-Region clusters and multi-Region clusters. With the addition of the multiRegionProperties parameter, you can create a cluster with witness Region support and establish peer relationships with clusters in other Regions during creation.

Creating multi-Region clusters requires additional IAM permissions beyond those needed for single-Region clusters, as detailed in the Required permissions section below.

Required permissions

dsql:CreateCluster

Required to create a cluster.

Resources: arn:aws:dsql:region:account-id:cluster/*

dsql:TagResource

Permission to add tags to a resource.

Resources: arn:aws:dsql:region:account-id:cluster/*

dsql:PutMultiRegionProperties

Permission to configure multi-Region properties for a cluster.

Resources: arn:aws:dsql:region:account-id:cluster/*

dsql:AddPeerCluster

When specifying multiRegionProperties.clusters, permission to add peer clusters.

Resources:

  • Local cluster: arn:aws:dsql:region:account-id:cluster/*

  • Each peer cluster: exact ARN of each specified peer cluster

dsql:PutWitnessRegion

When specifying multiRegionProperties.witnessRegion, permission to set a witness Region. This permission is checked both in the cluster Region and in the witness Region.

Resources: arn:aws:dsql:region:account-id:cluster/*

Condition Keys: dsql:WitnessRegion (matching the specified witness region)

  • The witness Region specified in multiRegionProperties.witnessRegion cannot be the same as the cluster's Region.

" }, + "CreateStream":{ + "name":"CreateStream", + "http":{ + "method":"POST", + "requestUri":"/stream/{clusterIdentifier}", + "responseCode":200 + }, + "input":{"shape":"CreateStreamInput"}, + "output":{"shape":"CreateStreamOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a new change data capture (CDC) stream for a cluster. The stream captures database changes and delivers them to the specified target destination.

Required permissions

dsql:CreateStream

Permission to create a new stream.

Resources: arn:aws:dsql:region:account-id:cluster/cluster-id

iam:PassRole

Permission to pass the IAM role specified in the target definition to the service.

Resources: ARN of the IAM role specified in targetDefinition.kinesis.roleArn

kms:Decrypt

Required when the cluster uses a customer managed KMS key (CMK). Permission to decrypt data using the cluster's CMK.

Resources: ARN of the KMS key used by the cluster

" + }, "DeleteCluster":{ "name":"DeleteCluster", "http":{ @@ -72,6 +92,26 @@ "documentation":"

Deletes the resource-based policy attached to a cluster. This removes all access permissions defined by the policy, reverting to default access controls.

", "idempotent":true }, + "DeleteStream":{ + "name":"DeleteStream", + "http":{ + "method":"DELETE", + "requestUri":"/stream/{clusterIdentifier}/{streamIdentifier}", + "responseCode":200 + }, + "input":{"shape":"DeleteStreamInput"}, + "output":{"shape":"DeleteStreamOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes a stream from a cluster.

", + "idempotent":true + }, "GetCluster":{ "name":"GetCluster", "http":{ @@ -110,6 +150,25 @@ "documentation":"

Retrieves the resource-based policy document attached to a cluster. This policy defines the access permissions and conditions for the cluster.

", "readonly":true }, + "GetStream":{ + "name":"GetStream", + "http":{ + "method":"GET", + "requestUri":"/stream/{clusterIdentifier}/{streamIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetStreamInput"}, + "output":{"shape":"GetStreamOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves information about a stream.

", + "readonly":true + }, "GetVpcEndpointServiceName":{ "name":"GetVpcEndpointServiceName", "http":{ @@ -148,6 +207,25 @@ "documentation":"

Retrieves information about a list of clusters.

", "readonly":true }, + "ListStreams":{ + "name":"ListStreams", + "http":{ + "method":"GET", + "requestUri":"/stream/{clusterIdentifier}", + "responseCode":200 + }, + "input":{"shape":"ListStreamsInput"}, + "output":{"shape":"ListStreamsOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves information about a list of streams for a cluster.

", + "readonly":true + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -438,6 +516,87 @@ }, "documentation":"

The output of a created cluster.

" }, + "CreateStreamInput":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "targetDefinition", + "ordering", + "format" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster for which to create the stream.

", + "location":"uri", + "locationName":"clusterIdentifier" + }, + "targetDefinition":{ + "shape":"TargetDefinition", + "documentation":"

The target destination configuration for the stream. Contains Kinesis stream configuration including stream ARN and IAM role ARN.

" + }, + "ordering":{ + "shape":"StreamOrdering", + "documentation":"

The ordering mode for the stream. Determines how change events are ordered when delivered to the target.

" + }, + "format":{ + "shape":"StreamFormat", + "documentation":"

The format of the stream records.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A map of key and value pairs to use to tag your stream.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.

If you don't specify a client token, the Amazon Web Services SDK automatically generates one.

", + "idempotencyToken":true + } + } + }, + "CreateStreamOutput":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "streamIdentifier", + "arn", + "status", + "creationTime", + "ordering", + "format" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster for the created stream.

" + }, + "streamIdentifier":{ + "shape":"StreamId", + "documentation":"

The ID of the created stream.

" + }, + "arn":{ + "shape":"StreamArn", + "documentation":"

The ARN of the created stream.

" + }, + "status":{ + "shape":"StreamStatus", + "documentation":"

The status of the created stream.

" + }, + "creationTime":{ + "shape":"StreamCreationTime", + "documentation":"

The time when created the stream.

" + }, + "ordering":{ + "shape":"StreamOrdering", + "documentation":"

The ordering mode of the created stream.

" + }, + "format":{ + "shape":"StreamFormat", + "documentation":"

The format of the created stream records.

" + } + }, + "documentation":"

The output of a created stream.

" + }, "DeleteClusterInput":{ "type":"structure", "required":["identifier"], @@ -518,6 +677,67 @@ } } }, + "DeleteStreamInput":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "streamIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster containing the stream to delete.

", + "location":"uri", + "locationName":"clusterIdentifier" + }, + "streamIdentifier":{ + "shape":"StreamId", + "documentation":"

The ID of the stream to delete.

", + "location":"uri", + "locationName":"streamIdentifier" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.

If you don't specify a client token, the Amazon Web Services SDK automatically generates one.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"client-token" + } + } + }, + "DeleteStreamOutput":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "streamIdentifier", + "arn", + "status", + "creationTime" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster for the deleted stream.

" + }, + "streamIdentifier":{ + "shape":"StreamId", + "documentation":"

The ID of the deleted stream.

" + }, + "arn":{ + "shape":"StreamArn", + "documentation":"

The ARN of the deleted stream.

" + }, + "status":{ + "shape":"StreamStatus", + "documentation":"

The status of the stream.

" + }, + "creationTime":{ + "shape":"StreamCreationTime", + "documentation":"

The time when the stream was created.

" + } + }, + "documentation":"

The output from a deleted stream.

" + }, "DeletionProtectionEnabled":{ "type":"boolean", "documentation":"

Indicates whether deletion protection is enabled for a cluster.

", @@ -652,6 +872,82 @@ } } }, + "GetStreamInput":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "streamIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster containing the stream to retrieve.

", + "location":"uri", + "locationName":"clusterIdentifier" + }, + "streamIdentifier":{ + "shape":"StreamId", + "documentation":"

The ID of the stream to retrieve.

", + "location":"uri", + "locationName":"streamIdentifier" + } + } + }, + "GetStreamOutput":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "streamIdentifier", + "arn", + "status", + "creationTime", + "ordering", + "format" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster for the retrieved stream.

" + }, + "streamIdentifier":{ + "shape":"StreamId", + "documentation":"

The ID of the retrieved stream.

" + }, + "arn":{ + "shape":"StreamArn", + "documentation":"

The ARN of the retrieved stream.

" + }, + "status":{ + "shape":"StreamStatus", + "documentation":"

The current status of the retrieved stream.

" + }, + "creationTime":{ + "shape":"StreamCreationTime", + "documentation":"

The time when the stream was created.

" + }, + "ordering":{ + "shape":"StreamOrdering", + "documentation":"

The ordering mode of the stream.

" + }, + "format":{ + "shape":"StreamFormat", + "documentation":"

The format of the stream records.

" + }, + "targetDefinition":{ + "shape":"TargetDefinition", + "documentation":"

The target definition for the stream destination.

" + }, + "statusReason":{ + "shape":"StatusReason", + "documentation":"

Stream status reason with error code and timestamp (if applicable).

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A map of tags associated with the stream.

" + } + }, + "documentation":"

The output of a retrieved stream.

" + }, "GetVpcEndpointServiceNameInput":{ "type":"structure", "required":["identifier"], @@ -700,6 +996,31 @@ "fault":true, "retryable":{"throttling":false} }, + "KinesisStreamArn":{ + "type":"string", + "documentation":"

The Amazon Resource Name (ARN) of an Amazon Kinesis Data Stream.

", + "max":2048, + "min":1, + "pattern":"arn:aws.*:kinesis:.*:\\d{12}:stream/\\S+" + }, + "KinesisTargetDefinition":{ + "type":"structure", + "required":[ + "streamArn", + "roleArn" + ], + "members":{ + "streamArn":{ + "shape":"KinesisStreamArn", + "documentation":"

The ARN of the Kinesis stream.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the IAM role that grants permission to write to the Kinesis stream. This can be a standard role (arn:aws:iam::account-id:role/role-name) or a role with a path prefix (arn:aws:iam::account-id:role/service-role/role-name), such as roles auto-created by the console.

" + } + }, + "documentation":"

Kinesis stream target configuration.

" + }, "KmsEncryptionKey":{ "type":"string", "max":2048, @@ -738,6 +1059,44 @@ } } }, + "ListStreamsInput":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster for which to list streams.

", + "location":"uri", + "locationName":"clusterIdentifier" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results. Default: 10.

", + "location":"querystring", + "locationName":"max-results" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If your initial ListStreams operation returns a nextToken, you can include the returned nextToken in following ListStreams operations, which returns results in the next page.

", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListStreamsOutput":{ + "type":"structure", + "required":["streams"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, make the call again using the returned token.

" + }, + "streams":{ + "shape":"StreamList", + "documentation":"

An array of the returned streams.

" + } + } + }, "ListTagsForResourceInput":{ "type":"structure", "required":["resourceArn"], @@ -862,6 +1221,13 @@ }, "exception":true }, + "RoleArn":{ + "type":"string", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role.

", + "max":2048, + "min":20, + "pattern":"arn:aws(-[^:]+)?:iam::[0-9]{12}:role(/[a-zA-Z0-9+=,.@_-]+)+" + }, "ServiceName":{ "type":"string", "documentation":"

The name of the VPC endpoint service that provides access to your cluster. Use this endpoint to establish a private connection between your VPC and the cluster.

", @@ -907,6 +1273,112 @@ }, "exception":true }, + "StatusReason":{ + "type":"structure", + "required":[ + "error", + "updatedAt" + ], + "members":{ + "error":{ + "shape":"StreamFailureErrorCode", + "documentation":"

The error code for the stream failure.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the status was updated.

" + } + }, + "documentation":"

Stream status reason with error and timestamp.

" + }, + "StreamArn":{ + "type":"string", + "documentation":"

The Amazon Resource Name (ARN) of the stream.

", + "pattern":"arn:aws(-[^:]+)?:dsql:[a-z0-9-]{1,20}:[0-9]{12}:cluster/[a-z0-9]{26}/stream/[a-z0-9]{26}" + }, + "StreamCreationTime":{ + "type":"timestamp", + "documentation":"

The timestamp when the stream was created.

" + }, + "StreamFailureErrorCode":{ + "type":"string", + "documentation":"

Error codes for stream failures.

KINESIS_THROUGHPUT_EXCEEDED

The Kinesis stream throughput limit was exceeded.

KINESIS_STREAM_NOT_FOUND

The specified Kinesis stream was not found.

ROLE_ACCESS_DENIED

Access was denied for the specified IAM role.

KINESIS_ACCESS_DENIED

Access to the Kinesis stream was denied.

KINESIS_KMS_ACCESS_DENIED

Access to the KMS key for the Kinesis stream was denied.

KINESIS_OVERSIZE_RECORD

A record exceeded the Kinesis stream size limit.

CLUSTER_CMK_INACCESSIBLE

The cluster's customer-managed key is inaccessible.

INTERNAL_ERROR

An internal error occurred.

", + "enum":[ + "KINESIS_THROUGHPUT_EXCEEDED", + "KINESIS_STREAM_NOT_FOUND", + "ROLE_ACCESS_DENIED", + "KINESIS_ACCESS_DENIED", + "KINESIS_KMS_ACCESS_DENIED", + "KINESIS_OVERSIZE_RECORD", + "CLUSTER_CMK_INACCESSIBLE", + "INTERNAL_ERROR" + ] + }, + "StreamFormat":{ + "type":"string", + "documentation":"

Stream record format.

JSON

Stream records are formatted as JSON.

", + "enum":["JSON"] + }, + "StreamId":{ + "type":"string", + "documentation":"

The ID of the stream.

", + "pattern":"[a-z0-9]{26}" + }, + "StreamList":{ + "type":"list", + "member":{"shape":"StreamSummary"}, + "documentation":"

A list of stream summaries.

" + }, + "StreamOrdering":{ + "type":"string", + "documentation":"

Stream ordering mode.

UNORDERED

Changes are streamed without ordering guarantees.

", + "enum":["UNORDERED"] + }, + "StreamStatus":{ + "type":"string", + "documentation":"

The current status of a stream.

CREATING

The stream is being created.

ACTIVE

The stream is active and processing changes.

DELETING

The stream is being deleted.

DELETED

The stream has been deleted.

FAILED

The stream has failed.

IMPAIRED

The stream is impaired and may not be processing changes correctly.

", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "IMPAIRED" + ] + }, + "StreamSummary":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "streamIdentifier", + "arn", + "creationTime", + "status" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterId", + "documentation":"

The ID of the cluster.

" + }, + "streamIdentifier":{ + "shape":"StreamId", + "documentation":"

The ID of the stream.

" + }, + "arn":{ + "shape":"StreamArn", + "documentation":"

The ARN of the stream.

" + }, + "creationTime":{ + "shape":"StreamCreationTime", + "documentation":"

The timestamp when the stream was created.

" + }, + "status":{ + "shape":"StreamStatus", + "documentation":"

The current status of the stream.

" + } + }, + "documentation":"

Summary information about a stream.

" + }, "String":{"type":"string"}, "TagKey":{ "type":"string", @@ -956,6 +1428,17 @@ "min":0, "pattern":"[a-zA-Z0-9_.:/=+\\-@ ]*" }, + "TargetDefinition":{ + "type":"structure", + "members":{ + "kinesis":{ + "shape":"KinesisTargetDefinition", + "documentation":"

Kinesis stream target configuration.

" + } + }, + "documentation":"

Target definition for stream destination.

", + "union":true + }, "ThrottlingException":{ "type":"structure", "required":["message"], @@ -987,6 +1470,7 @@ "exception":true, "retryable":{"throttling":true} }, + "Timestamp":{"type":"timestamp"}, "UntagResourceInput":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/dsql/2018-05-10/waiters-2.json b/awscli/botocore/data/dsql/2018-05-10/waiters-2.json index 69cd9baaeb5b..73cae97cf212 100644 --- a/awscli/botocore/data/dsql/2018-05-10/waiters-2.json +++ b/awscli/botocore/data/dsql/2018-05-10/waiters-2.json @@ -23,6 +23,29 @@ "state" : "success", "expected" : "ResourceNotFoundException" } ] + }, + "StreamActive" : { + "description" : "Wait until a Stream is ACTIVE", + "delay" : 2, + "maxAttempts" : 60, + "operation" : "GetStream", + "acceptors" : [ { + "matcher" : "path", + "argument" : "status", + "state" : "success", + "expected" : "ACTIVE" + } ] + }, + "StreamNotExists" : { + "description" : "Wait until a Stream is gone", + "delay" : 2, + "maxAttempts" : 60, + "operation" : "GetStream", + "acceptors" : [ { + "matcher" : "error", + "state" : "success", + "expected" : "ResourceNotFoundException" + } ] } } } \ No newline at end of file diff --git a/awscli/botocore/data/ec2/2016-11-15/service-2.json b/awscli/botocore/data/ec2/2016-11-15/service-2.json index 223ce02cac20..d02d4f72d7e4 100644 --- a/awscli/botocore/data/ec2/2016-11-15/service-2.json +++ b/awscli/botocore/data/ec2/2016-11-15/service-2.json @@ -14880,6 +14880,11 @@ } } }, + "CopyImageClientToken":{ + "type":"string", + "max":128, + "min":0 + }, "CopyImageRequest":{ "type":"structure", "required":[ @@ -14889,12 +14894,12 @@ ], "members":{ "ClientToken":{ - "shape":"String", + "shape":"CopyImageClientToken", "documentation":"

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in Amazon EC2 API requests in the Amazon EC2 API Reference.

", "idempotencyToken":true }, "Description":{ - "shape":"String", + "shape":"ImageDescriptionRequest", "documentation":"

A description for the new AMI.

" }, "Encrypted":{ @@ -14908,7 +14913,7 @@ "locationName":"kmsKeyId" }, "Name":{ - "shape":"String", + "shape":"ImageNameRequest", "documentation":"

The name of the new AMI.

" }, "SourceImageId":{ @@ -16310,12 +16315,12 @@ "locationName":"instanceId" }, "Name":{ - "shape":"String", + "shape":"ImageNameRequest", "documentation":"

A name for the new image.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", "locationName":"name" }, "Description":{ - "shape":"String", + "shape":"ImageDescriptionRequest", "documentation":"

A description for the new image.

", "locationName":"description" }, @@ -16341,6 +16346,11 @@ } } }, + "CreateImageUsageReportClientToken":{ + "type":"string", + "max":128, + "min":0 + }, "CreateImageUsageReportRequest":{ "type":"structure", "required":[ @@ -16367,7 +16377,7 @@ "locationName":"AccountId" }, "ClientToken":{ - "shape":"String", + "shape":"CreateImageUsageReportClientToken", "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", "idempotencyToken":true }, @@ -18103,7 +18113,7 @@ "documentation":"

The name of the stored AMI object in the bucket.

" }, "Name":{ - "shape":"String", + "shape":"ImageNameRequest", "documentation":"

The name for the restored AMI. The name must be unique for AMIs in the Region for this account. If you do not provide a name, the new AMI gets the same name as the original AMI.

" }, "TagSpecifications":{ @@ -41986,7 +41996,7 @@ "locationName":"MarketplaceProductCode" }, "ImageNames":{ - "shape":"ImageNameRequestList", + "shape":"ImageNameCriteriaRequestList", "documentation":"

The names of allowed images. Names can include wildcards (? and *).

Length: 1–128 characters. With ?, the minimum is 3 characters.

Valid characters:

  • Letters: A–Z, a–z

  • Numbers: 0–9

  • Special characters: ( ) [ ] . / - ' @ _ * ?

  • Spaces

Maximum: 50 values

", "locationName":"ImageName" }, @@ -42008,6 +42018,11 @@ "locationName":"ImageCriterion" } }, + "ImageDescriptionRequest":{ + "type":"string", + "max":255, + "min":0 + }, "ImageDiskContainer":{ "type":"structure", "members":{ @@ -42119,21 +42134,30 @@ "documentation":"

Information about the AMI.

" }, "ImageName":{"type":"string"}, - "ImageNameList":{ + "ImageNameCriteriaRequest":{ + "type":"string", + "max":128, + "min":0 + }, + "ImageNameCriteriaRequestList":{ "type":"list", "member":{ - "shape":"ImageName", + "shape":"ImageNameCriteriaRequest", "locationName":"item" } }, - "ImageNameRequest":{"type":"string"}, - "ImageNameRequestList":{ + "ImageNameList":{ "type":"list", "member":{ - "shape":"ImageNameRequest", + "shape":"ImageName", "locationName":"item" } }, + "ImageNameRequest":{ + "type":"string", + "max":128, + "min":3 + }, "ImageProvider":{"type":"string"}, "ImageProviderList":{ "type":"list", @@ -42254,6 +42278,11 @@ "ramdisk" ] }, + "ImageUefiDataRequest":{ + "type":"string", + "max":64000, + "min":0 + }, "ImageUsageReport":{ "type":"structure", "members":{ @@ -61373,7 +61402,7 @@ "documentation":"

Set to v2.0 to enable Trusted Platform Module (TPM) support. For more information, see NitroTPM in the Amazon EC2 User Guide.

" }, "UefiData":{ - "shape":"StringType", + "shape":"ImageUefiDataRequest", "documentation":"

Base64 representation of the non-volatile UEFI variable store. To retrieve the UEFI data, use the GetInstanceUefiData command. You can inspect and modify the UEFI data by using the python-uefivars tool on GitHub. For more information, see UEFI Secure Boot for Amazon EC2 instances in the Amazon EC2 User Guide.

" }, "ImdsSupport":{ @@ -61391,12 +61420,12 @@ "locationName":"dryRun" }, "Name":{ - "shape":"String", + "shape":"ImageNameRequest", "documentation":"

A name for your AMI.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", "locationName":"name" }, "Description":{ - "shape":"String", + "shape":"ImageDescriptionRequest", "documentation":"

A description for your AMI.

", "locationName":"description" }, @@ -69510,11 +69539,6 @@ "locationName":"item" } }, - "StringType":{ - "type":"string", - "max":64000, - "min":0 - }, "Subnet":{ "type":"structure", "members":{ @@ -75125,10 +75149,6 @@ "shape":"DateTime", "documentation":"

The modification completion or failure time.

", "locationName":"endTime" - }, - "Operator":{ - "shape":"OperatorResponse", - "locationName":"operator" } }, "documentation":"

Describes the modification status of an EBS volume.

" diff --git a/awscli/botocore/data/es/2015-01-01/service-2.json b/awscli/botocore/data/es/2015-01-01/service-2.json index c9bd2d3e45a9..2baae88eb527 100644 --- a/awscli/botocore/data/es/2015-01-01/service-2.json +++ b/awscli/botocore/data/es/2015-01-01/service-2.json @@ -1288,6 +1288,66 @@ "documentation":"

Specifies Auto-Tune type. Valid value is SCHEDULED_ACTION.

", "enum":["SCHEDULED_ACTION"] }, + "AutomatedSnapshotPauseOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Whether automated snapshot pause is enabled for the domain.

" + }, + "StartTime":{ + "shape":"UpdateTimestamp", + "documentation":"

The timestamp at which the automated snapshot pause begins.

" + }, + "EndTime":{ + "shape":"UpdateTimestamp", + "documentation":"

The timestamp at which the automated snapshot pause ends.

" + }, + "State":{ + "shape":"PauseState", + "documentation":"

The current state of the automated snapshot pause. Valid values are Active, Completed, Scheduled, and Disabled.

" + } + }, + "documentation":"

Specifies the automated snapshot pause options for the domain. These options allow you to temporarily pause automated snapshots for a specified time period.

" + }, + "AutomatedSnapshotPauseOptionsStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{ + "shape":"AutomatedSnapshotPauseOptions", + "documentation":"

Automated snapshot pause options for the specified Elasticsearch domain.

" + }, + "Status":{ + "shape":"OptionStatus", + "documentation":"

The current status of the automated snapshot pause options for the specified Elasticsearch domain.

" + } + }, + "documentation":"

The status of automated snapshot pause options for the specified Elasticsearch domain.

" + }, + "AutomatedSnapshotPauseRequestOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Whether to enable or disable automated snapshot pause for the domain.

" + }, + "StartTime":{ + "shape":"UpdateTimestamp", + "documentation":"

The timestamp at which the automated snapshot pause should begin.

" + }, + "EndTime":{ + "shape":"UpdateTimestamp", + "documentation":"

The timestamp at which the automated snapshot pause should end. The maximum allowed duration between StartTime and EndTime is 3 days.

" + } + }, + "documentation":"

Specifies the automated snapshot pause request options for the domain.

Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.

Maximum suspension duration: 3 days.

" + }, "BackendRole":{ "type":"string", "max":256, @@ -1670,6 +1730,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptions", "documentation":"

Specifies the deployment strategy options.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseRequestOptions", + "documentation":"

Specifies the automated snapshot pause options for the domain.

Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.

Maximum suspension duration: 3 days.

" } } }, @@ -2875,6 +2939,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptionsStatus", "documentation":"

Specifies DeploymentStrategyOptions for the domain.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseOptionsStatus", + "documentation":"

Specifies AutomatedSnapshotPauseOptions for the domain.

" } }, "documentation":"

The configuration of an Elasticsearch domain.

" @@ -2996,6 +3064,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptions", "documentation":"

The current status of the Elasticsearch domain's deployment strategy options.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseOptions", + "documentation":"

The current status of the Elasticsearch domain's automated snapshot pause options.

" } }, "documentation":"

The current status of an Elasticsearch domain.

" @@ -4051,6 +4123,15 @@ "min":8, "sensitive":true }, + "PauseState":{ + "type":"string", + "enum":[ + "Active", + "Completed", + "Scheduled", + "Disabled" + ] + }, "PolicyDocument":{ "type":"string", "documentation":"

Access policy rules for an Elasticsearch domain service endpoints. For more information, see Configuring Access Policies in the Amazon Elasticsearch Service Developer Guide. The maximum size of a policy document is 100 KB.

" @@ -4736,6 +4817,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptions", "documentation":"

Specifies the deployment strategy options.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseRequestOptions", + "documentation":"

Specifies the automated snapshot pause options for the domain.

Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.

Maximum suspension duration: 3 days.

" } }, "documentation":"

Container for the parameters to the UpdateElasticsearchDomain operation. Specifies the type and number of instances in the domain cluster.

" diff --git a/awscli/botocore/data/glue/2017-03-31/service-2.json b/awscli/botocore/data/glue/2017-03-31/service-2.json index b8e8a871b073..4ce6d628a430 100644 --- a/awscli/botocore/data/glue/2017-03-31/service-2.json +++ b/awscli/botocore/data/glue/2017-03-31/service-2.json @@ -4554,7 +4554,7 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This overrides the timeout value set in the parent job.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2880 minutes.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" + "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This overrides the timeout value set in the parent job.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -9921,7 +9921,7 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2880 minutes.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" + "documentation":"

The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" }, "MaxCapacity":{ "shape":"NullableDouble", @@ -18993,7 +18993,7 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2880 minutes.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" + "documentation":"

The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" }, "MaxCapacity":{ "shape":"NullableDouble", @@ -19217,7 +19217,7 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This value overrides the timeout value set in the parent job.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2880 minutes.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" + "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This value overrides the timeout value set in the parent job.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" }, "MaxCapacity":{ "shape":"NullableDouble", @@ -19348,7 +19348,7 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2880 minutes.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" + "documentation":"

The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" }, "MaxCapacity":{ "shape":"NullableDouble", @@ -26221,7 +26221,7 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This value overrides the timeout value set in the parent job.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2880 minutes.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" + "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This value overrides the timeout value set in the parent job.

Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.

Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.

" }, "MaxCapacity":{ "shape":"NullableDouble", diff --git a/awscli/botocore/data/lightsail/2016-11-28/service-2.json b/awscli/botocore/data/lightsail/2016-11-28/service-2.json index e9687c31f238..59938025ba59 100644 --- a/awscli/botocore/data/lightsail/2016-11-28/service-2.json +++ b/awscli/botocore/data/lightsail/2016-11-28/service-2.json @@ -8990,6 +8990,10 @@ "responseTimeout":{ "shape":"integer", "documentation":"

The amount of time, in seconds, that the distribution waits for a response after forwarding a request to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.

" + }, + "ipAddressType":{ + "shape":"OriginIpAddressTypeEnum", + "documentation":"

The IP address type that the distribution uses when connecting to the origin.

The possible values are ipv4 for IPv4 only, ipv6 for IPv6 only, and dualstack for IPv4 and IPv6.

" } }, "documentation":"

Describes the origin resource of an Amazon Lightsail content delivery network (CDN) distribution.

An origin can be a Lightsail instance, bucket, container service, or load balancer. A distribution pulls content from an origin, caches it, and serves it to viewers via a worldwide network of edge servers.

" @@ -10573,10 +10577,22 @@ "responseTimeout":{ "shape":"integer", "documentation":"

The amount of time, in seconds, that the distribution waits for a response after forwarding a request to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.

" + }, + "ipAddressType":{ + "shape":"OriginIpAddressTypeEnum", + "documentation":"

The IP address type that the distribution uses when connecting to the origin.

The possible values are ipv4 for IPv4 only, ipv6 for IPv6 only, and dualstack for IPv4 and IPv6.

" } }, "documentation":"

Describes the origin resource of an Amazon Lightsail content delivery network (CDN) distribution.

An origin can be a Lightsail instance, bucket, or load balancer. A distribution pulls content from an origin, caches it, and serves it to viewers via a worldwide network of edge servers.

" }, + "OriginIpAddressTypeEnum":{ + "type":"string", + "enum":[ + "ipv4", + "ipv6", + "dualstack" + ] + }, "OriginProtocolPolicyEnum":{ "type":"string", "enum":[ diff --git a/awscli/botocore/data/opensearch/2021-01-01/service-2.json b/awscli/botocore/data/opensearch/2021-01-01/service-2.json index 184d3a5eaa54..8c499283cfc5 100644 --- a/awscli/botocore/data/opensearch/2021-01-01/service-2.json +++ b/awscli/botocore/data/opensearch/2021-01-01/service-2.json @@ -2308,6 +2308,66 @@ "documentation":"

Specifies the Auto-Tune type. Valid value is SCHEDULED_ACTION.

", "enum":["SCHEDULED_ACTION"] }, + "AutomatedSnapshotPauseOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Whether automated snapshot pause is enabled for the domain.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the automated snapshot pause begins.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the automated snapshot pause ends.

" + }, + "State":{ + "shape":"PauseState", + "documentation":"

The current state of the automated snapshot pause. Valid values are Active, Completed, Scheduled, and Disabled.

" + } + }, + "documentation":"

Specifies the automated snapshot pause options for the domain. These options allow you to temporarily pause automated snapshots for a specified time period.

" + }, + "AutomatedSnapshotPauseOptionsStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{ + "shape":"AutomatedSnapshotPauseOptions", + "documentation":"

Automated snapshot pause options for the domain.

" + }, + "Status":{ + "shape":"OptionStatus", + "documentation":"

The current status of the automated snapshot pause options for the domain.

" + } + }, + "documentation":"

The status of automated snapshot pause options for the domain.

" + }, + "AutomatedSnapshotPauseRequestOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Whether to enable or disable automated snapshot pause for the domain.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the automated snapshot pause should begin.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the automated snapshot pause should end. The maximum allowed duration between StartTime and EndTime is 3 days.

" + } + }, + "documentation":"

Specifies the automated snapshot pause request options for the domain.

Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.

Maximum suspension duration: 3 days.

" + }, "AvailabilityZone":{ "type":"string", "max":15, @@ -3018,6 +3078,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptions", "documentation":"

Specifies the deployment strategy options for the domain.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseRequestOptions", + "documentation":"

Specifies the automated snapshot pause options for the domain.

Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.

Maximum suspension duration: 3 days.

" } } }, @@ -4410,6 +4474,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptionsStatus", "documentation":"

Specifies DeploymentStrategyOptions for the domain.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseOptionsStatus", + "documentation":"

Specifies AutomatedSnapshotPauseOptions for the domain.

" } }, "documentation":"

Container for the configuration of an OpenSearch Service domain.

" @@ -4837,6 +4905,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptions", "documentation":"

The current status of the domain's deployment strategy options.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseOptions", + "documentation":"

The current status of the domain's automated snapshot pause options.

" } }, "documentation":"

The current status of an OpenSearch Service domain.

" @@ -7544,6 +7616,16 @@ "pattern":".*", "sensitive":true }, + "PauseState":{ + "type":"string", + "documentation":"

The state of the automated snapshot pause. Valid values are Active, Completed, Scheduled, and Disabled.

", + "enum":[ + "Active", + "Completed", + "Scheduled", + "Disabled" + ] + }, "PluginClassName":{ "type":"string", "max":1024 @@ -8869,6 +8951,10 @@ "DeploymentStrategyOptions":{ "shape":"DeploymentStrategyOptions", "documentation":"

Specifies the deployment strategy options for the domain.

" + }, + "AutomatedSnapshotPauseOptions":{ + "shape":"AutomatedSnapshotPauseRequestOptions", + "documentation":"

Specifies the automated snapshot pause options for the domain.

Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.

Maximum suspension duration: 3 days.

" } }, "documentation":"

Container for the request parameters to the UpdateDomain operation.

" diff --git a/awscli/botocore/data/partnercentral-account/2025-04-04/service-2.json b/awscli/botocore/data/partnercentral-account/2025-04-04/service-2.json index b365e14436b3..fe1a5c3a7806 100644 --- a/awscli/botocore/data/partnercentral-account/2025-04-04/service-2.json +++ b/awscli/botocore/data/partnercentral-account/2025-04-04/service-2.json @@ -404,7 +404,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Sets the visibility level for a partner profile, controlling who can view the profile information.

" }, @@ -457,7 +458,8 @@ {"shape":"ConflictException"}, {"shape":"ThrottlingException"}, {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Initiates a profile update task to modify partner profile information asynchronously.

", "idempotent":true @@ -691,7 +693,8 @@ "INCOMPATIBLE_IDENTITY_VERIFICATION_STATUS", "INVALID_ACCOUNT_LINKING_STATUS", "INVALID_ACCOUNT_STATE", - "INCOMPATIBLE_DOMAIN" + "INCOMPATIBLE_DOMAIN", + "INELIGIBLE_ACCOUNT_TIER" ] }, "BusinessValidationError":{ @@ -3019,7 +3022,9 @@ "LIMIT_EXCEEDED_NUMBER_OF_DOMAIN", "LIMIT_EXCEEDED_NUMBER_OF_CONNECTION_INVITATION_PER_DAY", "LIMIT_EXCEEDED_NUMBER_OF_ACTIVE_CONNECTION", - "LIMIT_EXCEEDED_NUMBER_OF_OPEN_CONNECTION_INVITATION" + "LIMIT_EXCEEDED_NUMBER_OF_OPEN_CONNECTION_INVITATION", + "LIMIT_EXCEEDED_NUMBER_OF_PROFILE_UPDATE_PER_DAY", + "LIMIT_EXCEEDED_NUMBER_OF_PROFILE_VISIBILITY_UPDATE_PER_DAY" ] }, "StartProfileUpdateTaskRequest":{ diff --git a/awscli/botocore/data/pcs/2023-02-10/service-2.json b/awscli/botocore/data/pcs/2023-02-10/service-2.json index 3bf0ee46fdd5..7e7fa524062e 100644 --- a/awscli/botocore/data/pcs/2023-02-10/service-2.json +++ b/awscli/botocore/data/pcs/2023-02-10/service-2.json @@ -720,7 +720,7 @@ }, "purchaseOption":{ "shape":"PurchaseOption", - "documentation":"

Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. If you don't provide this option, it defaults to On-Demand.

" + "documentation":"

Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand.

" }, "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, "iamInstanceProfileArn":{ @@ -948,7 +948,7 @@ }, "purchaseOption":{ "shape":"PurchaseOption", - "documentation":"

Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. If you don't provide this option, it defaults to On-Demand.

" + "documentation":"

Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand.

" }, "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, "iamInstanceProfileArn":{ @@ -1465,7 +1465,8 @@ "enum":[ "ONDEMAND", "SPOT", - "CAPACITY_BLOCK" + "CAPACITY_BLOCK", + "INTERRUPTIBLE_CAPACITY_RESERVATION" ] }, "Queue":{ @@ -2143,7 +2144,7 @@ "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, "purchaseOption":{ "shape":"PurchaseOption", - "documentation":"

Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. If you don't provide this option, it defaults to On-Demand.

" + "documentation":"

Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand.

" }, "spotOptions":{"shape":"SpotOptions"}, "scalingConfiguration":{ diff --git a/awscli/botocore/data/quicksight/2018-04-01/service-2.json b/awscli/botocore/data/quicksight/2018-04-01/service-2.json index fd6e6c06d263..5874e74c7963 100644 --- a/awscli/botocore/data/quicksight/2018-04-01/service-2.json +++ b/awscli/botocore/data/quicksight/2018-04-01/service-2.json @@ -8644,6 +8644,26 @@ "shape":"CapabilityState", "documentation":"

The ability to perform flow-related actions.

" }, + "Apps":{ + "shape":"CapabilityState", + "documentation":"

The ability to perform apps-related actions.

" + }, + "CreateAndUpdateApps":{ + "shape":"CapabilityState", + "documentation":"

The ability to create or update apps.

" + }, + "ShareApps":{ + "shape":"CapabilityState", + "documentation":"

The ability to share apps with other users.

" + }, + "InvokeAppsAIInference":{ + "shape":"CapabilityState", + "documentation":"

The ability to add and invoke AI inference in new and existing apps.

" + }, + "AccessAppsNativeDataStore":{ + "shape":"CapabilityState", + "documentation":"

The ability to access the native data store for new and existing apps.

" + }, "PublishWithoutApproval":{ "shape":"CapabilityState", "documentation":"

The ability to enable approvals for flow share.

" diff --git a/awscli/botocore/data/redshift/2012-12-01/service-2.json b/awscli/botocore/data/redshift/2012-12-01/service-2.json index 635dc875ba98..aec7771805b1 100644 --- a/awscli/botocore/data/redshift/2012-12-01/service-2.json +++ b/awscli/botocore/data/redshift/2012-12-01/service-2.json @@ -2431,7 +2431,7 @@ {"shape":"DependentServiceUnavailableFault"}, {"shape":"ReservedNodeAlreadyExistsFault"} ], - "documentation":"

Changes the size of the cluster. You can change the cluster's type, or change the number or type of nodes. The default behavior is to use the elastic resize method. With an elastic resize, your cluster is available for read and write operations more quickly than with the classic resize method.

Elastic resize operations have the following restrictions:

  • You can only resize clusters of the following types:

    • dc2.large

    • dc2.8xlarge

    • ra3.large

    • ra3.xlplus

    • ra3.4xlarge

    • ra3.16xlarge

  • The type of nodes that you add must match the node type for the cluster.

" + "documentation":"

Changes the size of the cluster. You can change the cluster's type, or change the number or type of nodes. The default behavior is to use the elastic resize method. With an elastic resize, your cluster is available for read and write operations more quickly than with the classic resize method.

Elastic resize operations have the following restrictions:

  • You can only resize clusters of the following types:

    • dc2.large

    • dc2.8xlarge

    • rg.xlarge

    • rg.4xlarge

    • ra3.large

    • ra3.xlplus

    • ra3.4xlarge

    • ra3.16xlarge

  • The type of nodes that you add must match the node type for the cluster.

" }, "RestoreFromClusterSnapshot":{ "name":"RestoreFromClusterSnapshot", @@ -4267,7 +4267,7 @@ }, "NodeType":{ "shape":"String", - "documentation":"

The node type to be provisioned for the cluster. For information about node types, go to Working with Clusters in the Amazon Redshift Cluster Management Guide.

Valid Values: dc2.large | dc2.8xlarge | ra3.large | ra3.xlplus | ra3.4xlarge | ra3.16xlarge

" + "documentation":"

The node type to be provisioned for the cluster. For information about node types, go to Working with Clusters in the Amazon Redshift Cluster Management Guide.

Valid Values: dc2.large | dc2.8xlarge| rg.xlarge | rg.4xlarge | ra3.large | ra3.xlplus | ra3.4xlarge | ra3.16xlarge

" }, "MasterUsername":{ "shape":"String", @@ -4303,7 +4303,7 @@ }, "AutomatedSnapshotRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.

Default: 1

Constraints: Must be a value from 0 to 35.

" + "documentation":"

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

You can't disable automated snapshots for RG or RA3 node types. Set the automated retention period from 1-35 days.

Default: 1

Constraints: Must be a value from 0 to 35.

" }, "ManualSnapshotRetentionPeriod":{ "shape":"IntegerOptional", @@ -4311,7 +4311,7 @@ }, "Port":{ "shape":"IntegerOptional", - "documentation":"

The port number on which the cluster accepts incoming connections.

The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections.

Default: 5439

Valid Values:

  • For clusters with ra3 nodes - Select a port within the ranges 5431-5455 or 8191-8215. (If you have an existing cluster with ra3 nodes, it isn't required that you change the port to these ranges.)

  • For clusters with dc2 nodes - Select a port within the range 1150-65535.

" + "documentation":"

The port number on which the cluster accepts incoming connections.

The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections.

Default: 5439

Valid Values:

  • For clusters with RG or RA3 nodes - Select a port within the ranges 5431-5455 or 8191-8215. (If you have an existing cluster with RG or RA3 nodes, it isn't required that you change the port to these ranges.)

  • For clusters with dc2 nodes - Select a port within the range 1150-65535.

" }, "ClusterVersion":{ "shape":"String", @@ -8644,7 +8644,7 @@ }, "NodeType":{ "shape":"String", - "documentation":"

The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.

For more information about resizing clusters, go to Resizing Clusters in Amazon Redshift in the Amazon Redshift Cluster Management Guide.

Valid Values: dc2.large | dc2.8xlarge | ra3.large | ra3.xlplus | ra3.4xlarge | ra3.16xlarge

" + "documentation":"

The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.

For more information about resizing clusters, go to Resizing Clusters in Amazon Redshift in the Amazon Redshift Cluster Management Guide.

Valid Values: dc2.large | dc2.8xlarge| rg.xlarge | rg.4xlarge | ra3.large | ra3.xlplus | ra3.4xlarge | ra3.16xlarge

" }, "NumberOfNodes":{ "shape":"IntegerOptional", @@ -8668,7 +8668,7 @@ }, "AutomatedSnapshotRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted.

You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.

Default: Uses existing setting.

Constraints: Must be a value from 0 to 35.

" + "documentation":"

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted.

You can't disable automated snapshots for RG or RA3 node types. Set the automated retention period from 1-35 days.

Default: Uses existing setting.

Constraints: Must be a value from 0 to 35.

" }, "ManualSnapshotRetentionPeriod":{ "shape":"IntegerOptional", @@ -8732,7 +8732,7 @@ }, "Port":{ "shape":"IntegerOptional", - "documentation":"

The option to change the port of an Amazon Redshift cluster.

Valid Values:

  • For clusters with ra3 nodes - Select a port within the ranges 5431-5455 or 8191-8215. (If you have an existing cluster with ra3 nodes, it isn't required that you change the port to these ranges.)

  • For clusters with dc2 nodes - Select a port within the range 1150-65535.

" + "documentation":"

The option to change the port of an Amazon Redshift cluster.

Valid Values:

  • For clusters with RG or RA3 nodes - Select a port within the ranges 5431-5455 or 8191-8215. (If you have an existing cluster with RG or RA3 nodes, it isn't required that you change the port to these ranges.)

  • For clusters with dc2 nodes - Select a port within the range 1150-65535.

" }, "ManageMasterPassword":{ "shape":"BooleanOptional", @@ -10505,7 +10505,7 @@ }, "Port":{ "shape":"IntegerOptional", - "documentation":"

The port number on which the cluster accepts connections.

Default: The same port as the original cluster.

Valid values: For clusters with DC2 nodes, must be within the range 1150-65535. For clusters with ra3 nodes, must be within the ranges 5431-5455 or 8191-8215.

" + "documentation":"

The port number on which the cluster accepts connections.

Default: The same port as the original cluster.

Valid values: For clusters with DC2 nodes, must be within the range 1150-65535. For clusters with RG or RA3 nodes, must be within the ranges 5431-5455 or 8191-8215.

" }, "AvailabilityZone":{ "shape":"String", @@ -10557,7 +10557,7 @@ }, "AutomatedSnapshotRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days.

Default: The value selected for the cluster from which the snapshot was taken.

Constraints: Must be a value from 0 to 35.

" + "documentation":"

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

You can't disable automated snapshots for RG or RA3 node types. Set the automated retention period from 1-35 days.

Default: The value selected for the cluster from which the snapshot was taken.

Constraints: Must be a value from 0 to 35.

" }, "ManualSnapshotRetentionPeriod":{ "shape":"IntegerOptional", diff --git a/awscli/botocore/data/rtbfabric/2023-05-15/paginators-1.json b/awscli/botocore/data/rtbfabric/2023-05-15/paginators-1.json index 3c45764ae12d..7b17fb6ab3d2 100644 --- a/awscli/botocore/data/rtbfabric/2023-05-15/paginators-1.json +++ b/awscli/botocore/data/rtbfabric/2023-05-15/paginators-1.json @@ -17,6 +17,18 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "gatewayIds" + }, + "ListCertificateAssociations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "certificateAssociations" + }, + "ListLinkRoutingRules": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "rules" } } } diff --git a/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json b/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json index f22b8a8bbaa9..909d8558073a 100644 --- a/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json +++ b/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json @@ -35,6 +35,27 @@ "documentation":"

Accepts a link request between gateways.

When a requester gateway requests to link with a responder gateway, the responder can use this operation to accept the link request and establish the connection.

", "idempotent":true }, + "AssociateCertificate":{ + "name":"AssociateCertificate", + "http":{ + "method":"POST", + "requestUri":"/responder-gateway/{gatewayId}/certificate", + "responseCode":200 + }, + "input":{"shape":"AssociateCertificateRequest"}, + "output":{"shape":"AssociateCertificateResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Associates an ACM certificate with a responder gateway.

", + "idempotent":true + }, "CreateInboundExternalLink":{ "name":"CreateInboundExternalLink", "http":{ @@ -77,6 +98,27 @@ "documentation":"

Creates a new link between gateways.

Establishes a connection that allows gateways to communicate and exchange bid requests and responses.

", "idempotent":true }, + "CreateLinkRoutingRule":{ + "name":"CreateLinkRoutingRule", + "http":{ + "method":"POST", + "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule", + "responseCode":200 + }, + "input":{"shape":"CreateLinkRoutingRuleRequest"}, + "output":{"shape":"CreateLinkRoutingRuleResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a routing rule for a link.

Routing rules use priority-based evaluation where lower priority numbers are evaluated first. Each rule specifies conditions that must all match for the rule to apply.

", + "idempotent":true + }, "CreateOutboundExternalLink":{ "name":"CreateOutboundExternalLink", "http":{ @@ -91,6 +133,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"} ], @@ -177,6 +220,26 @@ "documentation":"

Deletes a link between gateways.

Permanently removes the connection between gateways. This action cannot be undone.

", "idempotent":true }, + "DeleteLinkRoutingRule":{ + "name":"DeleteLinkRoutingRule", + "http":{ + "method":"DELETE", + "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule/{ruleId}", + "responseCode":200 + }, + "input":{"shape":"DeleteLinkRoutingRuleRequest"}, + "output":{"shape":"DeleteLinkRoutingRuleResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a routing rule from a link.

", + "idempotent":true + }, "DeleteOutboundExternalLink":{ "name":"DeleteOutboundExternalLink", "http":{ @@ -210,6 +273,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"} ], @@ -229,12 +293,53 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"} ], "documentation":"

Deletes a responder gateway.

", "idempotent":true }, + "DisassociateCertificate":{ + "name":"DisassociateCertificate", + "http":{ + "method":"DELETE", + "requestUri":"/responder-gateway/{gatewayId}/certificate", + "responseCode":200 + }, + "input":{"shape":"DisassociateCertificateRequest"}, + "output":{"shape":"DisassociateCertificateResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Removes a certificate association from a responder gateway.

", + "idempotent":true + }, + "GetCertificateAssociation":{ + "name":"GetCertificateAssociation", + "http":{ + "method":"GET", + "requestUri":"/responder-gateway/{gatewayId}/certificate", + "responseCode":200 + }, + "input":{"shape":"GetCertificateAssociationRequest"}, + "output":{"shape":"GetCertificateAssociationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves the details of a certificate association with a responder gateway.

", + "readonly":true + }, "GetInboundExternalLink":{ "name":"GetInboundExternalLink", "http":{ @@ -274,6 +379,25 @@ "documentation":"

Retrieves information about a link between gateways.

Returns detailed information about the link configuration, status, and associated gateways.

", "readonly":true }, + "GetLinkRoutingRule":{ + "name":"GetLinkRoutingRule", + "http":{ + "method":"GET", + "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule/{ruleId}", + "responseCode":200 + }, + "input":{"shape":"GetLinkRoutingRuleRequest"}, + "output":{"shape":"GetLinkRoutingRuleResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves the details of a routing rule for a link.

", + "readonly":true + }, "GetOutboundExternalLink":{ "name":"GetOutboundExternalLink", "http":{ @@ -331,6 +455,44 @@ "documentation":"

Retrieves information about a responder gateway.

", "readonly":true }, + "ListCertificateAssociations":{ + "name":"ListCertificateAssociations", + "http":{ + "method":"GET", + "requestUri":"/responder-gateway/{gatewayId}/certificates", + "responseCode":200 + }, + "input":{"shape":"ListCertificateAssociationsRequest"}, + "output":{"shape":"ListCertificateAssociationsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists the certificate associations for a responder gateway.

", + "readonly":true + }, + "ListLinkRoutingRules":{ + "name":"ListLinkRoutingRules", + "http":{ + "method":"GET", + "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rules", + "responseCode":200 + }, + "input":{"shape":"ListLinkRoutingRulesRequest"}, + "output":{"shape":"ListLinkRoutingRulesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists the routing rules for a link.

", + "readonly":true + }, "ListLinks":{ "name":"ListLinks", "http":{ @@ -500,6 +662,26 @@ "documentation":"

Updates a link module flow.

", "idempotent":true }, + "UpdateLinkRoutingRule":{ + "name":"UpdateLinkRoutingRule", + "http":{ + "method":"PUT", + "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule/{ruleId}", + "responseCode":200 + }, + "input":{"shape":"UpdateLinkRoutingRuleRequest"}, + "output":{"shape":"UpdateLinkRoutingRuleResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a routing rule for a link.

", + "idempotent":true + }, "UpdateRequesterGateway":{ "name":"UpdateRequesterGateway", "http":{ @@ -647,6 +829,12 @@ }, "exception":true }, + "AcmCertificateArn":{ + "type":"string", + "max":256, + "min":75, + "pattern":"arn:(aws|aws-cn|aws-us-gov):acm:[a-z0-9-]+:[0-9]{12}:certificate/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, "Action":{ "type":"structure", "members":{ @@ -662,6 +850,53 @@ "documentation":"

Describes a bid action.

", "union":true }, + "AssociateCertificateRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "acmCertificateArn", + "clientToken" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate to associate.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

", + "idempotencyToken":true + } + } + }, + "AssociateCertificateResponse":{ + "type":"structure", + "required":[ + "gatewayId", + "acmCertificateArn", + "status" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

" + }, + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate.

" + }, + "status":{ + "shape":"CertificateAssociationStatus", + "documentation":"

The status of the certificate association.

" + } + } + }, "AutoScalingGroupName":{ "type":"string", "max":255, @@ -707,6 +942,47 @@ "type":"boolean", "box":true }, + "CertificateAssociationStatus":{ + "type":"string", + "documentation":"

The status of a certificate association with a gateway.

", + "enum":[ + "PENDING_ASSOCIATION", + "ASSOCIATED", + "PENDING_DISASSOCIATION", + "DISASSOCIATED", + "FAILED" + ] + }, + "CertificateAssociationSummary":{ + "type":"structure", + "required":[ + "acmCertificateArn", + "status" + ], + "members":{ + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate.

" + }, + "status":{ + "shape":"CertificateAssociationStatus", + "documentation":"

The status of the certificate association.

" + }, + "associatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the certificate was associated.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the certificate association was last updated.

" + } + }, + "documentation":"

Describes a summary of a certificate association.

" + }, + "CertificateAssociationSummaryList":{ + "type":"list", + "member":{"shape":"CertificateAssociationSummary"} + }, "CertificateAuthorityCertificates":{ "type":"list", "member":{"shape":"Base64EncodedCertificateChain"}, @@ -902,6 +1178,69 @@ "type":"string", "pattern":"[a-zA-Z0-9_-]{5,50}" }, + "CreateLinkRoutingRuleRequest":{ + "type":"structure", + "required":[ + "clientToken", + "gatewayId", + "linkId", + "priority", + "conditions" + ], + "members":{ + "clientToken":{ + "shape":"String", + "documentation":"

Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

", + "idempotencyToken":true + }, + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "linkId":{ + "shape":"LinkId", + "documentation":"

The unique identifier of the link.

", + "location":"uri", + "locationName":"linkId" + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

The priority of the routing rule. Lower numbers are evaluated first. Valid values are 1 to 1000. Priority must be unique among non-deleted rules within a link.

" + }, + "conditions":{ + "shape":"RuleCondition", + "documentation":"

The conditions for the routing rule. All specified fields must match for the rule to apply. At least one condition field must be set.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

A map of the key-value pairs of the tag or tags to assign to the resource.

" + } + } + }, + "CreateLinkRoutingRuleResponse":{ + "type":"structure", + "required":[ + "ruleId", + "status", + "createdAt" + ], + "members":{ + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

" + }, + "status":{ + "shape":"RuleStatus", + "documentation":"

The status of the routing rule.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the routing rule was created.

" + } + } + }, "CreateOutboundExternalLinkRequest":{ "type":"structure", "required":[ @@ -1228,6 +1567,51 @@ } } }, + "DeleteLinkRoutingRuleRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "linkId", + "ruleId" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "linkId":{ + "shape":"LinkId", + "documentation":"

The unique identifier of the link.

", + "location":"uri", + "locationName":"linkId" + }, + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

", + "location":"uri", + "locationName":"ruleId" + } + } + }, + "DeleteLinkRoutingRuleResponse":{ + "type":"structure", + "required":[ + "ruleId", + "status" + ], + "members":{ + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

" + }, + "status":{ + "shape":"RuleStatus", + "documentation":"

The status of the routing rule.

" + } + } + }, "DeleteOutboundExternalLinkRequest":{ "type":"structure", "required":[ @@ -1324,6 +1708,49 @@ } } }, + "DisassociateCertificateRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "acmCertificateArn" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate to disassociate.

", + "location":"querystring", + "locationName":"acmCertificateArn" + } + } + }, + "DisassociateCertificateResponse":{ + "type":"structure", + "required":[ + "gatewayId", + "acmCertificateArn", + "status" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

" + }, + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate.

" + }, + "status":{ + "shape":"CertificateAssociationStatus", + "documentation":"

The status of the certificate association.

" + } + } + }, "DomainName":{ "type":"string", "max":255, @@ -1453,6 +1880,57 @@ "INTERNAL" ] }, + "GetCertificateAssociationRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "acmCertificateArn" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate.

", + "location":"querystring", + "locationName":"acmCertificateArn" + } + } + }, + "GetCertificateAssociationResponse":{ + "type":"structure", + "required":[ + "gatewayId", + "acmCertificateArn", + "status" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

" + }, + "acmCertificateArn":{ + "shape":"AcmCertificateArn", + "documentation":"

The Amazon Resource Name (ARN) of the ACM certificate.

" + }, + "status":{ + "shape":"CertificateAssociationStatus", + "documentation":"

The status of the certificate association.

" + }, + "associatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the certificate was associated.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the certificate association was last updated.

" + } + } + }, "GetInboundExternalLinkRequest":{ "type":"structure", "required":[ @@ -1627,6 +2105,85 @@ } } }, + "GetLinkRoutingRuleRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "linkId", + "ruleId" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "linkId":{ + "shape":"LinkId", + "documentation":"

The unique identifier of the link.

", + "location":"uri", + "locationName":"linkId" + }, + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

", + "location":"uri", + "locationName":"ruleId" + } + } + }, + "GetLinkRoutingRuleResponse":{ + "type":"structure", + "required":[ + "gatewayId", + "linkId", + "ruleId", + "priority", + "conditions", + "status", + "createdAt", + "updatedAt" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

" + }, + "linkId":{ + "shape":"LinkId", + "documentation":"

The unique identifier of the link.

" + }, + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

" + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

The priority of the routing rule.

" + }, + "conditions":{ + "shape":"RuleCondition", + "documentation":"

The conditions for the routing rule.

" + }, + "status":{ + "shape":"RuleStatus", + "documentation":"

The status of the routing rule.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the routing rule was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the routing rule was last updated.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

A map of the key-value pairs for the tag or tags assigned to the specified resource.

" + } + } + }, "GetOutboundExternalLinkRequest":{ "type":"structure", "required":[ @@ -2130,6 +2687,48 @@ }, "documentation":"

Describes the settings for a link log.

" }, + "LinkRoutingRuleList":{ + "type":"list", + "member":{"shape":"LinkRoutingRuleSummary"} + }, + "LinkRoutingRuleSummary":{ + "type":"structure", + "required":[ + "ruleId", + "priority", + "conditions", + "status", + "createdAt", + "updatedAt" + ], + "members":{ + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

" + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

The priority of the routing rule.

" + }, + "conditions":{ + "shape":"RuleCondition", + "documentation":"

The conditions for the routing rule.

" + }, + "status":{ + "shape":"RuleStatus", + "documentation":"

The status of the routing rule.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the routing rule was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the routing rule was last updated.

" + } + }, + "documentation":"

Summary of a routing rule for list responses

" + }, "LinkStatus":{ "type":"string", "enum":[ @@ -2154,6 +2753,102 @@ "max":5000, "min":100 }, + "ListCertificateAssociationsRequest":{ + "type":"structure", + "required":["gatewayId"], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListCertificateAssociationsRequestMaxResultsInteger", + "documentation":"

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListCertificateAssociationsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "ListCertificateAssociationsResponse":{ + "type":"structure", + "required":["certificateAssociations"], + "members":{ + "certificateAssociations":{ + "shape":"CertificateAssociationSummaryList", + "documentation":"

The list of certificate associations for the gateway.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + } + }, + "ListLinkRoutingRulesRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "linkId" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "linkId":{ + "shape":"LinkId", + "documentation":"

The unique identifier of the link.

", + "location":"uri", + "locationName":"linkId" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListLinkRoutingRulesRequestMaxResultsInteger", + "documentation":"

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListLinkRoutingRulesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "ListLinkRoutingRulesResponse":{ + "type":"structure", + "members":{ + "rules":{ + "shape":"LinkRoutingRuleList", + "documentation":"

The list of routing rules for the link.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + } + }, "ListLinksRequest":{ "type":"structure", "required":["gatewayId"], @@ -2521,6 +3216,36 @@ "max":2, "min":1 }, + "QueryStringKeyValuePair":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"QueryStringKeyValuePairKeyString", + "documentation":"

RFC 3986 unreserved characters

" + }, + "value":{ + "shape":"QueryStringKeyValuePairValueString", + "documentation":"

RFC 3986 unreserved characters

" + } + }, + "documentation":"

Key-value pair for query string matching

" + }, + "QueryStringKeyValuePairKeyString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[A-Za-z0-9._~-]+" + }, + "QueryStringKeyValuePairValueString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[A-Za-z0-9._~-]+" + }, "RateLimiterModuleParameters":{ "type":"structure", "members":{ @@ -2723,6 +3448,92 @@ "min":1, "pattern":"arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+(/link/[a-zA-Z0-9-]+(/routing-rule/[a-zA-Z0-9-]+)?)?" }, + "RuleCondition":{ + "type":"structure", + "members":{ + "hostHeader":{ + "shape":"RuleConditionHostHeaderString", + "documentation":"

Exact host match — RFC 3986 unreserved characters

" + }, + "hostHeaderWildcard":{ + "shape":"RuleConditionHostHeaderWildcardString", + "documentation":"

Wildcard host pattern (e.g., *.example.com) — RFC 3986 unreserved plus *

" + }, + "pathPrefix":{ + "shape":"RuleConditionPathPrefixString", + "documentation":"

Path prefix matching — strict starts-with, no wildcard (preferred for new rules). Must start with /; RFC 3986 unreserved plus /

" + }, + "pathExact":{ + "shape":"RuleConditionPathExactString", + "documentation":"

Exact path match — must start with /; RFC 3986 unreserved plus /

" + }, + "queryStringEquals":{ + "shape":"QueryStringKeyValuePair", + "documentation":"

Query string key=value pair match (single pair)

" + }, + "queryStringExists":{ + "shape":"RuleConditionQueryStringExistsString", + "documentation":"

Query string key presence check (any value accepted) — RFC 3986 unreserved characters

" + } + }, + "documentation":"

Conditions bag for a routing rule. All non-null fields must match (AND logic). At least one field must be set (enforced by CP).

" + }, + "RuleConditionHostHeaderString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z0-9._~-]+" + }, + "RuleConditionHostHeaderWildcardString":{ + "type":"string", + "max":255, + "min":3, + "pattern":"[A-Za-z0-9._~*-]+" + }, + "RuleConditionPathExactString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"/[A-Za-z0-9._~/-]*" + }, + "RuleConditionPathPrefixString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"/[A-Za-z0-9._~/-]*" + }, + "RuleConditionQueryStringExistsString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[A-Za-z0-9._~-]+" + }, + "RuleId":{ + "type":"string", + "documentation":"

Identifier for a routing rule

", + "max":30, + "min":6, + "pattern":"rule-[a-z0-9-]{1,25}" + }, + "RulePriority":{ + "type":"integer", + "documentation":"

WAF-style evaluation priority. Lower number = evaluated first (priority 1 before 10). Gaps are allowed (1, 10, 20 is valid). Must be between 1 and 1000 inclusive. Uniqueness per link among non-deleted rules is enforced at the API layer (HTTP 409 on conflict).

", + "box":true, + "max":1000, + "min":1 + }, + "RuleStatus":{ + "type":"string", + "documentation":"

Status of a routing rule

", + "enum":[ + "CREATION_IN_PROGRESS", + "ACTIVE", + "UPDATE_IN_PROGRESS", + "DELETION_IN_PROGRESS", + "DELETED", + "FAILED" + ] + }, "SecurityGroupId":{ "type":"string", "max":43, @@ -2758,7 +3569,7 @@ "type":"string", "max":128, "min":1, - "pattern":"(resourceArn|internalId|(?!aws:)[a-zA-Z0-9+\\-=._:/@]+)" + "pattern":"(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)" }, "TagKeyList":{ "type":"list", @@ -2962,6 +3773,66 @@ } } }, + "UpdateLinkRoutingRuleRequest":{ + "type":"structure", + "required":[ + "gatewayId", + "linkId", + "ruleId", + "priority", + "conditions" + ], + "members":{ + "gatewayId":{ + "shape":"GatewayId", + "documentation":"

The unique identifier of the gateway.

", + "location":"uri", + "locationName":"gatewayId" + }, + "linkId":{ + "shape":"LinkId", + "documentation":"

The unique identifier of the link.

", + "location":"uri", + "locationName":"linkId" + }, + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

", + "location":"uri", + "locationName":"ruleId" + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

The updated priority of the routing rule. Lower numbers are evaluated first. Valid values are 1 to 1000. Priority must be unique among non-deleted rules within a link.

" + }, + "conditions":{ + "shape":"RuleCondition", + "documentation":"

The updated conditions for the routing rule. All specified fields must match for the rule to apply. At least one condition field must be set.

" + } + } + }, + "UpdateLinkRoutingRuleResponse":{ + "type":"structure", + "required":[ + "ruleId", + "status", + "updatedAt" + ], + "members":{ + "ruleId":{ + "shape":"RuleId", + "documentation":"

The unique identifier of the routing rule.

" + }, + "status":{ + "shape":"RuleStatus", + "documentation":"

The status of the routing rule.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the routing rule was last updated.

" + } + } + }, "UpdateRequesterGatewayRequest":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/rtbfabric/2023-05-15/waiters-2.json b/awscli/botocore/data/rtbfabric/2023-05-15/waiters-2.json index 8af37310c8a9..fcd71ed7efad 100644 --- a/awscli/botocore/data/rtbfabric/2023-05-15/waiters-2.json +++ b/awscli/botocore/data/rtbfabric/2023-05-15/waiters-2.json @@ -1,6 +1,61 @@ { "version" : 2, "waiters" : { + "CertificateAssociated" : { + "delay" : 15, + "maxAttempts" : 8, + "operation" : "GetCertificateAssociation", + "acceptors" : [ { + "matcher" : "path", + "argument" : "status", + "state" : "success", + "expected" : "ASSOCIATED" + }, { + "matcher" : "error", + "state" : "failure", + "expected" : "ResourceNotFoundException" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "FAILED" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "DISASSOCIATED" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "PENDING_DISASSOCIATION" + } ] + }, + "CertificateDisassociated" : { + "delay" : 15, + "maxAttempts" : 8, + "operation" : "GetCertificateAssociation", + "acceptors" : [ { + "matcher" : "path", + "argument" : "status", + "state" : "success", + "expected" : "DISASSOCIATED" + }, { + "matcher" : "error", + "state" : "success", + "expected" : "ResourceNotFoundException" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "FAILED" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "PENDING_ASSOCIATION" + } ] + }, "InboundExternalLinkActive" : { "delay" : 30, "maxAttempts" : 5, @@ -126,6 +181,47 @@ "expected" : "REJECTED" } ] }, + "LinkRoutingRuleActive" : { + "delay" : 5, + "maxAttempts" : 24, + "operation" : "GetLinkRoutingRule", + "acceptors" : [ { + "matcher" : "path", + "argument" : "status", + "state" : "success", + "expected" : "ACTIVE" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "FAILED" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "DELETED" + } ] + }, + "LinkRoutingRuleDeleted" : { + "delay" : 5, + "maxAttempts" : 24, + "operation" : "GetLinkRoutingRule", + "acceptors" : [ { + "matcher" : "path", + "argument" : "status", + "state" : "success", + "expected" : "DELETED" + }, { + "matcher" : "error", + "state" : "success", + "expected" : "ResourceNotFoundException" + }, { + "matcher" : "path", + "argument" : "status", + "state" : "failure", + "expected" : "FAILED" + } ] + }, "OutboundExternalLinkActive" : { "delay" : 30, "maxAttempts" : 5, diff --git a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json index 10bd2c77be77..2ae0306215e0 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json @@ -9983,10 +9983,23 @@ "Description":{ "shape":"String", "documentation":"

A human-readable description of the event.

" + }, + "EventLevel":{ + "shape":"ClusterEventLevel", + "documentation":"

The severity level of the event. Valid values are Info, Warn, and Error.

" } }, "documentation":"

Detailed information about a specific event in a HyperPod cluster.

" }, + "ClusterEventLevel":{ + "type":"string", + "documentation":"

The severity level for a HyperPod cluster event.

", + "enum":[ + "Info", + "Warn", + "Error" + ] + }, "ClusterEventMaxResults":{ "type":"integer", "box":true, @@ -10048,6 +10061,10 @@ "Description":{ "shape":"String", "documentation":"

A brief, human-readable description of the event.

" + }, + "EventLevel":{ + "shape":"ClusterEventLevel", + "documentation":"

The severity level of the event. Valid values are Info, Warn, and Error.

" } }, "documentation":"

A summary of an event in a HyperPod cluster.

" @@ -14364,6 +14381,10 @@ "Tags":{ "shape":"TagList", "documentation":"

A list of key value pairs associated with the model group. For more information, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference Guide.

" + }, + "ManagedConfiguration":{ + "shape":"ManagedConfiguration", + "documentation":"

The managed configuration of the model package group.

" } } }, @@ -14474,6 +14495,10 @@ "ModelLifeCycle":{ "shape":"ModelLifeCycle", "documentation":"

A structure describing the current state of the model in its life cycle.

" + }, + "ManagedStorageType":{ + "shape":"ManagedStorageType", + "documentation":"

The storage type of the model package.

" } } }, @@ -20843,6 +20868,10 @@ "ModelPackageGroupStatus":{ "shape":"ModelPackageGroupStatus", "documentation":"

The status of the model group.

" + }, + "ManagedConfiguration":{ + "shape":"ManagedConfiguration", + "documentation":"

The managed configuration of the model package group.

" } } }, @@ -20981,6 +21010,10 @@ "ModelLifeCycle":{ "shape":"ModelLifeCycle", "documentation":"

A structure describing the current state of the model in its life cycle.

" + }, + "ManagedStorageType":{ + "shape":"ManagedStorageType", + "documentation":"

The storage type of the model package.

" } } }, @@ -22314,7 +22347,7 @@ }, "TargetResources":{ "shape":"SageMakerResourceNames", - "documentation":"

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints) that can use this training plan.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

" + "documentation":"

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints, Studio apps) that can use this training plan.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

  • A training plan for Studio apps can be used to launch JupyterLab and Code Editor apps on reserved training plan capacity.

" }, "ReservedCapacitySummaries":{ "shape":"ReservedCapacitySummaries", @@ -24536,6 +24569,13 @@ "DISABLED" ] }, + "ExecutionRoleSessionNameMode":{ + "type":"string", + "enum":[ + "STATIC", + "USER_IDENTITY" + ] + }, "ExecutionStatus":{ "type":"string", "enum":[ @@ -28489,6 +28529,10 @@ "shape":"AdditionalEnis", "documentation":"

Information about additional Elastic Network Interfaces (ENIs) associated with the instance.

" }, + "InstanceRequirementsEniConfigurations":{ + "shape":"InstanceRequirementsEniConfigurations", + "documentation":"

The ENI configurations for the instance types in the instance requirements, grouped by network interface category (for example, ENI-only or EFA with ENIs). At most one configuration per category.

" + }, "CapacityReservation":{ "shape":"CapacityReservation", "documentation":"

Information about the Capacity Reservation used by the instance.

" @@ -28591,6 +28635,24 @@ "member":{"shape":"InstancePoolSummary"}, "min":1 }, + "InstanceRequirementsEniConfiguration":{ + "type":"structure", + "members":{ + "CustomerEni":{ + "shape":"String", + "documentation":"

The ID of the customer-managed Elastic Network Interface (ENI) associated with the instance type category.

" + }, + "AdditionalEnis":{ + "shape":"AdditionalEnis", + "documentation":"

Information about additional Elastic Network Interfaces (ENIs) associated with the instance type category.

" + } + }, + "documentation":"

The customer ENI and additional ENIs associated with a network interface category.

" + }, + "InstanceRequirementsEniConfigurations":{ + "type":"list", + "member":{"shape":"InstanceRequirementsEniConfiguration"} + }, "InstanceType":{ "type":"string", "enum":[ @@ -34177,6 +34239,16 @@ "min":0, "pattern":"\\d+\\.\\d+" }, + "ManagedConfiguration":{ + "type":"structure", + "members":{ + "ManagedStorageType":{ + "shape":"ManagedStorageType", + "documentation":"

The storage type of the model package.

" + } + }, + "documentation":"

The managed configuration of a model package group.

" + }, "ManagedInstanceScalingCooldownInMinutes":{ "type":"integer", "box":true, @@ -34213,6 +34285,10 @@ "DISABLED" ] }, + "ManagedStorageType":{ + "type":"string", + "enum":["Restricted"] + }, "MapString2048":{ "type":"map", "key":{"shape":"String2048"}, @@ -36005,6 +36081,10 @@ "ModelPackageGroupStatus":{ "shape":"ModelPackageGroupStatus", "documentation":"

The status of the model group.

" + }, + "ManagedConfiguration":{ + "shape":"ManagedConfiguration", + "documentation":"

The managed configuration of the model package group.

" } }, "documentation":"

Summary information about a model group.

" @@ -41268,7 +41348,7 @@ ], "members":{ "InstanceType":{ - "shape":"InstanceType", + "shape":"ProductionVariantInstanceType", "documentation":"

The instance type the model is deployed to.

" }, "InstanceCount":{ @@ -42391,6 +42471,10 @@ "LifecycleConfigArn":{ "shape":"StudioLifecycleConfigArn", "documentation":"

The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource.

" + }, + "TrainingPlanArn":{ + "shape":"StudioResourceSpecTrainingPlanArn", + "documentation":"

The ARN of the SageMaker AI Training Plan to use for this app. When you specify a training plan, the app launches on reserved GPU capacity. This field is supported for JupyterLab and CodeEditor app types.

For more information about how to reserve GPU capacity with SageMaker AI Training Plans, see Using training plans in Studio applications.

" } }, "documentation":"

Specifies the ARN's of a SageMaker AI image and SageMaker AI image version, and the instance type that the version runs on.

When both SageMakerImageVersionArn and SageMakerImageArn are passed, SageMakerImageVersionArn is used. Any updates to SageMakerImageArn will not take effect if SageMakerImageVersionArn already exists in the ResourceSpec because SageMakerImageVersionArn always takes precedence. To clear the value set for SageMakerImageVersionArn, pass None as the value.

" @@ -42802,7 +42886,8 @@ "enum":[ "training-job", "hyperpod-cluster", - "endpoint" + "endpoint", + "studio-apps" ] }, "SageMakerResourceNames":{ @@ -43150,7 +43235,7 @@ }, "TargetResources":{ "shape":"SageMakerResourceNames", - "documentation":"

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints) to search for in the offerings.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

" + "documentation":"

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints, Studio apps) to search for in the offerings.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

  • A training plan for Studio apps can be used to launch JupyterLab and Code Editor apps on reserved training plan capacity.

" }, "TrainingPlanArn":{ "shape":"String", @@ -44703,6 +44788,13 @@ "type":"list", "member":{"shape":"StudioLifecycleConfigDetails"} }, + "StudioResourceSpecTrainingPlanArn":{ + "type":"string", + "documentation":"

TrainingPlanArn variant for ResourceSpec that allows "None" to detach a training plan. Based on TrainingPlanArn (min:50, max:2048) but with min:0 and "None" in pattern.

", + "max":2048, + "min":0, + "pattern":"(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:training-plan/.*|None)" + }, "StudioWebPortal":{ "type":"string", "enum":[ @@ -44728,6 +44820,10 @@ "HiddenSageMakerImageVersionAliases":{ "shape":"HiddenSageMakerImageVersionAliasesList", "documentation":"

The version aliases you are hiding from the Studio user interface.

" + }, + "ExecutionRoleSessionNameMode":{ + "shape":"ExecutionRoleSessionNameMode", + "documentation":"

The execution role session name mode. If this value is set to USER_IDENTITY, the session name of the execution role corresponds to the user's identity. For IAM domains, the session name is the IAM session name used to generate the presigned URL. For IAM Identity Center domains, the session name is the username of the associated IAM Identity Center user. If this value is set to STATIC or is not set, the session name defaults to SageMaker.

" } }, "documentation":"

Studio settings. If these settings are applied on a user level, they take priority over the settings applied on a domain level.

" @@ -45861,6 +45957,10 @@ "shape":"ResourceConfig", "documentation":"

Resources, including ML compute instances and ML storage volumes, that are configured for model training.

" }, + "WarmPoolStatus":{ + "shape":"WarmPoolStatus", + "documentation":"

The status of the warm pool associated with the training job.

" + }, "VpcConfig":{ "shape":"VpcConfig", "documentation":"

A VpcConfig object that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon Virtual Private Cloud.

" @@ -46300,7 +46400,7 @@ }, "TargetResources":{ "shape":"SageMakerResourceNames", - "documentation":"

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints) for this training plan offering.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

" + "documentation":"

The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints, Studio apps) for this training plan offering.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

  • A training plan for Studio apps can be used to launch JupyterLab and Code Editor apps on reserved training plan capacity.

" }, "RequestedStartTimeAfter":{ "shape":"Timestamp", @@ -46444,7 +46544,7 @@ }, "TargetResources":{ "shape":"SageMakerResourceNames", - "documentation":"

The target resources (e.g., training jobs, HyperPod clusters, Endpoints) that can use this training plan.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

" + "documentation":"

The target resources (e.g., training jobs, HyperPod clusters, Endpoints, Studio apps) that can use this training plan.

Training plans are specific to their target resource.

  • A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.

  • A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.

  • A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.

  • A training plan for Studio apps can be used to launch JupyterLab and Code Editor apps on reserved training plan capacity.

" }, "ReservedCapacitySummaries":{ "shape":"ReservedCapacitySummaries", diff --git a/awscli/botocore/data/securityagent/2025-09-06/paginators-1.json b/awscli/botocore/data/securityagent/2025-09-06/paginators-1.json index dc181bf93c3d..e65ef2d0c5dc 100644 --- a/awscli/botocore/data/securityagent/2025-09-06/paginators-1.json +++ b/awscli/botocore/data/securityagent/2025-09-06/paginators-1.json @@ -71,6 +71,24 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "targetDomainSummaries" + }, + "ListCodeReviewJobTasks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "codeReviewJobTaskSummaries" + }, + "ListCodeReviewJobsForCodeReview": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "codeReviewJobSummaries" + }, + "ListCodeReviews": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "codeReviewSummaries" } } } diff --git a/awscli/botocore/data/securityagent/2025-09-06/service-2.json b/awscli/botocore/data/securityagent/2025-09-06/service-2.json index 43be43f7b2b9..e314d5b44d90 100644 --- a/awscli/botocore/data/securityagent/2025-09-06/service-2.json +++ b/awscli/botocore/data/securityagent/2025-09-06/service-2.json @@ -31,6 +31,17 @@ ], "documentation":"

Uploads an artifact to an agent space. Artifacts provide additional context for security testing, such as architecture diagrams, API specifications, or configuration files.

" }, + "BatchDeleteCodeReviews":{ + "name":"BatchDeleteCodeReviews", + "http":{ + "method":"POST", + "requestUri":"/BatchDeleteCodeReviews", + "responseCode":200 + }, + "input":{"shape":"BatchDeleteCodeReviewsInput"}, + "output":{"shape":"BatchDeleteCodeReviewsOutput"}, + "documentation":"

Deletes one or more code reviews from an agent space.

" + }, "BatchDeletePentests":{ "name":"BatchDeletePentests", "http":{ @@ -72,6 +83,39 @@ ], "documentation":"

Retrieves metadata for one or more artifacts in an agent space.

" }, + "BatchGetCodeReviewJobTasks":{ + "name":"BatchGetCodeReviewJobTasks", + "http":{ + "method":"POST", + "requestUri":"/BatchGetCodeReviewJobTasks", + "responseCode":200 + }, + "input":{"shape":"BatchGetCodeReviewJobTasksInput"}, + "output":{"shape":"BatchGetCodeReviewJobTasksOutput"}, + "documentation":"

Retrieves information about one or more tasks within a code review job.

" + }, + "BatchGetCodeReviewJobs":{ + "name":"BatchGetCodeReviewJobs", + "http":{ + "method":"POST", + "requestUri":"/BatchGetCodeReviewJobs", + "responseCode":200 + }, + "input":{"shape":"BatchGetCodeReviewJobsInput"}, + "output":{"shape":"BatchGetCodeReviewJobsOutput"}, + "documentation":"

Retrieves information about one or more code review jobs in an agent space.

" + }, + "BatchGetCodeReviews":{ + "name":"BatchGetCodeReviews", + "http":{ + "method":"POST", + "requestUri":"/BatchGetCodeReviews", + "responseCode":200 + }, + "input":{"shape":"BatchGetCodeReviewsInput"}, + "output":{"shape":"BatchGetCodeReviewsOutput"}, + "documentation":"

Retrieves information about one or more code reviews in an agent space.

" + }, "BatchGetFindings":{ "name":"BatchGetFindings", "http":{ @@ -150,6 +194,17 @@ "output":{"shape":"CreateApplicationResponse"}, "documentation":"

Creates a new application. An application is the top-level organizational unit that supports IAM Identity Center integration.

" }, + "CreateCodeReview":{ + "name":"CreateCodeReview", + "http":{ + "method":"POST", + "requestUri":"/CreateCodeReview", + "responseCode":200 + }, + "input":{"shape":"CreateCodeReviewInput"}, + "output":{"shape":"CreateCodeReviewOutput"}, + "documentation":"

Creates a new code review configuration in an agent space. A code review defines the parameters for automated security-focused code analysis.

" + }, "CreateIntegration":{ "name":"CreateIntegration", "http":{ @@ -397,6 +452,39 @@ "documentation":"

Returns a paginated list of artifact summaries for the specified agent space.

", "readonly":true }, + "ListCodeReviewJobTasks":{ + "name":"ListCodeReviewJobTasks", + "http":{ + "method":"POST", + "requestUri":"/ListCodeReviewJobTasks", + "responseCode":200 + }, + "input":{"shape":"ListCodeReviewJobTasksInput"}, + "output":{"shape":"ListCodeReviewJobTasksOutput"}, + "documentation":"

Returns a paginated list of task summaries for the specified code review job, optionally filtered by step name or category.

" + }, + "ListCodeReviewJobsForCodeReview":{ + "name":"ListCodeReviewJobsForCodeReview", + "http":{ + "method":"POST", + "requestUri":"/ListCodeReviewJobsForCodeReview", + "responseCode":200 + }, + "input":{"shape":"ListCodeReviewJobsForCodeReviewInput"}, + "output":{"shape":"ListCodeReviewJobsForCodeReviewOutput"}, + "documentation":"

Returns a paginated list of code review job summaries for the specified code review configuration.

" + }, + "ListCodeReviews":{ + "name":"ListCodeReviews", + "http":{ + "method":"POST", + "requestUri":"/ListCodeReviews", + "responseCode":200 + }, + "input":{"shape":"ListCodeReviewsInput"}, + "output":{"shape":"ListCodeReviewsOutput"}, + "documentation":"

Returns a paginated list of code review summaries for the specified agent space.

" + }, "ListDiscoveredEndpoints":{ "name":"ListDiscoveredEndpoints", "http":{ @@ -535,6 +623,17 @@ "output":{"shape":"StartCodeRemediationOutput"}, "documentation":"

Initiates code remediation for one or more security findings. This creates pull requests in integrated repositories to fix the identified vulnerabilities.

" }, + "StartCodeReviewJob":{ + "name":"StartCodeReviewJob", + "http":{ + "method":"POST", + "requestUri":"/StartCodeReviewJob", + "responseCode":200 + }, + "input":{"shape":"StartCodeReviewJobInput"}, + "output":{"shape":"StartCodeReviewJobOutput"}, + "documentation":"

Starts a new code review job for a code review configuration. The job executes the security-focused code analysis defined in the code review.

" + }, "StartPentestJob":{ "name":"StartPentestJob", "http":{ @@ -546,6 +645,17 @@ "output":{"shape":"StartPentestJobOutput"}, "documentation":"

Starts a new pentest job for a pentest configuration. The job executes the security tests defined in the pentest.

" }, + "StopCodeReviewJob":{ + "name":"StopCodeReviewJob", + "http":{ + "method":"POST", + "requestUri":"/StopCodeReviewJob", + "responseCode":200 + }, + "input":{"shape":"StopCodeReviewJobInput"}, + "output":{"shape":"StopCodeReviewJobOutput"}, + "documentation":"

Stops a running code review job. The job transitions to a stopping state and then to stopped after cleanup completes.

" + }, "StopPentestJob":{ "name":"StopPentestJob", "http":{ @@ -603,6 +713,17 @@ "documentation":"

Updates the configuration of an existing application, including the IAM role and default KMS key.

", "idempotent":true }, + "UpdateCodeReview":{ + "name":"UpdateCodeReview", + "http":{ + "method":"POST", + "requestUri":"/UpdateCodeReview", + "responseCode":200 + }, + "input":{"shape":"UpdateCodeReviewInput"}, + "output":{"shape":"UpdateCodeReviewOutput"}, + "documentation":"

Updates an existing code review configuration.

" + }, "UpdateFinding":{ "name":"UpdateFinding", "http":{ @@ -1073,6 +1194,38 @@ "AWS_INTERNAL" ] }, + "BatchDeleteCodeReviewsInput":{ + "type":"structure", + "required":[ + "codeReviewIds", + "agentSpaceId" + ], + "members":{ + "codeReviewIds":{ + "shape":"CodeReviewIdList", + "documentation":"

The list of code review identifiers to delete.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code reviews to delete.

" + } + }, + "documentation":"

Input for deleting multiple code reviews.

" + }, + "BatchDeleteCodeReviewsOutput":{ + "type":"structure", + "members":{ + "deleted":{ + "shape":"CodeReviewIdList", + "documentation":"

The list of identifiers of the code reviews that were successfully deleted.

" + }, + "failed":{ + "shape":"DeleteCodeReviewFailureList", + "documentation":"

The list of code reviews that failed to delete, including the reason for each failure.

" + } + }, + "documentation":"

Output for the BatchDeleteCodeReviews operation.

" + }, "BatchDeletePentestsInput":{ "type":"structure", "required":[ @@ -1157,6 +1310,102 @@ } } }, + "BatchGetCodeReviewJobTasksInput":{ + "type":"structure", + "required":[ + "agentSpaceId", + "codeReviewJobTaskIds" + ], + "members":{ + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the tasks.

" + }, + "codeReviewJobTaskIds":{ + "shape":"TaskIdList", + "documentation":"

The list of task identifiers to retrieve.

" + } + }, + "documentation":"

Input for retrieving multiple tasks associated with a code review job.

" + }, + "BatchGetCodeReviewJobTasksOutput":{ + "type":"structure", + "members":{ + "codeReviewJobTasks":{ + "shape":"CodeReviewJobTaskList", + "documentation":"

The list of code review job tasks that were found.

" + }, + "notFound":{ + "shape":"TaskIdList", + "documentation":"

The list of task identifiers that were not found.

" + } + }, + "documentation":"

Output for the BatchGetCodeReviewJobTasks operation.

" + }, + "BatchGetCodeReviewJobsInput":{ + "type":"structure", + "required":[ + "codeReviewJobIds", + "agentSpaceId" + ], + "members":{ + "codeReviewJobIds":{ + "shape":"CodeReviewJobIdList", + "documentation":"

The list of code review job identifiers to retrieve.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code review jobs.

" + } + }, + "documentation":"

Input for BatchGetCodeReviewJobs operation.

" + }, + "BatchGetCodeReviewJobsOutput":{ + "type":"structure", + "members":{ + "codeReviewJobs":{ + "shape":"CodeReviewJobList", + "documentation":"

The list of code review jobs that were found.

" + }, + "notFound":{ + "shape":"CodeReviewJobIdList", + "documentation":"

The list of code review job identifiers that were not found.

" + } + }, + "documentation":"

Output for the BatchGetCodeReviewJobs operation.

" + }, + "BatchGetCodeReviewsInput":{ + "type":"structure", + "required":[ + "codeReviewIds", + "agentSpaceId" + ], + "members":{ + "codeReviewIds":{ + "shape":"CodeReviewIdList", + "documentation":"

The list of code review identifiers to retrieve.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code reviews.

" + } + }, + "documentation":"

Input for retrieving multiple code reviews by their IDs.

" + }, + "BatchGetCodeReviewsOutput":{ + "type":"structure", + "members":{ + "codeReviews":{ + "shape":"CodeReviewList", + "documentation":"

The list of code reviews that were found.

" + }, + "notFound":{ + "shape":"CodeReviewIdList", + "documentation":"

The list of code review identifiers that were not found.

" + } + }, + "documentation":"

Output for the BatchGetCodeReviews operation.

" + }, "BatchGetFindingsInput":{ "type":"structure", "required":[ @@ -1347,6 +1596,34 @@ }, "documentation":"

The Amazon CloudWatch Logs configuration for pentest job logging.

" }, + "CodeLocation":{ + "type":"structure", + "required":["filePath"], + "members":{ + "filePath":{ + "shape":"String", + "documentation":"

The absolute path to the file containing the code location.

" + }, + "lineStart":{ + "shape":"Integer", + "documentation":"

The starting line number of the code location.

" + }, + "lineEnd":{ + "shape":"Integer", + "documentation":"

The ending line number of the code location.

" + }, + "label":{ + "shape":"String", + "documentation":"

The role of this location in the vulnerability, such as source or sink.

" + } + }, + "documentation":"

Represents a location in source code associated with a security finding.

" + }, + "CodeLocationList":{ + "type":"list", + "member":{"shape":"CodeLocation"}, + "documentation":"

List of code locations.

" + }, "CodeRemediationStrategy":{ "type":"string", "documentation":"

Strategy for automated code remediation.

", @@ -1405,6 +1682,291 @@ "FAILED" ] }, + "CodeReview":{ + "type":"structure", + "required":[ + "codeReviewId", + "agentSpaceId", + "title", + "assets" + ], + "members":{ + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code review.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the code review.

" + }, + "assets":{ + "shape":"Assets", + "documentation":"

The assets included in the code review.

" + }, + "serviceRole":{ + "shape":"ServiceRole", + "documentation":"

The IAM service role used for the code review.

" + }, + "logConfig":{ + "shape":"CloudWatchLog", + "documentation":"

The CloudWatch Logs configuration for the code review.

" + }, + "codeRemediationStrategy":{ + "shape":"CodeRemediationStrategy", + "documentation":"

The code remediation strategy for the code review.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was last updated, in UTC format.

" + } + }, + "documentation":"

Represents a code review configuration that defines the parameters for automated security-focused code analysis, including target assets and logging configuration.

" + }, + "CodeReviewIdList":{ + "type":"list", + "member":{"shape":"String"}, + "documentation":"

List of code review IDs.

" + }, + "CodeReviewJob":{ + "type":"structure", + "members":{ + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review associated with the job.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the code review job.

" + }, + "overview":{ + "shape":"String", + "documentation":"

An overview of the code review job results.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The current status of the code review job.

" + }, + "documents":{ + "shape":"DocumentList", + "documentation":"

The list of documents providing context for the code review job.

" + }, + "sourceCode":{ + "shape":"SourceCodeRepositoryList", + "documentation":"

The list of source code repositories analyzed during the code review job.

" + }, + "steps":{ + "shape":"StepList", + "documentation":"

The list of steps in the code review job execution.

" + }, + "executionContext":{ + "shape":"ExecutionContextList", + "documentation":"

The execution context messages for the code review job.

" + }, + "serviceRole":{ + "shape":"ServiceRole", + "documentation":"

The IAM service role used for the code review job.

" + }, + "logConfig":{ + "shape":"CloudWatchLog", + "documentation":"

The CloudWatch Logs configuration for the code review job.

" + }, + "errorInformation":{ + "shape":"ErrorInformation", + "documentation":"

Error information if the code review job encountered an error.

" + }, + "integratedRepositories":{ + "shape":"IntegratedRepositoryList", + "documentation":"

The list of integrated repositories associated with the code review job.

" + }, + "codeRemediationStrategy":{ + "shape":"CodeRemediationStrategy", + "documentation":"

The code remediation strategy for the code review job.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review job was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review job was last updated, in UTC format.

" + } + }, + "documentation":"

Represents a code review job, which is an execution instance of a code review. A code review job progresses through preflight, static analysis, and finalizing steps.

" + }, + "CodeReviewJobIdList":{ + "type":"list", + "member":{"shape":"String"}, + "documentation":"

List of code review job IDs.

" + }, + "CodeReviewJobList":{ + "type":"list", + "member":{"shape":"CodeReviewJob"}, + "documentation":"

List of code review jobs.

" + }, + "CodeReviewJobSummary":{ + "type":"structure", + "required":[ + "codeReviewJobId", + "codeReviewId" + ], + "members":{ + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review associated with the job.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the code review job.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The current status of the code review job.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review job was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review job was last updated, in UTC format.

" + } + }, + "documentation":"

Contains summary information about a code review job.

" + }, + "CodeReviewJobSummaryList":{ + "type":"list", + "member":{"shape":"CodeReviewJobSummary"}, + "documentation":"

List of code review job summaries.

" + }, + "CodeReviewJobTask":{ + "type":"structure", + "required":["taskId"], + "members":{ + "taskId":{ + "shape":"String", + "documentation":"

The unique identifier of the task.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review associated with the task.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job that contains the task.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the task.

" + }, + "description":{ + "shape":"String", + "documentation":"

A description of the task.

" + }, + "categories":{ + "shape":"CategoryList", + "documentation":"

The list of categories assigned to the task.

" + }, + "riskType":{ + "shape":"RiskType", + "documentation":"

The type of security risk the task is testing for.

" + }, + "executionStatus":{ + "shape":"TaskExecutionStatus", + "documentation":"

The current execution status of the task.

" + }, + "logsLocation":{ + "shape":"LogLocation", + "documentation":"

The location of the task execution logs.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the task was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the task was last updated, in UTC format.

" + } + }, + "documentation":"

Represents an individual security test task within a code review job. Each task targets a specific risk type and executes independently.

" + }, + "CodeReviewJobTaskList":{ + "type":"list", + "member":{"shape":"CodeReviewJobTask"}, + "documentation":"

List of code review job tasks.

" + }, + "CodeReviewJobTaskSummary":{ + "type":"structure", + "required":["taskId"], + "members":{ + "taskId":{ + "shape":"String", + "documentation":"

The unique identifier of the task.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review associated with the task.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job that contains the task.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the task.

" + }, + "riskType":{ + "shape":"RiskType", + "documentation":"

The type of security risk the task is testing for.

" + }, + "executionStatus":{ + "shape":"TaskExecutionStatus", + "documentation":"

The current execution status of the task.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the task was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the task was last updated, in UTC format.

" + } + }, + "documentation":"

Contains summary information about a code review job task.

" + }, + "CodeReviewJobTaskSummaryList":{ + "type":"list", + "member":{"shape":"CodeReviewJobTaskSummary"}, + "documentation":"

List of code review job task summaries.

" + }, + "CodeReviewList":{ + "type":"list", + "member":{"shape":"CodeReview"}, + "documentation":"

List of code reviews.

" + }, "CodeReviewSettings":{ "type":"structure", "required":[ @@ -1423,6 +1985,42 @@ }, "documentation":"

The code review settings for an agent space, controlling which types of scanning are enabled.

" }, + "CodeReviewSummary":{ + "type":"structure", + "required":[ + "codeReviewId", + "agentSpaceId", + "title" + ], + "members":{ + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code review.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the code review.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was last updated, in UTC format.

" + } + }, + "documentation":"

Contains summary information about a code review.

" + }, + "CodeReviewSummaryList":{ + "type":"list", + "member":{"shape":"CodeReviewSummary"}, + "documentation":"

List of code review summaries.

" + }, "ConfidenceLevel":{ "type":"string", "documentation":"

Finding confidence level.

", @@ -1556,21 +2154,99 @@ "shape":"DefaultKmsKeyId", "documentation":"

The identifier of the default AWS KMS key to use for encrypting data in the application.

" }, - "tags":{ - "shape":"TagMap", - "documentation":"

The tags to associate with the application.

" - } - } - }, - "CreateApplicationResponse":{ - "type":"structure", - "required":["applicationId"], - "members":{ - "applicationId":{ - "shape":"ApplicationId", - "documentation":"

The unique identifier of the created application.

" + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to associate with the application.

" + } + } + }, + "CreateApplicationResponse":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The unique identifier of the created application.

" + } + } + }, + "CreateCodeReviewInput":{ + "type":"structure", + "required":[ + "title", + "agentSpaceId", + "assets" + ], + "members":{ + "title":{ + "shape":"String", + "documentation":"

The title of the code review.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space to create the code review in.

" + }, + "assets":{ + "shape":"Assets", + "documentation":"

The assets to include in the code review, such as documents and source code.

" + }, + "serviceRole":{ + "shape":"ServiceRole", + "documentation":"

The IAM service role to use for the code review.

" + }, + "logConfig":{ + "shape":"CloudWatchLog", + "documentation":"

The CloudWatch Logs configuration for the code review.

" + }, + "codeRemediationStrategy":{ + "shape":"CodeRemediationStrategy", + "documentation":"

The code remediation strategy for the code review. Valid values are AUTOMATIC and DISABLED.

" + } + }, + "documentation":"

Input for creating a new code review.

" + }, + "CreateCodeReviewOutput":{ + "type":"structure", + "required":["codeReviewId"], + "members":{ + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the created code review.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the code review.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was last updated, in UTC format.

" + }, + "assets":{ + "shape":"Assets", + "documentation":"

The assets included in the code review.

" + }, + "serviceRole":{ + "shape":"ServiceRole", + "documentation":"

The IAM service role used for the code review.

" + }, + "logConfig":{ + "shape":"CloudWatchLog", + "documentation":"

The CloudWatch Logs configuration for the code review.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code review.

" + }, + "codeRemediationStrategy":{ + "shape":"CodeRemediationStrategy", + "documentation":"

The code remediation strategy for the code review.

" } - } + }, + "documentation":"

Output for the CreateCodeReview operation.

" }, "CreateIntegrationInput":{ "type":"structure", @@ -1882,6 +2558,25 @@ "type":"structure", "members":{} }, + "DeleteCodeReviewFailure":{ + "type":"structure", + "members":{ + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review that failed to delete.

" + }, + "reason":{ + "shape":"String", + "documentation":"

The reason the code review failed to delete.

" + } + }, + "documentation":"

Contains information about a code review that failed to delete.

" + }, + "DeleteCodeReviewFailureList":{ + "type":"list", + "member":{"shape":"DeleteCodeReviewFailure"}, + "documentation":"

List of code review deletion failures.

" + }, "DeleteIntegrationInput":{ "type":"structure", "required":["integrationId"], @@ -2138,6 +2833,14 @@ "shape":"String", "documentation":"

The unique identifier of the pentest job that produced the finding.

" }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review associated with the finding.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job that produced the finding.

" + }, "taskId":{ "shape":"String", "documentation":"

The unique identifier of the task that produced the finding.

" @@ -2186,6 +2889,10 @@ "shape":"String", "documentation":"

The identifier of the entity that last updated the finding.

" }, + "codeLocations":{ + "shape":"CodeLocationList", + "documentation":"

The file locations involved in the vulnerability, as reported by the code scanner.

" + }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The date and time the finding was created, in UTC format.

" @@ -2239,6 +2946,14 @@ "shape":"String", "documentation":"

The unique identifier of the pentest job that produced the finding.

" }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review associated with the finding.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job that produced the finding.

" + }, "name":{ "shape":"String", "documentation":"

The name of the finding.

" @@ -2564,6 +3279,10 @@ } } }, + "Integer":{ + "type":"integer", + "box":true + }, "IntegratedRepository":{ "type":"structure", "required":[ @@ -2836,6 +3555,124 @@ } } }, + "ListCodeReviewJobTasksInput":{ + "type":"structure", + "required":["agentSpaceId"], + "members":{ + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return in a single call.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job to list tasks for.

" + }, + "stepName":{ + "shape":"StepName", + "documentation":"

Filter tasks by step name.

" + }, + "categoryName":{ + "shape":"String", + "documentation":"

Filter tasks by category name.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the nextToken value returned from the previous request.

" + } + }, + "documentation":"

Input for listing tasks associated with a code review job.

" + }, + "ListCodeReviewJobTasksOutput":{ + "type":"structure", + "members":{ + "codeReviewJobTaskSummaries":{ + "shape":"CodeReviewJobTaskSummaryList", + "documentation":"

The list of code review job task summaries.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the nextToken value returned from the previous request.

" + } + }, + "documentation":"

Output for the ListCodeReviewJobTasks operation.

" + }, + "ListCodeReviewJobsForCodeReviewInput":{ + "type":"structure", + "required":[ + "codeReviewId", + "agentSpaceId" + ], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return in a single call.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review to list jobs for.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the nextToken value returned from the previous request.

" + } + }, + "documentation":"

Input for ListCodeReviewJobsForCodeReview operation.

" + }, + "ListCodeReviewJobsForCodeReviewOutput":{ + "type":"structure", + "members":{ + "codeReviewJobSummaries":{ + "shape":"CodeReviewJobSummaryList", + "documentation":"

The list of code review job summaries.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the nextToken value returned from the previous request.

" + } + }, + "documentation":"

Output for the ListCodeReviewJobsForCodeReview operation.

" + }, + "ListCodeReviewsInput":{ + "type":"structure", + "required":["agentSpaceId"], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return in a single call.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the nextToken value returned from the previous request.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space to list code reviews for.

" + } + }, + "documentation":"

Input for listing code reviews with optional filtering.

" + }, + "ListCodeReviewsOutput":{ + "type":"structure", + "members":{ + "codeReviewSummaries":{ + "shape":"CodeReviewSummaryList", + "documentation":"

The list of code review summaries.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the nextToken value returned from the previous request.

" + } + }, + "documentation":"

Output for the ListCodeReviews operation.

" + }, "ListDiscoveredEndpointsInput":{ "type":"structure", "required":[ @@ -2882,10 +3719,7 @@ }, "ListFindingsInput":{ "type":"structure", - "required":[ - "pentestJobId", - "agentSpaceId" - ], + "required":["agentSpaceId"], "members":{ "maxResults":{ "shape":"MaxResults", @@ -2895,6 +3729,10 @@ "shape":"String", "documentation":"

The unique identifier of the pentest job to list findings for.

" }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job to list findings for. Mutually exclusive with pentestJobId.

" + }, "agentSpaceId":{ "shape":"String", "documentation":"

The unique identifier of the agent space.

" @@ -3835,7 +4673,6 @@ "type":"structure", "required":[ "agentSpaceId", - "pentestJobId", "findingIds" ], "members":{ @@ -3845,7 +4682,11 @@ }, "pentestJobId":{ "shape":"String", - "documentation":"

The unique identifier of the pentest job that produced the findings.

" + "documentation":"

The unique identifier of the pentest job that produced the findings. Mutually exclusive with codeReviewJobId.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job that produced the findings. Mutually exclusive with pentestJobId.

" }, "findingIds":{ "shape":"FindingIdList", @@ -3859,6 +4700,62 @@ "members":{}, "documentation":"

Output for the StartCodeRemediation operation.

" }, + "StartCodeReviewJobInput":{ + "type":"structure", + "required":[ + "agentSpaceId", + "codeReviewId" + ], + "members":{ + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review to start a job for.

" + } + }, + "documentation":"

Input for starting the execution of a code review.

" + }, + "StartCodeReviewJobOutput":{ + "type":"structure", + "required":[ + "codeReviewId", + "codeReviewJobId" + ], + "members":{ + "title":{ + "shape":"String", + "documentation":"

The title of the code review job.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The current status of the code review job.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review job was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review job was last updated, in UTC format.

" + }, + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the started code review job.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + } + }, + "documentation":"

Output for the StartCodeReviewJob operation.

" + }, "StartPentestJobInput":{ "type":"structure", "required":[ @@ -3959,6 +4856,29 @@ "STOPPED" ] }, + "StopCodeReviewJobInput":{ + "type":"structure", + "required":[ + "agentSpaceId", + "codeReviewJobId" + ], + "members":{ + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space.

" + }, + "codeReviewJobId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review job to stop.

" + } + }, + "documentation":"

Input for stopping the execution of a code review job.

" + }, + "StopCodeReviewJobOutput":{ + "type":"structure", + "members":{}, + "documentation":"

Output for the StopCodeReviewJob operation.

" + }, "StopPentestJobInput":{ "type":"structure", "required":[ @@ -4405,6 +5325,87 @@ } } }, + "UpdateCodeReviewInput":{ + "type":"structure", + "required":[ + "codeReviewId", + "agentSpaceId" + ], + "members":{ + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review to update.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code review.

" + }, + "title":{ + "shape":"String", + "documentation":"

The updated title of the code review.

" + }, + "assets":{ + "shape":"Assets", + "documentation":"

The updated assets for the code review.

" + }, + "serviceRole":{ + "shape":"ServiceRole", + "documentation":"

The updated IAM service role for the code review.

" + }, + "logConfig":{ + "shape":"CloudWatchLog", + "documentation":"

The updated CloudWatch Logs configuration for the code review.

" + }, + "codeRemediationStrategy":{ + "shape":"CodeRemediationStrategy", + "documentation":"

The updated code remediation strategy for the code review.

" + } + }, + "documentation":"

Input for updating an existing code review.

" + }, + "UpdateCodeReviewOutput":{ + "type":"structure", + "required":["codeReviewId"], + "members":{ + "codeReviewId":{ + "shape":"String", + "documentation":"

The unique identifier of the code review.

" + }, + "title":{ + "shape":"String", + "documentation":"

The title of the code review.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was created, in UTC format.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the code review was last updated, in UTC format.

" + }, + "assets":{ + "shape":"Assets", + "documentation":"

The assets included in the code review.

" + }, + "serviceRole":{ + "shape":"ServiceRole", + "documentation":"

The IAM service role used for the code review.

" + }, + "logConfig":{ + "shape":"CloudWatchLog", + "documentation":"

The CloudWatch Logs configuration for the code review.

" + }, + "agentSpaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the agent space that contains the code review.

" + }, + "codeRemediationStrategy":{ + "shape":"CodeRemediationStrategy", + "documentation":"

The code remediation strategy for the code review.

" + } + }, + "documentation":"

Output for the UpdateCodeReview operation.

" + }, "UpdateFindingInput":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json b/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json index cf7a95cd2719..097ee07b683e 100644 --- a/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json +++ b/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json @@ -513,6 +513,10 @@ "statusCode":{ "shape":"Integer", "documentation":"

The status code for the response.

" + }, + "linkedWhatsAppBusinessAccountId":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

The ID of the WhatsApp Business Account that was linked to your Amazon Web Services account.

" } } }, @@ -826,10 +830,7 @@ }, "GetWhatsAppMessageTemplateInput":{ "type":"structure", - "required":[ - "metaTemplateId", - "id" - ], + "required":["id"], "members":{ "metaTemplateId":{ "shape":"MetaTemplateId", @@ -842,6 +843,18 @@ "documentation":"

The ID of the WhatsApp Business Account associated with this template.

", "location":"querystring", "locationName":"id" + }, + "templateName":{ + "shape":"MetaTemplateName", + "documentation":"

The name of the message template. Use together with templateLanguageCode as an alternative to metaTemplateId to identify a template.

", + "location":"querystring", + "locationName":"templateName" + }, + "templateLanguageCode":{ + "shape":"MetaTemplateLanguage", + "documentation":"

The language code of the message template (for example, en or en_US). Use together with templateName as an alternative to metaTemplateId to identify a template.

", + "location":"querystring", + "locationName":"templateLanguageCode" } } }, @@ -1038,6 +1051,10 @@ "shape":"WhatsAppBusinessAccountEventDestinations", "documentation":"

The event destinations for the linked WhatsApp Business Account.

" }, + "marketingMessagesOnboardingStatus":{ + "shape":"WhatsAppBusinessAccountMarketingMessagesOnboardingStatus", + "documentation":"

The onboarding status for the Marketing Messages API. This value is fetched from Meta and indicates whether the WhatsApp Business Account is onboarded for Meta's Marketing Messages API.

" + }, "phoneNumbers":{ "shape":"WhatsAppPhoneNumberSummaryList", "documentation":"

The phone numbers associated with the Linked WhatsApp Business Account.

" @@ -1118,6 +1135,10 @@ "eventDestinations":{ "shape":"WhatsAppBusinessAccountEventDestinations", "documentation":"

The event destinations for the linked WhatsApp Business Account.

" + }, + "marketingMessagesOnboardingStatus":{ + "shape":"WhatsAppBusinessAccountMarketingMessagesOnboardingStatus", + "documentation":"

The onboarding status for the Marketing Messages API. This value is fetched from Meta and indicates whether the WhatsApp Business Account is onboarded for Meta's Marketing Messages API.

" } }, "documentation":"

The details of a linked WhatsApp Business Account.

" @@ -1818,10 +1839,7 @@ }, "UpdateWhatsAppMessageTemplateInput":{ "type":"structure", - "required":[ - "id", - "metaTemplateId" - ], + "required":["id"], "members":{ "id":{ "shape":"LinkedWhatsAppBusinessAccountId", @@ -1831,6 +1849,14 @@ "shape":"MetaTemplateId", "documentation":"

The numeric ID of the template assigned by Meta.

" }, + "templateName":{ + "shape":"MetaTemplateName", + "documentation":"

The name of the message template. Use together with templateLanguageCode as an alternative to metaTemplateId to identify a template.

" + }, + "templateLanguageCode":{ + "shape":"MetaTemplateLanguage", + "documentation":"

The language code of the message template (for example, en or en_US). Use together with templateName as an alternative to metaTemplateId to identify a template.

" + }, "parameterFormat":{ "shape":"MetaParameterFormat", "documentation":"

The format specification for parameters in the template, this can be either 'named' or 'positional'.

" @@ -1940,6 +1966,11 @@ "min":1 }, "WhatsAppBusinessAccountLinkDate":{"type":"timestamp"}, + "WhatsAppBusinessAccountMarketingMessagesOnboardingStatus":{ + "type":"string", + "max":100, + "min":0 + }, "WhatsAppBusinessAccountName":{ "type":"string", "max":200, diff --git a/awscli/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json b/awscli/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json index b22bb73e02d7..7401e2ee4065 100644 --- a/awscli/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json +++ b/awscli/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json @@ -1,12 +1,6 @@ { "version": "1.0", "parameters": { - "Region": { - "builtIn": "AWS::Region", - "required": false, - "documentation": "The AWS region used to dispatch the request.", - "type": "string" - }, "UseDualStack": { "builtIn": "AWS::UseDualStack", "required": true, @@ -26,6 +20,12 @@ "required": false, "documentation": "Override the endpoint used to send this request", "type": "string" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" } }, "rules": [ @@ -57,161 +57,164 @@ "type": "error" }, { - "conditions": [ + "conditions": [], + "rules": [ { - "fn": "booleanEquals", - "argv": [ + "conditions": [ { - "ref": "UseDualStack" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" }, - true - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree" } ], "type": "tree" }, { - "conditions": [ - { - "fn": "isSet", - "argv": [ - { - "ref": "Region" - } - ] - } - ], + "conditions": [], "rules": [ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { "ref": "Region" } - ], - "assign": "PartitionResult" + ] } ], "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "rules": [ { "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + }, { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] }, { "fn": "booleanEquals", "argv": [ - true, + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://states.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsDualStack" + "name" ] - } + }, + "aws-us-gov" ] - } - ], - "rules": [ + }, { - "conditions": [], - "endpoint": { - "url": "https://states-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "type": "tree" + "endpoint": { + "url": "https://states-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ], - "type": "tree" - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ + "conditions": [ { - "ref": "UseFIPS" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] }, - true - ] - } - ], - "rules": [ - { - "conditions": [ { "fn": "booleanEquals", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "UseDualStack" }, true ] @@ -221,113 +224,201 @@ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "us-gov-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://states.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://states-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" }, { "conditions": [], - "endpoint": { - "url": "https://states-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ], "type": "tree" }, { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ], - "type": "tree" - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ + "conditions": [ { - "ref": "UseDualStack" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] }, - true - ] - } - ], - "rules": [ - { - "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", + "ref": "UseDualStack" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, - "supportsDualStack" + true ] } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://states-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } ], "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://states.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, { "conditions": [], - "endpoint": { - "url": "https://states.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ], "type": "tree" }, { "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" + "endpoint": { + "url": "https://states.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" - }, - { - "conditions": [], - "endpoint": { - "url": "https://states.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" } ], "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ], "type": "tree" - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] } \ No newline at end of file diff --git a/tests/functional/botocore/endpoint-rules/stepfunctions/endpoint-tests-1.json b/tests/functional/botocore/endpoint-rules/stepfunctions/endpoint-tests-1.json index c3d43ddc8f1a..3be8587adc05 100644 --- a/tests/functional/botocore/endpoint-rules/stepfunctions/endpoint-tests-1.json +++ b/tests/functional/botocore/endpoint-rules/stepfunctions/endpoint-tests-1.json @@ -1,250 +1,62 @@ { "testCases": [ { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region not set and fips disabled", "expect": { "endpoint": { - "url": "https://states.af-south-1.amazonaws.com" - } - }, - "params": { - "Region": "af-south-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-east-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-east-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-northeast-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "Region": "ap-northeast-3", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-south-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "Region": "ap-southeast-3", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.ca-central-1.amazonaws.com" - } - }, - "params": { - "Region": "ca-central-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.eu-central-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-central-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.eu-north-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-north-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.eu-south-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-south-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.eu-west-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.eu-west-2.amazonaws.com" + "url": "https://example.com" } }, "params": { - "Region": "eu-west-2", - "UseFIPS": false, - "UseDualStack": false + "Endpoint": "https://example.com", + "UseFIPS": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with fips enabled", "expect": { - "endpoint": { - "url": "https://states.eu-west-3.amazonaws.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "eu-west-3", - "UseFIPS": false, - "UseDualStack": false + "Endpoint": "https://example.com", + "UseFIPS": true } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with fips disabled and dualstack enabled", "expect": { - "endpoint": { - "url": "https://states.me-south-1.amazonaws.com" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "me-south-1", + "Endpoint": "https://example.com", "UseFIPS": false, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.sa-east-1.amazonaws.com" + "url": "https://states.us-gov-west-1.amazonaws.com" } }, "params": { - "Region": "sa-east-1", - "UseFIPS": false, + "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://states.us-east-1.amazonaws.com" + "url": "https://states-fips.us-east-1.api.aws" } }, "params": { "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": false + "UseFIPS": true, + "UseDualStack": true } }, { @@ -261,122 +73,70 @@ } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://states.us-east-2.amazonaws.com" + "url": "https://states.us-east-1.api.aws" } }, "params": { - "Region": "us-east-2", + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "Region": "us-east-2", - "UseFIPS": true, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-west-1.amazonaws.com" + "url": "https://states.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-west-1", + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://states-fips.us-west-1.amazonaws.com" + "url": "https://states-fips.cn-northwest-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-west-1", + "Region": "cn-northwest-1", "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.us-west-2.amazonaws.com" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": false, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states-fips.us-west-2.amazonaws.com" + "url": "https://states-fips.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "Region": "us-west-2", + "Region": "cn-northwest-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://states-fips.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://states.us-east-1.api.aws" + "url": "https://states.cn-northwest-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-northwest-1", "UseFIPS": false, "UseDualStack": true } }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://states.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": false, - "UseDualStack": false - } - }, { "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { @@ -391,236 +151,172 @@ } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://states-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states-fips.cn-north-1.amazonaws.com.cn" + "url": "https://states-fips.eusc-de-east-1.amazonaws.eu" } }, "params": { - "Region": "cn-north-1", + "Region": "eusc-de-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://states.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-gov-east-1.amazonaws.com" + "url": "https://states.eusc-de-east-1.amazonaws.eu" } }, "params": { - "Region": "us-gov-east-1", + "Region": "eusc-de-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states-fips.us-gov-east-1.amazonaws.com" + "url": "https://states-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", + "Region": "us-iso-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-gov-west-1.amazonaws.com" + "url": "https://states.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-west-1", + "Region": "us-iso-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-gov-west-1.amazonaws.com" + "url": "https://states-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-gov-west-1", + "Region": "us-isob-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://states-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-gov-east-1.api.aws" + "url": "https://states.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-gov-east-1", + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-iso-east-1.c2s.ic.gov" + "url": "https://states-fips.eu-isoe-west-1.cloud.adc-e.uk" } }, "params": { - "Region": "us-iso-east-1", - "UseFIPS": false, + "Region": "eu-isoe-west-1", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-iso-west-1.c2s.ic.gov" + "url": "https://states.eu-isoe-west-1.cloud.adc-e.uk" } }, "params": { - "Region": "us-iso-west-1", + "Region": "eu-isoe-west-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://states-fips.us-isof-south-1.csp.hci.ic.gov" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-isof-south-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://states.us-isob-east-1.sc2s.sgov.gov" + "url": "https://states.us-isof-south-1.csp.hci.ic.gov" } }, "params": { - "Region": "us-isob-east-1", + "Region": "us-isof-south-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://states-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://states-fips.us-gov-west-1.api.aws" } }, "params": { - "Region": "us-isob-east-1", + "Region": "us-gov-west-1", "UseFIPS": true, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://states-fips.us-gov-west-1.api.aws" } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-west-1", "UseFIPS": false, - "UseDualStack": false, - "Endpoint": "https://example.com" + "UseDualStack": true } }, { - "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://states.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "UseDualStack": false, - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with fips enabled and dualstack disabled", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": false, - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with fips disabled and dualstack enabled", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": true, - "Endpoint": "https://example.com" + "UseDualStack": false } }, { From 7e1864b51d7af05d78380d9883d0d608c61a210a Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 13 May 2026 18:11:17 +0000 Subject: [PATCH 05/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 2c07e550aac3..3ac35cc51291 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -39274,6 +39274,11 @@ "eu-isoe-west-1" : { } } }, + "rekognition" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, "resource-groups" : { "endpoints" : { "eu-isoe-west-1" : { } From 669cae69782eb65b547af10a1dbd071fa804ebfc Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 13 May 2026 18:13:15 +0000 Subject: [PATCH 06/73] Bump version to 2.34.46 --- .changes/2.34.46.json | 112 ++++++++++++++++++ .../api-change-arcregionswitch-69286.json | 5 - .../next-release/api-change-batch-38873.json | 5 - ...-change-bedrockagentcorecontrol-82849.json | 5 - .../api-change-billingconductor-89789.json | 5 - .../api-change-connect-34254.json | 5 - .../api-change-connectcampaignsv2-68179.json | 5 - .../api-change-connectcases-68990.json | 5 - .../next-release/api-change-dsql-60994.json | 5 - .../next-release/api-change-ec2-53549.json | 5 - .../next-release/api-change-es-93754.json | 5 - .../next-release/api-change-glue-56973.json | 5 - .../api-change-lightsail-11313.json | 5 - .../api-change-opensearch-53141.json | 5 - ...pi-change-partnercentralaccount-16592.json | 5 - .../next-release/api-change-pcs-15137.json | 5 - .../api-change-quicksight-76982.json | 5 - .../api-change-redshift-49770.json | 5 - .../api-change-rtbfabric-44231.json | 5 - .../api-change-sagemaker-45018.json | 5 - .../api-change-securityagent-89551.json | 5 - .../api-change-socialmessaging-84736.json | 5 - .../api-change-stepfunctions-91658.json | 5 - CHANGELOG.rst | 27 +++++ awscli/__init__.py | 2 +- configure | 14 +-- configure.ac | 2 +- doc/source/conf.py | 2 +- 28 files changed, 149 insertions(+), 120 deletions(-) create mode 100644 .changes/2.34.46.json delete mode 100644 .changes/next-release/api-change-arcregionswitch-69286.json delete mode 100644 .changes/next-release/api-change-batch-38873.json delete mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-82849.json delete mode 100644 .changes/next-release/api-change-billingconductor-89789.json delete mode 100644 .changes/next-release/api-change-connect-34254.json delete mode 100644 .changes/next-release/api-change-connectcampaignsv2-68179.json delete mode 100644 .changes/next-release/api-change-connectcases-68990.json delete mode 100644 .changes/next-release/api-change-dsql-60994.json delete mode 100644 .changes/next-release/api-change-ec2-53549.json delete mode 100644 .changes/next-release/api-change-es-93754.json delete mode 100644 .changes/next-release/api-change-glue-56973.json delete mode 100644 .changes/next-release/api-change-lightsail-11313.json delete mode 100644 .changes/next-release/api-change-opensearch-53141.json delete mode 100644 .changes/next-release/api-change-partnercentralaccount-16592.json delete mode 100644 .changes/next-release/api-change-pcs-15137.json delete mode 100644 .changes/next-release/api-change-quicksight-76982.json delete mode 100644 .changes/next-release/api-change-redshift-49770.json delete mode 100644 .changes/next-release/api-change-rtbfabric-44231.json delete mode 100644 .changes/next-release/api-change-sagemaker-45018.json delete mode 100644 .changes/next-release/api-change-securityagent-89551.json delete mode 100644 .changes/next-release/api-change-socialmessaging-84736.json delete mode 100644 .changes/next-release/api-change-stepfunctions-91658.json diff --git a/.changes/2.34.46.json b/.changes/2.34.46.json new file mode 100644 index 000000000000..db00885d9f4a --- /dev/null +++ b/.changes/2.34.46.json @@ -0,0 +1,112 @@ +[ + { + "category": "``connectcases``", + "description": "Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines.", + "type": "api-change" + }, + { + "category": "``quicksight``", + "description": "Adds five new custom permission option for Quick Apps so that these capabilities can be controlled by public SDK and CLI.", + "type": "api-change" + }, + { + "category": "``dsql``", + "description": "Added support for Amazon Aurora DSQL change data capture (CDC) streams that deliver row-level database changes to Amazon Kinesis in JSON format. Includes CreateStream, GetStream, ListStreams, and DeleteStream operations.", + "type": "api-change" + }, + { + "category": "``lightsail``", + "description": "Added OriginIpAddressTypeEnum (ipv4, ipv6, dualstack) and ipAddressType field to Origin and InputOrigin structures for Lightsail CDN distributions. Allows customers to specify how the distribution connects to origins, using IPv4, IPv6, or dualstack networking", + "type": "api-change" + }, + { + "category": "``es``", + "description": "Adds support for AutomatedSnapshotPauseOptions.", + "type": "api-change" + }, + { + "category": "``batch``", + "description": "Adds a billing callout to docs regarding using the CE Scale Down Delay feature", + "type": "api-change" + }, + { + "category": "``securityagent``", + "description": "Add support for code reviews, a new resource type that enables automated security-focused static analysis of source code repositories.", + "type": "api-change" + }, + { + "category": "``arc-region-switch``", + "description": "Adds support for enabling and disabling Lambda event source mappings in Region switch plans.", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "AWS Glue now defaults the job timeout to 480 minutes for Glue version 5.0 and later when no timeout value is specified. The default remains 2,880 minutes for Glue version 4.0 and earlier.", + "type": "api-change" + }, + { + "category": "``connectcampaignsv2``", + "description": "This release added support for Outbound Campaign timezone detection using all available contact methods", + "type": "api-change" + }, + { + "category": "``pcs``", + "description": "Add support for Amazon EC2 Interruptible-ODCR", + "type": "api-change" + }, + { + "category": "``billingconductor``", + "description": "Add ConflictException to UpdateCustomLineItem operation.", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "Added rg.xlarge and rg.4xlarge to valid NodeType values and updated documentation for CreateCluster, ModifyCluster, ResizeCluster, and RestoreFromClusterSnapshot APIs to reflect RG node type support.", + "type": "api-change" + }, + { + "category": "``socialmessaging``", + "description": "Adds parameters to call the GetWhatsAppMessageTemplate and UpdateWhatsAppMessageTemplate APIs with a template name and language code in place of the template ID. Linked WhatsApp accounts also describe whether the WABA is onboarded to Meta's Marketing Messages API.", + "type": "api-change" + }, + { + "category": "``partnercentral-account``", + "description": "Added ServiceQuotaExceededExceptions for Profile operations", + "type": "api-change" + }, + { + "category": "``stepfunctions``", + "description": "Updated default SDK endpoints for AWS Step Functions in AWS GovCloud (US) regions. The default Dual-Stack endpoints now resolve to \"states-fips\" prefixed hostnames. There are no changes to service behavior. No customer action is required.", + "type": "api-change" + }, + { + "category": "``opensearch``", + "description": "Adds support for AutomatedSnapshotPauseOptions.", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "This change added three new EventSourceName for schedule notification feature", + "type": "api-change" + }, + { + "category": "``rtbfabric``", + "description": "Customers can now configure custom domain names for their RTB Fabric gateways. This enables partners to use their own branded domain for RTB traffic instead of the default rtbfabric endpoint", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore-control``", + "description": "Adds support for read-only summary APIs for Policy Engine, Policy, and Policy Generation resources, enabling metadata retrieval without KMS decryption for AWS Config integration.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "Include length limits in the SDK and documentation for text fields in Image (AMI) APIs such as the image name and description", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "Adds execution role session name mode to reflect user identity in Studio. Adds Flexible Training Plans on Studio apps. Adds restricted model packages to control access to proprietary model artifacts via IAM. Fixed instance type parity between inference endpoints and managed shadow tests.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-arcregionswitch-69286.json b/.changes/next-release/api-change-arcregionswitch-69286.json deleted file mode 100644 index 55d1bc0f7564..000000000000 --- a/.changes/next-release/api-change-arcregionswitch-69286.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``arc-region-switch``", - "description": "Adds support for enabling and disabling Lambda event source mappings in Region switch plans." -} diff --git a/.changes/next-release/api-change-batch-38873.json b/.changes/next-release/api-change-batch-38873.json deleted file mode 100644 index eeefbb3150ca..000000000000 --- a/.changes/next-release/api-change-batch-38873.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``batch``", - "description": "Adds a billing callout to docs regarding using the CE Scale Down Delay feature" -} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-82849.json b/.changes/next-release/api-change-bedrockagentcorecontrol-82849.json deleted file mode 100644 index 6c13439b8658..000000000000 --- a/.changes/next-release/api-change-bedrockagentcorecontrol-82849.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore-control``", - "description": "Adds support for read-only summary APIs for Policy Engine, Policy, and Policy Generation resources, enabling metadata retrieval without KMS decryption for AWS Config integration." -} diff --git a/.changes/next-release/api-change-billingconductor-89789.json b/.changes/next-release/api-change-billingconductor-89789.json deleted file mode 100644 index 6f94815984f3..000000000000 --- a/.changes/next-release/api-change-billingconductor-89789.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``billingconductor``", - "description": "Add ConflictException to UpdateCustomLineItem operation." -} diff --git a/.changes/next-release/api-change-connect-34254.json b/.changes/next-release/api-change-connect-34254.json deleted file mode 100644 index 2074d26cbec3..000000000000 --- a/.changes/next-release/api-change-connect-34254.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connect``", - "description": "This change added three new EventSourceName for schedule notification feature" -} diff --git a/.changes/next-release/api-change-connectcampaignsv2-68179.json b/.changes/next-release/api-change-connectcampaignsv2-68179.json deleted file mode 100644 index 5c79b142eec7..000000000000 --- a/.changes/next-release/api-change-connectcampaignsv2-68179.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connectcampaignsv2``", - "description": "This release added support for Outbound Campaign timezone detection using all available contact methods" -} diff --git a/.changes/next-release/api-change-connectcases-68990.json b/.changes/next-release/api-change-connectcases-68990.json deleted file mode 100644 index 83949eeacad2..000000000000 --- a/.changes/next-release/api-change-connectcases-68990.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connectcases``", - "description": "Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines." -} diff --git a/.changes/next-release/api-change-dsql-60994.json b/.changes/next-release/api-change-dsql-60994.json deleted file mode 100644 index b7d2e1ebb0ce..000000000000 --- a/.changes/next-release/api-change-dsql-60994.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``dsql``", - "description": "Added support for Amazon Aurora DSQL change data capture (CDC) streams that deliver row-level database changes to Amazon Kinesis in JSON format. Includes CreateStream, GetStream, ListStreams, and DeleteStream operations." -} diff --git a/.changes/next-release/api-change-ec2-53549.json b/.changes/next-release/api-change-ec2-53549.json deleted file mode 100644 index cb8266646962..000000000000 --- a/.changes/next-release/api-change-ec2-53549.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ec2``", - "description": "Include length limits in the SDK and documentation for text fields in Image (AMI) APIs such as the image name and description" -} diff --git a/.changes/next-release/api-change-es-93754.json b/.changes/next-release/api-change-es-93754.json deleted file mode 100644 index c493b04b5d2c..000000000000 --- a/.changes/next-release/api-change-es-93754.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``es``", - "description": "Adds support for AutomatedSnapshotPauseOptions." -} diff --git a/.changes/next-release/api-change-glue-56973.json b/.changes/next-release/api-change-glue-56973.json deleted file mode 100644 index b00d81c9f11e..000000000000 --- a/.changes/next-release/api-change-glue-56973.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``glue``", - "description": "AWS Glue now defaults the job timeout to 480 minutes for Glue version 5.0 and later when no timeout value is specified. The default remains 2,880 minutes for Glue version 4.0 and earlier." -} diff --git a/.changes/next-release/api-change-lightsail-11313.json b/.changes/next-release/api-change-lightsail-11313.json deleted file mode 100644 index f7efca407e8c..000000000000 --- a/.changes/next-release/api-change-lightsail-11313.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``lightsail``", - "description": "Added OriginIpAddressTypeEnum (ipv4, ipv6, dualstack) and ipAddressType field to Origin and InputOrigin structures for Lightsail CDN distributions. Allows customers to specify how the distribution connects to origins, using IPv4, IPv6, or dualstack networking" -} diff --git a/.changes/next-release/api-change-opensearch-53141.json b/.changes/next-release/api-change-opensearch-53141.json deleted file mode 100644 index e2358164b8d7..000000000000 --- a/.changes/next-release/api-change-opensearch-53141.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``opensearch``", - "description": "Adds support for AutomatedSnapshotPauseOptions." -} diff --git a/.changes/next-release/api-change-partnercentralaccount-16592.json b/.changes/next-release/api-change-partnercentralaccount-16592.json deleted file mode 100644 index ee1e8758cc29..000000000000 --- a/.changes/next-release/api-change-partnercentralaccount-16592.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``partnercentral-account``", - "description": "Added ServiceQuotaExceededExceptions for Profile operations" -} diff --git a/.changes/next-release/api-change-pcs-15137.json b/.changes/next-release/api-change-pcs-15137.json deleted file mode 100644 index 308b900aaa14..000000000000 --- a/.changes/next-release/api-change-pcs-15137.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``pcs``", - "description": "Add support for Amazon EC2 Interruptible-ODCR" -} diff --git a/.changes/next-release/api-change-quicksight-76982.json b/.changes/next-release/api-change-quicksight-76982.json deleted file mode 100644 index 3a494289d800..000000000000 --- a/.changes/next-release/api-change-quicksight-76982.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``quicksight``", - "description": "Adds five new custom permission option for Quick Apps so that these capabilities can be controlled by public SDK and CLI." -} diff --git a/.changes/next-release/api-change-redshift-49770.json b/.changes/next-release/api-change-redshift-49770.json deleted file mode 100644 index 4b52569b7b23..000000000000 --- a/.changes/next-release/api-change-redshift-49770.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``redshift``", - "description": "Added rg.xlarge and rg.4xlarge to valid NodeType values and updated documentation for CreateCluster, ModifyCluster, ResizeCluster, and RestoreFromClusterSnapshot APIs to reflect RG node type support." -} diff --git a/.changes/next-release/api-change-rtbfabric-44231.json b/.changes/next-release/api-change-rtbfabric-44231.json deleted file mode 100644 index 19640c500b26..000000000000 --- a/.changes/next-release/api-change-rtbfabric-44231.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``rtbfabric``", - "description": "Customers can now configure custom domain names for their RTB Fabric gateways. This enables partners to use their own branded domain for RTB traffic instead of the default rtbfabric endpoint" -} diff --git a/.changes/next-release/api-change-sagemaker-45018.json b/.changes/next-release/api-change-sagemaker-45018.json deleted file mode 100644 index 784a110896b4..000000000000 --- a/.changes/next-release/api-change-sagemaker-45018.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemaker``", - "description": "Adds execution role session name mode to reflect user identity in Studio. Adds Flexible Training Plans on Studio apps. Adds restricted model packages to control access to proprietary model artifacts via IAM. Fixed instance type parity between inference endpoints and managed shadow tests." -} diff --git a/.changes/next-release/api-change-securityagent-89551.json b/.changes/next-release/api-change-securityagent-89551.json deleted file mode 100644 index 9e1629e17266..000000000000 --- a/.changes/next-release/api-change-securityagent-89551.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``securityagent``", - "description": "Add support for code reviews, a new resource type that enables automated security-focused static analysis of source code repositories." -} diff --git a/.changes/next-release/api-change-socialmessaging-84736.json b/.changes/next-release/api-change-socialmessaging-84736.json deleted file mode 100644 index 513c093805f1..000000000000 --- a/.changes/next-release/api-change-socialmessaging-84736.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``socialmessaging``", - "description": "Adds parameters to call the GetWhatsAppMessageTemplate and UpdateWhatsAppMessageTemplate APIs with a template name and language code in place of the template ID. Linked WhatsApp accounts also describe whether the WABA is onboarded to Meta's Marketing Messages API." -} diff --git a/.changes/next-release/api-change-stepfunctions-91658.json b/.changes/next-release/api-change-stepfunctions-91658.json deleted file mode 100644 index 334b0f228a35..000000000000 --- a/.changes/next-release/api-change-stepfunctions-91658.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``stepfunctions``", - "description": "Updated default SDK endpoints for AWS Step Functions in AWS GovCloud (US) regions. The default Dual-Stack endpoints now resolve to \"states-fips\" prefixed hostnames. There are no changes to service behavior. No customer action is required." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index de0ca55f360b..b11c6bb910d2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,33 @@ CHANGELOG ========= +2.34.46 +======= + +* api-change:``connectcases``: Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines. +* api-change:``quicksight``: Adds five new custom permission option for Quick Apps so that these capabilities can be controlled by public SDK and CLI. +* api-change:``dsql``: Added support for Amazon Aurora DSQL change data capture (CDC) streams that deliver row-level database changes to Amazon Kinesis in JSON format. Includes CreateStream, GetStream, ListStreams, and DeleteStream operations. +* api-change:``lightsail``: Added OriginIpAddressTypeEnum (ipv4, ipv6, dualstack) and ipAddressType field to Origin and InputOrigin structures for Lightsail CDN distributions. Allows customers to specify how the distribution connects to origins, using IPv4, IPv6, or dualstack networking +* api-change:``es``: Adds support for AutomatedSnapshotPauseOptions. +* api-change:``batch``: Adds a billing callout to docs regarding using the CE Scale Down Delay feature +* api-change:``securityagent``: Add support for code reviews, a new resource type that enables automated security-focused static analysis of source code repositories. +* api-change:``arc-region-switch``: Adds support for enabling and disabling Lambda event source mappings in Region switch plans. +* api-change:``glue``: AWS Glue now defaults the job timeout to 480 minutes for Glue version 5.0 and later when no timeout value is specified. The default remains 2,880 minutes for Glue version 4.0 and earlier. +* api-change:``connectcampaignsv2``: This release added support for Outbound Campaign timezone detection using all available contact methods +* api-change:``pcs``: Add support for Amazon EC2 Interruptible-ODCR +* api-change:``billingconductor``: Add ConflictException to UpdateCustomLineItem operation. +* api-change:``redshift``: Added rg.xlarge and rg.4xlarge to valid NodeType values and updated documentation for CreateCluster, ModifyCluster, ResizeCluster, and RestoreFromClusterSnapshot APIs to reflect RG node type support. +* api-change:``socialmessaging``: Adds parameters to call the GetWhatsAppMessageTemplate and UpdateWhatsAppMessageTemplate APIs with a template name and language code in place of the template ID. Linked WhatsApp accounts also describe whether the WABA is onboarded to Meta's Marketing Messages API. +* api-change:``partnercentral-account``: Added ServiceQuotaExceededExceptions for Profile operations +* api-change:``stepfunctions``: Updated default SDK endpoints for AWS Step Functions in AWS GovCloud (US) regions. The default Dual-Stack endpoints now resolve to "states-fips" prefixed hostnames. There are no changes to service behavior. No customer action is required. +* api-change:``opensearch``: Adds support for AutomatedSnapshotPauseOptions. +* api-change:``connect``: This change added three new EventSourceName for schedule notification feature +* api-change:``rtbfabric``: Customers can now configure custom domain names for their RTB Fabric gateways. This enables partners to use their own branded domain for RTB traffic instead of the default rtbfabric endpoint +* api-change:``bedrock-agentcore-control``: Adds support for read-only summary APIs for Policy Engine, Policy, and Policy Generation resources, enabling metadata retrieval without KMS decryption for AWS Config integration. +* api-change:``ec2``: Include length limits in the SDK and documentation for text fields in Image (AMI) APIs such as the image name and description +* api-change:``sagemaker``: Adds execution role session name mode to reflect user identity in Studio. Adds Flexible Training Plans on Studio apps. Adds restricted model packages to control access to proprietary model artifacts via IAM. Fixed instance type parity between inference endpoints and managed shadow tests. + + 2.34.45 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 5caf530f2b41..a8b4e4f5ec1c 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.45' +__version__ = '2.34.46' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 66c02fcab459..2dda653717c4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.45. +# Generated by GNU Autoconf 2.71 for awscli 2.34.46. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.45' -PACKAGE_STRING='awscli 2.34.45' +PACKAGE_VERSION='2.34.46' +PACKAGE_STRING='awscli 2.34.46' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.45 +awscli configure 2.34.46 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.45, which was +It was created by awscli $as_me 2.34.46, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.45, which was +This file was extended by awscli $as_me 2.34.46, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.45 +awscli config.status 2.34.46 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index a21bd59af84a..823c37a6b1dd 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.45]) +AC_INIT([awscli], [2.34.46]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 3278917294db..155250019eb5 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.45' +release = '2.34.46' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 124d8d6441ab9fdf980726a8c1ff3a3780b1efa8 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 14 May 2026 18:06:32 +0000 Subject: [PATCH 07/73] Update to latest models --- .../api-change-bedrock-39623.json | 5 + .../api-change-cloudfront-24590.json | 5 + .../api-change-datazone-48281.json | 5 + .../next-release/api-change-dms-33397.json | 5 + .../next-release/api-change-glue-64686.json | 5 + .../api-change-grafana-29415.json | 5 + .../next-release/api-change-mgn-87937.json | 5 + .../api-change-qconnect-52820.json | 5 + .../data/bedrock/2023-04-20/paginators-1.json | 6 + .../data/bedrock/2023-04-20/service-2.json | 556 ++++++++ .../data/cloudfront/2020-05-31/service-2.json | 20 +- .../datazone/2018-05-10/paginators-1.json | 6 + .../data/datazone/2018-05-10/service-2.json | 1153 ++++++++++++++++- .../data/dms/2016-01-01/waiters-2.json | 180 +++ .../data/glue/2017-03-31/service-2.json | 7 +- .../data/grafana/2020-08-18/service-2.json | 19 + .../data/mgn/2020-02-26/service-2.json | 7 +- .../qconnect/2020-10-19/paginators-1.json | 6 + .../data/qconnect/2020-10-19/service-2.json | 262 +++- 19 files changed, 2165 insertions(+), 97 deletions(-) create mode 100644 .changes/next-release/api-change-bedrock-39623.json create mode 100644 .changes/next-release/api-change-cloudfront-24590.json create mode 100644 .changes/next-release/api-change-datazone-48281.json create mode 100644 .changes/next-release/api-change-dms-33397.json create mode 100644 .changes/next-release/api-change-glue-64686.json create mode 100644 .changes/next-release/api-change-grafana-29415.json create mode 100644 .changes/next-release/api-change-mgn-87937.json create mode 100644 .changes/next-release/api-change-qconnect-52820.json diff --git a/.changes/next-release/api-change-bedrock-39623.json b/.changes/next-release/api-change-bedrock-39623.json new file mode 100644 index 000000000000..c6805c728d5e --- /dev/null +++ b/.changes/next-release/api-change-bedrock-39623.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock``", + "description": "Advanced Prompt Optimization (AdvPO) allows you to optimize and migrate your prompts for any model on Bedrock by automatically evaluating responses and rewriting prompts to improve performance. This release provides a programmatic way to create, get, list, stop, and delete AdvPO jobs." +} diff --git a/.changes/next-release/api-change-cloudfront-24590.json b/.changes/next-release/api-change-cloudfront-24590.json new file mode 100644 index 000000000000..fe9c7e90fa1e --- /dev/null +++ b/.changes/next-release/api-change-cloudfront-24590.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cloudfront``", + "description": "Adding a new boolean for OCSP Revocations in Viewer mTLS Create and Update APIs, and adding a new 'Passthrough' option for TrustStore modes" +} diff --git a/.changes/next-release/api-change-datazone-48281.json b/.changes/next-release/api-change-datazone-48281.json new file mode 100644 index 000000000000..ccdff539b512 --- /dev/null +++ b/.changes/next-release/api-change-datazone-48281.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``datazone``", + "description": "Adds support for SageMaker Unified Studio notebook operations, including notebook import and export" +} diff --git a/.changes/next-release/api-change-dms-33397.json b/.changes/next-release/api-change-dms-33397.json new file mode 100644 index 000000000000..47ba37cc1425 --- /dev/null +++ b/.changes/next-release/api-change-dms-33397.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``dms``", + "description": "Add 9 SDK waiters for DMS Schema Conversion async operations. Eliminates manual polling for import, assessment, conversion, export, and creation jobs." +} diff --git a/.changes/next-release/api-change-glue-64686.json b/.changes/next-release/api-change-glue-64686.json new file mode 100644 index 000000000000..28a696fccac1 --- /dev/null +++ b/.changes/next-release/api-change-glue-64686.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``glue``", + "description": "Release --has-databases parameter for AWS Glue get-catalogs API, which filters catalog responses to include only those capable of containing databases, excluding parent catalogs that hold only other catalogs. Remove model-level validation on partition index list size for AWS Glue tables." +} diff --git a/.changes/next-release/api-change-grafana-29415.json b/.changes/next-release/api-change-grafana-29415.json new file mode 100644 index 000000000000..486d67b77101 --- /dev/null +++ b/.changes/next-release/api-change-grafana-29415.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``grafana``", + "description": "Adds support for dual-stack (IPv4 and IPv6) connectivity to Amazon Managed Grafana workspaces. Customers can configure the ipAddressType parameter when creating or updating a workspace to choose between IPv4-only or dual-stack (IPv4 and IPv6) access." +} diff --git a/.changes/next-release/api-change-mgn-87937.json b/.changes/next-release/api-change-mgn-87937.json new file mode 100644 index 000000000000..a84dca8daaf1 --- /dev/null +++ b/.changes/next-release/api-change-mgn-87937.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``mgn``", + "description": "Introducing new option for security groups mapping - with MAP-DHCP the service translates security rules from your source environment with DHCP compatibility." +} diff --git a/.changes/next-release/api-change-qconnect-52820.json b/.changes/next-release/api-change-qconnect-52820.json new file mode 100644 index 000000000000..3b00509ae636 --- /dev/null +++ b/.changes/next-release/api-change-qconnect-52820.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``qconnect``", + "description": "ListModels is an API that returns the available AI models for a Connect Assistant based on its region and AI prompt type." +} diff --git a/awscli/botocore/data/bedrock/2023-04-20/paginators-1.json b/awscli/botocore/data/bedrock/2023-04-20/paginators-1.json index 0cbf0920fbec..ca17a87e00d4 100644 --- a/awscli/botocore/data/bedrock/2023-04-20/paginators-1.json +++ b/awscli/botocore/data/bedrock/2023-04-20/paginators-1.json @@ -106,6 +106,12 @@ "input_token": "nextToken", "output_token": "nextToken", "result_key": "guardrailsConfig" + }, + "ListAdvancedPromptOptimizationJobs": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "jobSummaries" } } } diff --git a/awscli/botocore/data/bedrock/2023-04-20/service-2.json b/awscli/botocore/data/bedrock/2023-04-20/service-2.json index 98b23830514a..c8a010618b3e 100644 --- a/awscli/botocore/data/bedrock/2023-04-20/service-2.json +++ b/awscli/botocore/data/bedrock/2023-04-20/service-2.json @@ -16,6 +16,23 @@ "uid":"bedrock-2023-04-20" }, "operations":{ + "BatchDeleteAdvancedPromptOptimizationJob":{ + "name":"BatchDeleteAdvancedPromptOptimizationJob", + "http":{ + "method":"POST", + "requestUri":"/advanced-prompt-optimization-job/batch-delete", + "responseCode":202 + }, + "input":{"shape":"BatchDeleteAdvancedPromptOptimizationJobRequest"}, + "output":{"shape":"BatchDeleteAdvancedPromptOptimizationJobResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Batch delete the specified advanced prompt optimization jobs.

" + }, "BatchDeleteEvaluationJob":{ "name":"BatchDeleteEvaluationJob", "http":{ @@ -54,6 +71,28 @@ "documentation":"

Cancels a running Automated Reasoning policy build workflow. This stops the policy generation process and prevents further processing of the source documents.

", "idempotent":true }, + "CreateAdvancedPromptOptimizationJob":{ + "name":"CreateAdvancedPromptOptimizationJob", + "http":{ + "method":"POST", + "requestUri":"/advanced-prompt-optimization-jobs", + "responseCode":200 + }, + "input":{"shape":"CreateAdvancedPromptOptimizationJobRequest"}, + "output":{"shape":"CreateAdvancedPromptOptimizationJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates an asynchronous batch job for advanced prompt optimization.

", + "idempotent":true + }, "CreateAutomatedReasoningPolicy":{ "name":"CreateAutomatedReasoningPolicy", "http":{ @@ -745,6 +784,25 @@ "documentation":"

Exports the policy definition for an Automated Reasoning policy version. Returns the complete policy definition including rules, variables, and custom variable types in a structured format.

", "readonly":true }, + "GetAdvancedPromptOptimizationJob":{ + "name":"GetAdvancedPromptOptimizationJob", + "http":{ + "method":"GET", + "requestUri":"/advanced-prompt-optimization-jobs/{jobIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetAdvancedPromptOptimizationJobRequest"}, + "output":{"shape":"GetAdvancedPromptOptimizationJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the details and status of an advanced prompt optimization job.

", + "readonly":true + }, "GetAutomatedReasoningPolicy":{ "name":"GetAutomatedReasoningPolicy", "http":{ @@ -1217,6 +1275,24 @@ "documentation":"

Get usecase for model access.

", "readonly":true }, + "ListAdvancedPromptOptimizationJobs":{ + "name":"ListAdvancedPromptOptimizationJobs", + "http":{ + "method":"GET", + "requestUri":"/advanced-prompt-optimization-jobs", + "responseCode":200 + }, + "input":{"shape":"ListAdvancedPromptOptimizationJobsRequest"}, + "output":{"shape":"ListAdvancedPromptOptimizationJobsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists all advanced prompt optimization jobs for the account.

", + "readonly":true + }, "ListAutomatedReasoningPolicies":{ "name":"ListAutomatedReasoningPolicies", "http":{ @@ -1738,6 +1814,25 @@ ], "documentation":"

Initiates a test workflow to validate Automated Reasoning policy tests. The workflow executes the specified tests against the policy and generates validation results.

" }, + "StopAdvancedPromptOptimizationJob":{ + "name":"StopAdvancedPromptOptimizationJob", + "http":{ + "method":"POST", + "requestUri":"/advanced-prompt-optimization-jobs/{jobIdentifier}/stop", + "responseCode":200 + }, + "input":{"shape":"StopAdvancedPromptOptimizationJobRequest"}, + "output":{"shape":"StopAdvancedPromptOptimizationJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Stops an in-progress advanced prompt optimization job.

" + }, "StopEvaluationJob":{ "name":"StopEvaluationJob", "http":{ @@ -2105,6 +2200,112 @@ "members":{}, "document":true }, + "AdvancedPromptOptimizationInputConfig":{ + "type":"structure", + "required":["s3Uri"], + "members":{ + "s3Uri":{ + "shape":"S3Uri", + "documentation":"

S3 URI of the input JSONL file.

" + } + }, + "documentation":"

Input data configuration for the advanced prompt optimization job.

" + }, + "AdvancedPromptOptimizationJobArn":{ + "type":"string", + "documentation":"

ARN of the advanced prompt optimization job.

", + "max":1011, + "min":0, + "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:advanced-prompt-optimization-job/[a-z0-9]{12}" + }, + "AdvancedPromptOptimizationJobDescription":{ + "type":"string", + "documentation":"

Description of the advanced prompt optimization job.

", + "max":500, + "min":1 + }, + "AdvancedPromptOptimizationJobIdentifier":{ + "type":"string", + "documentation":"

ARN or ID of the advanced prompt optimization job.

", + "max":1011, + "min":0, + "pattern":"((arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:advanced-prompt-optimization-job/)?[a-z0-9]{12})" + }, + "AdvancedPromptOptimizationJobIdentifiers":{ + "type":"list", + "member":{"shape":"AdvancedPromptOptimizationJobIdentifier"}, + "documentation":"

List of advanced prompt optimization job identifiers.

", + "max":25, + "min":1 + }, + "AdvancedPromptOptimizationJobName":{ + "type":"string", + "documentation":"

Name of the advanced prompt optimization job.

", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9.+-]*" + }, + "AdvancedPromptOptimizationJobStatus":{ + "type":"string", + "documentation":"

Status of the advanced prompt optimization job.

", + "enum":[ + "InProgress", + "Completed", + "Failed", + "PartiallyCompleted", + "Stopping", + "Stopped", + "Deleting" + ] + }, + "AdvancedPromptOptimizationJobSummaries":{ + "type":"list", + "member":{"shape":"AdvancedPromptOptimizationJobSummary"}, + "documentation":"

List of advanced prompt optimization job summaries.

" + }, + "AdvancedPromptOptimizationJobSummary":{ + "type":"structure", + "required":[ + "jobArn", + "jobName", + "jobStatus", + "creationTime" + ], + "members":{ + "jobArn":{ + "shape":"AdvancedPromptOptimizationJobArn", + "documentation":"

ARN of the advanced prompt optimization job.

" + }, + "jobName":{ + "shape":"AdvancedPromptOptimizationJobName", + "documentation":"

Name of the advanced prompt optimization job.

" + }, + "jobStatus":{ + "shape":"AdvancedPromptOptimizationJobStatus", + "documentation":"

Status of the advanced prompt optimization job.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

Creation time of the advanced prompt optimization job.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

Last modified time of the advanced prompt optimization job.

" + } + }, + "documentation":"

Summary of an advanced prompt optimization job.

" + }, + "AdvancedPromptOptimizationOutputConfig":{ + "type":"structure", + "required":["s3Uri"], + "members":{ + "s3Uri":{ + "shape":"S3UriFolder", + "documentation":"

S3 URI prefix for the output location.

" + } + }, + "documentation":"

Output data configuration for the advanced prompt optimization job.

" + }, "AgreementAvailability":{ "type":"structure", "required":["status"], @@ -4432,6 +4633,89 @@ "min":1, "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)" }, + "BatchDeleteAdvancedPromptOptimizationJobError":{ + "type":"structure", + "required":[ + "jobIdentifier", + "code" + ], + "members":{ + "jobIdentifier":{ + "shape":"AdvancedPromptOptimizationJobIdentifier", + "documentation":"

Identifier of the job that failed to delete.

" + }, + "code":{ + "shape":"String", + "documentation":"

Error code for the deletion failure.

" + }, + "message":{ + "shape":"String", + "documentation":"

Error message describing the deletion failure.

" + } + }, + "documentation":"

Batch deletion error for an advanced prompt optimization job.

" + }, + "BatchDeleteAdvancedPromptOptimizationJobErrors":{ + "type":"list", + "member":{"shape":"BatchDeleteAdvancedPromptOptimizationJobError"}, + "documentation":"

List of batch deletion errors for advanced prompt optimization jobs.

", + "max":25, + "min":0 + }, + "BatchDeleteAdvancedPromptOptimizationJobItem":{ + "type":"structure", + "required":[ + "jobIdentifier", + "jobStatus" + ], + "members":{ + "jobIdentifier":{ + "shape":"AdvancedPromptOptimizationJobIdentifier", + "documentation":"

Identifier of the deleted job.

" + }, + "jobStatus":{ + "shape":"AdvancedPromptOptimizationJobStatus", + "documentation":"

Status of the deleted job.

" + } + }, + "documentation":"

Successfully deleted advanced prompt optimization job.

" + }, + "BatchDeleteAdvancedPromptOptimizationJobItems":{ + "type":"list", + "member":{"shape":"BatchDeleteAdvancedPromptOptimizationJobItem"}, + "documentation":"

List of successfully deleted advanced prompt optimization jobs.

", + "max":25, + "min":0 + }, + "BatchDeleteAdvancedPromptOptimizationJobRequest":{ + "type":"structure", + "required":["jobIdentifiers"], + "members":{ + "jobIdentifiers":{ + "shape":"AdvancedPromptOptimizationJobIdentifiers", + "documentation":"

List of advanced prompt optimization job identifiers to delete.

" + } + }, + "documentation":"

Batch Delete Advanced Prompt Optimization Jobs Request

" + }, + "BatchDeleteAdvancedPromptOptimizationJobResponse":{ + "type":"structure", + "required":[ + "errors", + "advancedPromptOptimizationJobs" + ], + "members":{ + "errors":{ + "shape":"BatchDeleteAdvancedPromptOptimizationJobErrors", + "documentation":"

List of errors encountered during batch deletion.

" + }, + "advancedPromptOptimizationJobs":{ + "shape":"BatchDeleteAdvancedPromptOptimizationJobItems", + "documentation":"

List of successfully deleted advanced prompt optimization jobs.

" + } + }, + "documentation":"

Batch Delete Advanced Prompt Optimization Jobs Response

" + }, "BatchDeleteEvaluationJobError":{ "type":"structure", "required":[ @@ -4662,6 +4946,62 @@ "type":"string", "pattern":".*[a-z]{1,20}/.{1,20}.*" }, + "CreateAdvancedPromptOptimizationJobRequest":{ + "type":"structure", + "required":[ + "jobName", + "inputConfig", + "outputConfig", + "modelConfigurations" + ], + "members":{ + "jobName":{ + "shape":"AdvancedPromptOptimizationJobName", + "documentation":"

Name of the advanced prompt optimization job.

" + }, + "jobDescription":{ + "shape":"AdvancedPromptOptimizationJobDescription", + "documentation":"

Description of the advanced prompt optimization job.

" + }, + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

Idempotency token for the request.

", + "idempotencyToken":true + }, + "inputConfig":{ + "shape":"AdvancedPromptOptimizationInputConfig", + "documentation":"

Input data configuration for the advanced prompt optimization job.

" + }, + "outputConfig":{ + "shape":"AdvancedPromptOptimizationOutputConfig", + "documentation":"

Output data configuration for the advanced prompt optimization job.

" + }, + "encryptionKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

KMS key ARN for encrypting output data.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Tags to associate with the job.

" + }, + "modelConfigurations":{ + "shape":"ModelConfigurations", + "documentation":"

Model configurations for advanced prompt optimization.

" + } + }, + "documentation":"

Create Advanced Prompt Optimization Job Request

" + }, + "CreateAdvancedPromptOptimizationJobResponse":{ + "type":"structure", + "required":["jobArn"], + "members":{ + "jobArn":{ + "shape":"AdvancedPromptOptimizationJobArn", + "documentation":"

ARN of the created advanced prompt optimization job.

" + } + }, + "documentation":"

Create Advanced Prompt Optimization Job Response

" + }, "CreateAutomatedReasoningPolicyRequest":{ "type":"structure", "required":["name"], @@ -7032,6 +7372,78 @@ }, "documentation":"

The configuration details for response generation based on retrieved text chunks.

" }, + "GetAdvancedPromptOptimizationJobRequest":{ + "type":"structure", + "required":["jobIdentifier"], + "members":{ + "jobIdentifier":{ + "shape":"AdvancedPromptOptimizationJobIdentifier", + "documentation":"

ARN or ID of the advanced prompt optimization job.

", + "location":"uri", + "locationName":"jobIdentifier" + } + }, + "documentation":"

Get Advanced Prompt Optimization Job Request

" + }, + "GetAdvancedPromptOptimizationJobResponse":{ + "type":"structure", + "required":[ + "jobArn", + "jobName", + "jobStatus", + "inputConfig", + "outputConfig", + "creationTime", + "modelConfigurations" + ], + "members":{ + "jobArn":{ + "shape":"AdvancedPromptOptimizationJobArn", + "documentation":"

ARN of the advanced prompt optimization job.

" + }, + "jobName":{ + "shape":"AdvancedPromptOptimizationJobName", + "documentation":"

Name of the advanced prompt optimization job.

" + }, + "jobDescription":{ + "shape":"AdvancedPromptOptimizationJobDescription", + "documentation":"

Description of the advanced prompt optimization job.

" + }, + "jobStatus":{ + "shape":"AdvancedPromptOptimizationJobStatus", + "documentation":"

Status of the advanced prompt optimization job.

" + }, + "inputConfig":{ + "shape":"AdvancedPromptOptimizationInputConfig", + "documentation":"

Input data configuration for the advanced prompt optimization job.

" + }, + "outputConfig":{ + "shape":"AdvancedPromptOptimizationOutputConfig", + "documentation":"

Output data configuration for the advanced prompt optimization job.

" + }, + "encryptionKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

KMS key ARN used for encrypting output data.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

Creation time of the advanced prompt optimization job.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

Last modified time of the advanced prompt optimization job.

" + }, + "failureMessage":{ + "shape":"ErrorMessage", + "documentation":"

Failure message if the advanced prompt optimization job failed.

" + }, + "modelConfigurations":{ + "shape":"ModelConfigurations", + "documentation":"

Model configurations for advanced prompt optimization.

" + } + }, + "documentation":"

Get Advanced Prompt Optimization Job Response

" + }, "GetAutomatedReasoningPolicyAnnotationsRequest":{ "type":"structure", "required":[ @@ -9897,6 +10309,56 @@ "member":{"shape":"IncludedModelId"}, "min":1 }, + "InferenceConfiguration":{ + "type":"structure", + "members":{ + "maxTokens":{ + "shape":"InferenceConfigurationMaxTokensInteger", + "documentation":"

The maximum number of tokens to generate.

" + }, + "temperature":{ + "shape":"InferenceConfigurationTemperatureFloat", + "documentation":"

The temperature for sampling.

" + }, + "topP":{ + "shape":"InferenceConfigurationTopPFloat", + "documentation":"

The top-p value for nucleus sampling.

" + }, + "stopSequences":{ + "shape":"InferenceConfigurationStopSequencesList", + "documentation":"

Stop sequences that end generation.

" + } + }, + "documentation":"

Inference configuration for a model.

" + }, + "InferenceConfigurationMaxTokensInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "InferenceConfigurationStopSequencesList":{ + "type":"list", + "member":{"shape":"InferenceConfigurationStopSequencesListMemberString"}, + "documentation":"

A list of non-empty strings.

", + "max":2500, + "min":0 + }, + "InferenceConfigurationStopSequencesListMemberString":{ + "type":"string", + "min":1 + }, + "InferenceConfigurationTemperatureFloat":{ + "type":"float", + "box":true, + "max":1, + "min":0 + }, + "InferenceConfigurationTopPFloat":{ + "type":"float", + "box":true, + "max":1, + "min":0 + }, "InferenceProfileArn":{ "type":"string", "max":2048, @@ -10267,6 +10729,50 @@ }, "documentation":"

The legal term of the agreement.

" }, + "ListAdvancedPromptOptimizationJobsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

Maximum number of results to return.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Pagination token for the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "sortBy":{ + "shape":"SortJobsBy", + "documentation":"

Field to sort by in the returned list of jobs.

", + "location":"querystring", + "locationName":"sortBy" + }, + "sortOrder":{ + "shape":"SortOrder", + "documentation":"

Sort order for the results.

", + "location":"querystring", + "locationName":"sortOrder" + } + }, + "documentation":"

List Advanced Prompt Optimization Jobs Request

" + }, + "ListAdvancedPromptOptimizationJobsResponse":{ + "type":"structure", + "members":{ + "jobSummaries":{ + "shape":"AdvancedPromptOptimizationJobSummaries", + "documentation":"

List of advanced prompt optimization job summaries.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Pagination token for the next page of results.

" + } + }, + "documentation":"

List Advanced Prompt Optimization Jobs Response

" + }, "ListAutomatedReasoningPoliciesRequest":{ "type":"structure", "members":{ @@ -11549,6 +12055,32 @@ "min":20, "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/((imported)|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}))" }, + "ModelConfiguration":{ + "type":"structure", + "required":["modelId"], + "members":{ + "modelId":{ + "shape":"BedrockModelId", + "documentation":"

The model ID.

" + }, + "inferenceConfig":{ + "shape":"InferenceConfiguration", + "documentation":"

Inference configuration for the model.

" + }, + "additionalModelRequestFields":{ + "shape":"AdditionalModelRequestFields", + "documentation":"

Additional model request fields.

" + } + }, + "documentation":"

Configuration for a model used in advanced prompt optimization.

" + }, + "ModelConfigurations":{ + "type":"list", + "member":{"shape":"ModelConfiguration"}, + "documentation":"

Model configurations for advanced prompt optimization.

", + "max":5, + "min":1 + }, "ModelCopyJobArn":{ "type":"string", "max":1011, @@ -13018,6 +13550,12 @@ "min":1, "pattern":"s3://[a-z0-9][-.a-z0-9]{1,61}[a-z0-9](?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/?" }, + "S3UriFolder":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"s3://[a-z0-9][-.a-z0-9]{1,61}[a-z0-9](?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/" + }, "SageMakerEndpoint":{ "type":"structure", "required":[ @@ -13252,6 +13790,24 @@ }, "documentation":"

For a Distillation job, the status details for sub-tasks of the job. Possible statuses for each sub-task include the following:

  • NotStarted

  • InProgress

  • Completed

  • Stopping

  • Stopped

  • Failed

" }, + "StopAdvancedPromptOptimizationJobRequest":{ + "type":"structure", + "required":["jobIdentifier"], + "members":{ + "jobIdentifier":{ + "shape":"AdvancedPromptOptimizationJobIdentifier", + "documentation":"

ARN or ID of the advanced prompt optimization job to stop.

", + "location":"uri", + "locationName":"jobIdentifier" + } + }, + "documentation":"

Stop Advanced Prompt Optimization Job Request

" + }, + "StopAdvancedPromptOptimizationJobResponse":{ + "type":"structure", + "members":{}, + "documentation":"

Stop Advanced Prompt Optimization Job Response

" + }, "StopEvaluationJobRequest":{ "type":"structure", "required":["jobIdentifier"], diff --git a/awscli/botocore/data/cloudfront/2020-05-31/service-2.json b/awscli/botocore/data/cloudfront/2020-05-31/service-2.json index 99e62807f10d..5e85bb3293cb 100644 --- a/awscli/botocore/data/cloudfront/2020-05-31/service-2.json +++ b/awscli/botocore/data/cloudfront/2020-05-31/service-2.json @@ -5886,6 +5886,10 @@ "shape":"CaCertificatesBundleSource", "documentation":"

The CA certificates bundle source for the trust store.

" }, + "UseClientCertificateOCSPEndpoint":{ + "shape":"boolean", + "documentation":"

A Boolean that determines whether to use the CA certificate's OCSP endpoint to check certificate revocation status.

" + }, "Tags":{"shape":"Tags"} } }, @@ -15040,6 +15044,10 @@ "Reason":{ "shape":"string", "documentation":"

The trust store's reason.

" + }, + "UseClientCertificateOCSPEndpoint":{ + "shape":"boolean", + "documentation":"

A Boolean that determines whether the trust store uses the CA certificate's OCSP endpoint to check certificate revocation status.

" } }, "documentation":"

A trust store.

" @@ -16175,7 +16183,6 @@ "type":"structure", "required":[ "Id", - "CaCertificatesBundleSource", "IfMatch" ], "members":{ @@ -16191,6 +16198,12 @@ "locationName":"CaCertificatesBundleSource", "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2020-05-31/"} }, + "UseClientCertificateOCSPEndpoint":{ + "shape":"boolean", + "documentation":"

A Boolean that determines whether to use the CA certificate's OCSP endpoint to check certificate revocation status.

", + "location":"header", + "locationName":"UseClientCertificateOCSPEndpoint" + }, "IfMatch":{ "shape":"string", "documentation":"

The current version (ETag value) of the trust store you are updating.

", @@ -16331,7 +16344,7 @@ }, "SSLSupportMethod":{ "shape":"SSLSupportMethod", - "documentation":"

If the distribution uses Aliases (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.

  • sni-only – The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is recommended. Most browsers and clients support SNI.

  • vip – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.

  • static-ip - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the Amazon Web ServicesSupport Center.

If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, don't set a value for this field.

" + "documentation":"

If the distribution uses Aliases (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.

  • sni-only – The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is recommended. Most browsers and clients support SNI.

  • vip – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.

  • static-ip - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the Amazon Web Services Support Center.

If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, don't set a value for this field.

" }, "MinimumProtocolVersion":{ "shape":"MinimumProtocolVersion", @@ -16368,7 +16381,8 @@ "type":"string", "enum":[ "required", - "optional" + "optional", + "passthrough" ] }, "ViewerProtocolPolicy":{ diff --git a/awscli/botocore/data/datazone/2018-05-10/paginators-1.json b/awscli/botocore/data/datazone/2018-05-10/paginators-1.json index 14f66166ff30..462d94b894bc 100644 --- a/awscli/botocore/data/datazone/2018-05-10/paginators-1.json +++ b/awscli/botocore/data/datazone/2018-05-10/paginators-1.json @@ -233,6 +233,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "items" + }, + "ListNotebooks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" } } } diff --git a/awscli/botocore/data/datazone/2018-05-10/service-2.json b/awscli/botocore/data/datazone/2018-05-10/service-2.json index b8213cd77340..97e52156ba63 100644 --- a/awscli/botocore/data/datazone/2018-05-10/service-2.json +++ b/awscli/botocore/data/datazone/2018-05-10/service-2.json @@ -643,6 +643,28 @@ ], "documentation":"

Publishes a listing (a record of an asset at a given time) or removes a listing from the catalog.

" }, + "CreateNotebook":{ + "name":"CreateNotebook", + "http":{ + "method":"POST", + "requestUri":"/v2/domains/{domainIdentifier}/notebooks", + "responseCode":201 + }, + "input":{"shape":"CreateNotebookInput"}, + "output":{"shape":"CreateNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Creates a notebook in Amazon SageMaker Unified Studio. A notebook is a collaborative document within a project that contains code cells for interactive computing.

", + "idempotent":true + }, "CreateProject":{ "name":"CreateProject", "http":{ @@ -1194,6 +1216,26 @@ "documentation":"

Deletes a listing (a record of an asset at a given time).

", "idempotent":true }, + "DeleteNotebook":{ + "name":"DeleteNotebook", + "http":{ + "method":"DELETE", + "requestUri":"/v2/domains/{domainIdentifier}/notebooks/{identifier}", + "responseCode":200 + }, + "input":{"shape":"DeleteNotebookInput"}, + "output":{"shape":"DeleteNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Deletes a notebook in Amazon SageMaker Unified Studio.

", + "idempotent":true + }, "DeleteProject":{ "name":"DeleteProject", "http":{ @@ -1939,6 +1981,46 @@ "documentation":"

Gets a metadata generation run in Amazon DataZone.

Prerequisites:

  • Valid domain and run identifier.

  • The metadata generation run must exist.

  • User must have read access to the metadata run.

", "readonly":true }, + "GetNotebook":{ + "name":"GetNotebook", + "http":{ + "method":"GET", + "requestUri":"/v2/domains/{domainIdentifier}/notebooks/{identifier}", + "responseCode":200 + }, + "input":{"shape":"GetNotebookInput"}, + "output":{"shape":"GetNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Gets the details of a notebook in Amazon SageMaker Unified Studio.

", + "readonly":true + }, + "GetNotebookExport":{ + "name":"GetNotebookExport", + "http":{ + "method":"GET", + "requestUri":"/v2/domains/{domainIdentifier}/notebook-exports/{identifier}", + "responseCode":200 + }, + "input":{"shape":"GetNotebookExportInput"}, + "output":{"shape":"GetNotebookExportOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Gets the details of a notebook export in Amazon SageMaker Unified Studio.

", + "readonly":true + }, "GetNotebookRun":{ "name":"GetNotebookRun", "http":{ @@ -1956,7 +2038,7 @@ {"shape":"ValidationException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Gets the details of a notebook run in an Amazon DataZone domain.

", + "documentation":"

Gets the details of a notebook run in Amazon SageMaker Unified Studio.

", "readonly":true }, "GetProject":{ @@ -2575,7 +2657,26 @@ {"shape":"ValidationException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Lists notebook runs in an Amazon DataZone domain.

", + "documentation":"

Lists notebook runs in Amazon SageMaker Unified Studio.

", + "readonly":true + }, + "ListNotebooks":{ + "name":"ListNotebooks", + "http":{ + "method":"GET", + "requestUri":"/v2/domains/{domainIdentifier}/notebooks", + "responseCode":200 + }, + "input":{"shape":"ListNotebooksInput"}, + "output":{"shape":"ListNotebooksOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Lists notebooks in Amazon SageMaker Unified Studio.

", "readonly":true }, "ListNotifications":{ @@ -3158,6 +3259,49 @@ "documentation":"

Starts the metadata generation run.

Prerequisites:

  • Asset must be created and belong to the specified domain and project.

  • Asset type must be supported for metadata generation (e.g., Amazon Web Services Glue table).

  • Asset must have a structured schema with valid rows and columns.

  • Valid values for --type: BUSINESS_DESCRIPTIONS, BUSINESS_NAMES, BUSINESS_GLOSSARY_ASSOCIATIONS.

  • The user must have permission to run metadata generation in the domain/project.

", "idempotent":true }, + "StartNotebookExport":{ + "name":"StartNotebookExport", + "http":{ + "method":"POST", + "requestUri":"/v2/domains/{domainIdentifier}/notebook-exports", + "responseCode":201 + }, + "input":{"shape":"StartNotebookExportInput"}, + "output":{"shape":"StartNotebookExportOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Starts a notebook export in Amazon SageMaker Unified Studio. This operation exports a notebook to a specified file format and stores the output in Amazon Simple Storage Service.

" + }, + "StartNotebookImport":{ + "name":"StartNotebookImport", + "http":{ + "method":"POST", + "requestUri":"/v2/domains/{domainIdentifier}/notebook-imports", + "responseCode":201 + }, + "input":{"shape":"StartNotebookImportInput"}, + "output":{"shape":"StartNotebookImportOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Starts a notebook import in Amazon SageMaker Unified Studio. This operation imports a notebook from an Amazon Simple Storage Service location into a project.

", + "idempotent":true + }, "StartNotebookRun":{ "name":"StartNotebookRun", "http":{ @@ -3177,7 +3321,7 @@ {"shape":"ValidationException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Starts a notebook run in an Amazon DataZone domain. A notebook run represents the execution of a Amazon DataZone notebook within a project. You can configure compute, network, timeout, and environment settings for the run.

", + "documentation":"

Starts a notebook run in Amazon SageMaker Unified Studio. A notebook run represents the execution of an Amazon SageMaker notebook within a project. You can configure compute, network, timeout, and environment settings for the run.

", "idempotent":true }, "StopNotebookRun":{ @@ -3198,7 +3342,7 @@ {"shape":"ValidationException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Stops a running notebook run in an Amazon DataZone domain.

", + "documentation":"

Stops a running notebook run in Amazon SageMaker Unified Studio.

", "idempotent":true }, "TagResource":{ @@ -3513,6 +3657,27 @@ ], "documentation":"

Updates the specified group profile in Amazon DataZone.

" }, + "UpdateNotebook":{ + "name":"UpdateNotebook", + "http":{ + "method":"PATCH", + "requestUri":"/v2/domains/{domainIdentifier}/notebooks/{identifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateNotebookInput"}, + "output":{"shape":"UpdateNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ], + "documentation":"

Updates a notebook in Amazon SageMaker Unified Studio.

", + "idempotent":true + }, "UpdateProject":{ "name":"UpdateProject", "http":{ @@ -5579,7 +5744,7 @@ "CellInformation":{ "type":"structure", "members":{}, - "documentation":"

The information about a cell in a notebook run in Amazon DataZone.

" + "documentation":"

The information about a cell in a notebook run in Amazon SageMaker Unified Studio.

" }, "CellOrder":{ "type":"list", @@ -5625,6 +5790,7 @@ "type":"list", "member":{"shape":"String"} }, + "CompletedAt":{"type":"timestamp"}, "ComputeConfig":{ "type":"structure", "members":{ @@ -5637,7 +5803,7 @@ "documentation":"

The environment version for the notebook run compute.

" } }, - "documentation":"

The compute configuration for a notebook run in Amazon DataZone.

" + "documentation":"

The compute configuration for a notebook run in Amazon SageMaker Unified Studio.

" }, "ComputeEnvironments":{ "type":"string", @@ -5653,6 +5819,11 @@ "max":50, "min":1 }, + "ComputeId":{ + "type":"string", + "max":64, + "min":0 + }, "ConfigurableActionParameter":{ "type":"structure", "members":{ @@ -8189,6 +8360,136 @@ } } }, + "CreateNotebookInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "owningProjectIdentifier", + "name" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which to create the notebook.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "owningProjectIdentifier":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook. The name must be between 1 and 256 characters.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the notebook.

" + }, + "metadata":{ + "shape":"Metadata", + "documentation":"

The metadata for the notebook, specified as key-value pairs. You can specify up to 50 entries, with keys up to 128 characters and values up to 1024 characters.

" + }, + "parameters":{ + "shape":"Parameters", + "documentation":"

The sensitive parameters for the notebook, specified as key-value pairs. You can specify up to 50 entries, with keys up to 128 characters and values up to 1024 characters.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request. This field is automatically populated if not provided.

", + "idempotencyToken":true + } + } + }, + "CreateNotebookOutput":{ + "type":"structure", + "required":[ + "id", + "name", + "owningProjectId", + "domainId", + "cellOrder", + "status" + ], + "members":{ + "id":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "cellOrder":{ + "shape":"CellOrder", + "documentation":"

The ordered list of cells in the notebook.

" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The status of the notebook.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the notebook.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook was created.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who created the notebook.

" + }, + "updatedAt":{ + "shape":"UpdatedAt", + "documentation":"

The timestamp of when the notebook was last updated.

" + }, + "updatedBy":{ + "shape":"UpdatedBy", + "documentation":"

The identifier of the user who last updated the notebook.

" + }, + "lockedBy":{ + "shape":"String", + "documentation":"

The identifier of the user who locked the notebook.

" + }, + "lockedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook was locked.

" + }, + "lockExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook lock expires.

" + }, + "computeId":{ + "shape":"ComputeId", + "documentation":"

The identifier of the compute associated with the notebook.

" + }, + "metadata":{ + "shape":"Metadata", + "documentation":"

The metadata of the notebook.

" + }, + "parameters":{ + "shape":"Parameters", + "documentation":"

The sensitive parameters of the notebook.

" + }, + "environmentConfiguration":{ + "shape":"EnvironmentConfig", + "documentation":"

The environment configuration of the notebook.

" + }, + "error":{ + "shape":"NotebookError", + "documentation":"

The error details if the notebook creation failed.

" + } + } + }, "CreateProjectFromProjectProfilePolicyGrantDetail":{ "type":"structure", "members":{ @@ -10321,6 +10622,31 @@ "type":"structure", "members":{} }, + "DeleteNotebookInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "identifier" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook exists.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "identifier":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook to delete.

", + "location":"uri", + "locationName":"identifier" + } + } + }, + "DeleteNotebookOutput":{ + "type":"structure", + "members":{} + }, "DeleteProjectInput":{ "type":"structure", "required":[ @@ -11289,7 +11615,7 @@ "documentation":"

The package configuration for the notebook run environment.

" } }, - "documentation":"

The environment configuration for a notebook run in Amazon DataZone.

" + "documentation":"

The environment configuration for a notebook run in Amazon SageMaker Unified Studio.

" }, "EnvironmentConfiguration":{ "type":"structure", @@ -11713,6 +12039,10 @@ "documentation":"

The event summary.

", "union":true }, + "ExportId":{ + "type":"string", + "pattern":"[a-zA-Z0-9_-]{1,36}" + }, "ExternalIdentifier":{ "type":"string", "max":600, @@ -11738,6 +12068,14 @@ "type":"list", "member":{"shape":"ProjectDeletionError"} }, + "FileFormat":{ + "type":"string", + "documentation":"

The file format for a notebook export in Amazon SageMaker Unified Studio.

", + "enum":[ + "PDF", + "IPYNB" + ] + }, "Filter":{ "type":"structure", "required":["attribute"], @@ -14231,7 +14569,7 @@ } } }, - "GetNotebookRunInput":{ + "GetNotebookExportInput":{ "type":"structure", "required":[ "domainIdentifier", @@ -14240,51 +14578,239 @@ "members":{ "domainIdentifier":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain in which the notebook run exists.

", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook export exists.

", "location":"uri", "locationName":"domainIdentifier" }, "identifier":{ - "shape":"NotebookRunId", - "documentation":"

The identifier of the notebook run.

", + "shape":"ExportId", + "documentation":"

The identifier of the notebook export.

", "location":"uri", "locationName":"identifier" } } }, - "GetNotebookRunOutput":{ + "GetNotebookExportOutput":{ "type":"structure", "required":[ "id", "domainId", "owningProjectId", "notebookId", + "fileFormat", "status" ], "members":{ "id":{ - "shape":"NotebookRunId", - "documentation":"

The identifier of the notebook run.

" + "shape":"ExportId", + "documentation":"

The identifier of the notebook export.

" }, "domainId":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain.

" + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" }, "owningProjectId":{ "shape":"ProjectId", - "documentation":"

The identifier of the project that owns the notebook run.

" + "documentation":"

The identifier of the project that owns the notebook.

" }, "notebookId":{ "shape":"NotebookId", "documentation":"

The identifier of the notebook.

" }, - "scheduleId":{ - "shape":"ScheduleId", - "documentation":"

The identifier of the schedule associated with the notebook run.

" + "fileFormat":{ + "shape":"FileFormat", + "documentation":"

The file format of the notebook export.

" }, "status":{ - "shape":"NotebookRunStatus", - "documentation":"

The status of the notebook run.

" + "shape":"NotebookExportStatus", + "documentation":"

The status of the notebook export.

" + }, + "outputLocation":{ + "shape":"OutputLocation", + "documentation":"

The output location of the exported notebook in Amazon Simple Storage Service.

" + }, + "error":{ + "shape":"NotebookExportError", + "documentation":"

The error details if the notebook export failed.

" + }, + "completedAt":{ + "shape":"CompletedAt", + "documentation":"

The timestamp of when the notebook export completed.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook export was started.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who started the notebook export.

" + } + } + }, + "GetNotebookInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "identifier" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook exists.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "identifier":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

", + "location":"uri", + "locationName":"identifier" + } + } + }, + "GetNotebookOutput":{ + "type":"structure", + "required":[ + "id", + "name", + "owningProjectId", + "domainId", + "cellOrder", + "status" + ], + "members":{ + "id":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "cellOrder":{ + "shape":"CellOrder", + "documentation":"

The ordered list of cells in the notebook.

" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The status of the notebook.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the notebook.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook was created.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who created the notebook.

" + }, + "updatedAt":{ + "shape":"UpdatedAt", + "documentation":"

The timestamp of when the notebook was last updated.

" + }, + "updatedBy":{ + "shape":"UpdatedBy", + "documentation":"

The identifier of the user who last updated the notebook.

" + }, + "lockedBy":{ + "shape":"String", + "documentation":"

The identifier of the user who locked the notebook.

" + }, + "lockedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook was locked.

" + }, + "lockExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook lock expires.

" + }, + "computeId":{ + "shape":"ComputeId", + "documentation":"

The identifier of the compute associated with the notebook.

" + }, + "metadata":{ + "shape":"Metadata", + "documentation":"

The metadata of the notebook.

" + }, + "parameters":{ + "shape":"Parameters", + "documentation":"

The sensitive parameters of the notebook.

" + }, + "environmentConfiguration":{ + "shape":"EnvironmentConfig", + "documentation":"

The environment configuration of the notebook.

" + }, + "error":{ + "shape":"NotebookError", + "documentation":"

The error details if the notebook is in a failed state.

" + } + } + }, + "GetNotebookRunInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "identifier" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook run exists.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "identifier":{ + "shape":"NotebookRunId", + "documentation":"

The identifier of the notebook run.

", + "location":"uri", + "locationName":"identifier" + } + } + }, + "GetNotebookRunOutput":{ + "type":"structure", + "required":[ + "id", + "domainId", + "owningProjectId", + "notebookId", + "status" + ], + "members":{ + "id":{ + "shape":"NotebookRunId", + "documentation":"

The identifier of the notebook run.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook run.

" + }, + "notebookId":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

" + }, + "scheduleId":{ + "shape":"ScheduleId", + "documentation":"

The identifier of the schedule associated with the notebook run.

" + }, + "status":{ + "shape":"NotebookRunStatus", + "documentation":"

The status of the notebook run.

" }, "cellOrder":{ "shape":"CellOrder", @@ -17894,7 +18420,7 @@ "members":{ "domainIdentifier":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain in which to list notebook runs.

", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which to list notebook runs.

", "location":"uri", "locationName":"domainIdentifier" }, @@ -17955,6 +18481,70 @@ } } }, + "ListNotebooksInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "owningProjectIdentifier" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which to list notebooks.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "owningProjectIdentifier":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebooks.

", + "location":"querystring", + "locationName":"owningProjectIdentifier" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of notebooks to return in a single call. When the number of notebooks exceeds the value of MaxResults, the response contains a NextToken value.

", + "location":"querystring", + "locationName":"maxResults" + }, + "sortOrder":{ + "shape":"SortOrder", + "documentation":"

The sort order for the results.

", + "location":"querystring", + "locationName":"sortOrder" + }, + "sortBy":{ + "shape":"SortKey", + "documentation":"

The field to sort the results by.

", + "location":"querystring", + "locationName":"sortBy" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The status to filter notebooks by.

", + "location":"querystring", + "locationName":"status" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

When the number of notebooks is greater than the default value for the MaxResults parameter, or if you explicitly specify a value for MaxResults that is less than the number of notebooks, the response includes a pagination token named NextToken. You can specify this NextToken value in a subsequent call to ListNotebooks to list the next set of notebooks.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListNotebooksOutput":{ + "type":"structure", + "members":{ + "items":{ + "shape":"NotebookSummaryList", + "documentation":"

The results of the ListNotebooks action.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

When the number of notebooks is greater than the default value for the MaxResults parameter, or if you explicitly specify a value for MaxResults that is less than the number of notebooks, the response includes a pagination token named NextToken. You can specify this NextToken value in a subsequent call to ListNotebooks to list the next set of notebooks.

" + } + } + }, "ListNotificationsInput":{ "type":"structure", "required":[ @@ -19363,7 +19953,7 @@ }, "NetworkAccessType":{ "type":"string", - "documentation":"

The network access type for a notebook run in Amazon DataZone.

", + "documentation":"

The network access type for a notebook run in Amazon SageMaker Unified Studio.

", "enum":[ "PUBLIC_INTERNET_ONLY", "VPC_ONLY" @@ -19390,7 +19980,7 @@ "documentation":"

The identifiers of the security groups for the notebook run. You can specify up to 5 security groups.

" } }, - "documentation":"

The network configuration for a notebook run in Amazon DataZone.

" + "documentation":"

The network configuration for a notebook run in Amazon SageMaker Unified Studio.

" }, "NotEqualToExpression":{ "type":"structure", @@ -19446,10 +20036,57 @@ }, "documentation":"

Specifies that a value might be not like the expression.

" }, + "NotebookError":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"NotebookErrorMessageString", + "documentation":"

The error message. The maximum length is 256 characters.

" + } + }, + "documentation":"

The error details of a notebook in Amazon SageMaker Unified Studio.

" + }, + "NotebookErrorMessageString":{ + "type":"string", + "max":256, + "min":0 + }, + "NotebookExportError":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"NotebookExportErrorMessageString", + "documentation":"

The error message. The maximum length is 256 characters.

" + } + }, + "documentation":"

The error details of a failed notebook export in Amazon SageMaker Unified Studio.

" + }, + "NotebookExportErrorMessageString":{ + "type":"string", + "max":256, + "min":0 + }, + "NotebookExportStatus":{ + "type":"string", + "documentation":"

The status of a notebook export in Amazon SageMaker Unified Studio.

", + "enum":[ + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ] + }, "NotebookId":{ "type":"string", "pattern":"[a-zA-Z0-9_-]{1,36}" }, + "NotebookName":{ + "type":"string", + "max":256, + "min":1, + "sensitive":true + }, "NotebookRunError":{ "type":"structure", "required":["message"], @@ -19459,7 +20096,7 @@ "documentation":"

The error message. The maximum length is 1024 characters.

" } }, - "documentation":"

The error details of a failed notebook run in Amazon DataZone.

" + "documentation":"

The error details of a failed notebook run in Amazon SageMaker Unified Studio.

" }, "NotebookRunErrorMessageString":{ "type":"string", @@ -19472,7 +20109,7 @@ }, "NotebookRunStatus":{ "type":"string", - "documentation":"

The status of a notebook run in Amazon DataZone.

", + "documentation":"

The status of a notebook run in Amazon SageMaker Unified Studio.

", "enum":[ "QUEUED", "STARTING", @@ -19499,7 +20136,7 @@ }, "domainId":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain.

" + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" }, "owningProjectId":{ "shape":"ProjectId", @@ -19523,34 +20160,106 @@ }, "createdAt":{ "shape":"CreatedAt", - "documentation":"

The timestamp of when the notebook run was created.

" + "documentation":"

The timestamp of when the notebook run was created.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who created the notebook run.

" + }, + "updatedAt":{ + "shape":"UpdatedAt", + "documentation":"

The timestamp of when the notebook run was last updated.

" + }, + "updatedBy":{ + "shape":"UpdatedBy", + "documentation":"

The identifier of the user who last updated the notebook run.

" + }, + "startedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook run started executing.

" + }, + "completedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook run completed.

" + } + }, + "documentation":"

The summary of a notebook run in Amazon SageMaker Unified Studio.

" + }, + "NotebookRunSummaryList":{ + "type":"list", + "member":{"shape":"NotebookRunSummary"} + }, + "NotebookS3Uri":{ + "type":"string", + "max":1024, + "min":6, + "pattern":"s3://.+", + "sensitive":true + }, + "NotebookStatus":{ + "type":"string", + "documentation":"

The status of a notebook in Amazon SageMaker Unified Studio.

", + "enum":[ + "ACTIVE", + "ARCHIVED" + ] + }, + "NotebookSummary":{ + "type":"structure", + "required":[ + "id", + "name", + "owningProjectId", + "domainId", + "status" + ], + "members":{ + "id":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The status of the notebook.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the notebook.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook was created.

" }, "createdBy":{ "shape":"CreatedBy", - "documentation":"

The identifier of the user who created the notebook run.

" + "documentation":"

The identifier of the user who created the notebook.

" }, "updatedAt":{ "shape":"UpdatedAt", - "documentation":"

The timestamp of when the notebook run was last updated.

" + "documentation":"

The timestamp of when the notebook was last updated.

" }, "updatedBy":{ "shape":"UpdatedBy", - "documentation":"

The identifier of the user who last updated the notebook run.

" - }, - "startedAt":{ - "shape":"Timestamp", - "documentation":"

The timestamp of when the notebook run started executing.

" - }, - "completedAt":{ - "shape":"Timestamp", - "documentation":"

The timestamp of when the notebook run completed.

" + "documentation":"

The identifier of the user who last updated the notebook.

" } }, - "documentation":"

The summary of a notebook run in Amazon DataZone.

" + "documentation":"

The summary of a notebook in Amazon SageMaker Unified Studio.

" }, - "NotebookRunSummaryList":{ + "NotebookSummaryList":{ "type":"list", - "member":{"shape":"NotebookRunSummary"} + "member":{"shape":"NotebookSummary"} }, "NotificationOutput":{ "type":"structure", @@ -19771,6 +20480,17 @@ "OTHER" ] }, + "OutputLocation":{ + "type":"structure", + "members":{ + "s3":{ + "shape":"S3Destination", + "documentation":"

The Amazon Simple Storage Service destination for the notebook export.

" + } + }, + "documentation":"

The output location for a notebook export in Amazon SageMaker Unified Studio.

", + "union":true + }, "OverallDeploymentStatus":{ "type":"string", "enum":[ @@ -19886,7 +20606,7 @@ "documentation":"

The package specification content for the notebook run environment. The maximum length is 10240 characters.

" } }, - "documentation":"

The package configuration for a notebook run environment in Amazon DataZone.

" + "documentation":"

The package configuration for a notebook run environment in Amazon SageMaker Unified Studio.

" }, "PackageConfigPackageSpecificationString":{ "type":"string", @@ -19895,7 +20615,7 @@ }, "PackageManager":{ "type":"string", - "documentation":"

The package manager for a notebook run environment in Amazon DataZone.

", + "documentation":"

The package manager for a notebook run environment in Amazon SageMaker Unified Studio.

", "enum":["UV"] }, "PaginationToken":{ @@ -22007,6 +22727,16 @@ "min":0, "pattern":"[a-zA-Z0-9\\-]+" }, + "S3Destination":{ + "type":"structure", + "members":{ + "uri":{ + "shape":"NotebookS3Uri", + "documentation":"

The Amazon Simple Storage Service URI of the exported notebook.

" + } + }, + "documentation":"

The Amazon Simple Storage Service destination for a notebook export in Amazon SageMaker Unified Studio.

" + }, "S3Location":{ "type":"string", "max":1024, @@ -22102,6 +22832,13 @@ }, "documentation":"

The Amazon S3 properties patch of a connection.

" }, + "S3SourceLocation":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"s3://.+", + "sensitive":true + }, "S3Uri":{ "type":"string", "max":2048, @@ -22743,6 +23480,17 @@ "DESCENDING" ] }, + "SourceLocation":{ + "type":"structure", + "members":{ + "s3":{ + "shape":"S3SourceLocation", + "documentation":"

The Amazon Simple Storage Service URI of the notebook source file.

" + } + }, + "documentation":"

The source location for a notebook import in Amazon SageMaker Unified Studio.

", + "union":true + }, "SparkEmrPropertiesInput":{ "type":"structure", "members":{ @@ -23280,6 +24028,164 @@ } } }, + "StartNotebookExportInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "notebookIdentifier", + "owningProjectIdentifier", + "fileFormat" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which to export the notebook.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "notebookIdentifier":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook to export.

" + }, + "owningProjectIdentifier":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "fileFormat":{ + "shape":"FileFormat", + "documentation":"

The file format for the notebook export. Valid values are PDF and IPYNB.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request. This field is automatically populated if not provided.

", + "idempotencyToken":true + } + } + }, + "StartNotebookExportOutput":{ + "type":"structure", + "required":[ + "id", + "domainId", + "owningProjectId", + "notebookId", + "fileFormat", + "status" + ], + "members":{ + "id":{ + "shape":"ExportId", + "documentation":"

The identifier of the notebook export.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "notebookId":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

" + }, + "fileFormat":{ + "shape":"FileFormat", + "documentation":"

The file format of the notebook export.

" + }, + "status":{ + "shape":"NotebookExportStatus", + "documentation":"

The status of the notebook export.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook export was started.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who started the notebook export.

" + } + } + }, + "StartNotebookImportInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "owningProjectIdentifier", + "sourceLocation", + "name" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which to import the notebook.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "owningProjectIdentifier":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that will own the imported notebook.

" + }, + "sourceLocation":{ + "shape":"SourceLocation", + "documentation":"

The source location of the notebook to import. This specifies the Amazon Simple Storage Service URI of the notebook file.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the imported notebook. The name must be between 1 and 256 characters.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the imported notebook.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request. This field is automatically populated if not provided.

", + "idempotencyToken":true + } + } + }, + "StartNotebookImportOutput":{ + "type":"structure", + "members":{ + "notebookId":{ + "shape":"NotebookId", + "documentation":"

The identifier of the imported notebook.

" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The status of the notebook import.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the imported notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the imported notebook.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the imported notebook.

" + }, + "sourceLocation":{ + "shape":"SourceLocation", + "documentation":"

The source location from which the notebook was imported.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook import was started.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who started the notebook import.

" + } + } + }, "StartNotebookRunInput":{ "type":"structure", "required":[ @@ -23290,7 +24196,7 @@ "members":{ "domainIdentifier":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain in which the notebook run is started.

", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook run is started.

", "location":"uri", "locationName":"domainIdentifier" }, @@ -23353,7 +24259,7 @@ }, "domainId":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain.

" + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" }, "owningProjectId":{ "shape":"ProjectId", @@ -23453,7 +24359,7 @@ "members":{ "domainIdentifier":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain in which the notebook run is stopped.

", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook run is stopped.

", "location":"uri", "locationName":"domainIdentifier" }, @@ -23485,7 +24391,7 @@ }, "domainId":{ "shape":"DomainId", - "documentation":"

The identifier of the Amazon DataZone domain.

" + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" }, "owningProjectId":{ "shape":"ProjectId", @@ -23509,7 +24415,7 @@ "documentation":"

The ARN of the KMS key used for encryption.

" } }, - "documentation":"

The storage configuration for a notebook run in Amazon DataZone.

" + "documentation":"

The storage configuration for a notebook run in Amazon SageMaker Unified Studio.

" }, "String":{"type":"string"}, "StringList":{ @@ -24551,7 +25457,7 @@ "documentation":"

The timeout for the notebook run, in minutes. The minimum value is 60 minutes (1 hour), the maximum value is 1440 minutes (24 hours), and the default value is 720 minutes (12 hours).

" } }, - "documentation":"

The timeout configuration for a notebook run in Amazon DataZone.

" + "documentation":"

The timeout configuration for a notebook run in Amazon SageMaker Unified Studio.

" }, "TimeoutConfigRunTimeoutInMinutesInteger":{ "type":"integer", @@ -24695,11 +25601,11 @@ "documentation":"

The name of the trigger source.

" } }, - "documentation":"

The source that triggered a notebook run in Amazon DataZone.

" + "documentation":"

The source that triggered a notebook run in Amazon SageMaker Unified Studio.

" }, "TriggerSourceType":{ "type":"string", - "documentation":"

The type of trigger source for a notebook run in Amazon DataZone.

", + "documentation":"

The type of trigger source for a notebook run in Amazon SageMaker Unified Studio.

", "enum":[ "MANUAL", "SCHEDULED", @@ -26005,6 +26911,149 @@ } } }, + "UpdateNotebookInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "identifier" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain in which the notebook exists.

", + "location":"uri", + "locationName":"domainIdentifier" + }, + "identifier":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook to update.

", + "location":"uri", + "locationName":"identifier" + }, + "description":{ + "shape":"Description", + "documentation":"

The updated description of the notebook.

" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The updated status of the notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The updated name of the notebook.

" + }, + "cellOrder":{ + "shape":"CellOrder", + "documentation":"

The updated ordered list of cells in the notebook.

" + }, + "metadata":{ + "shape":"Metadata", + "documentation":"

The updated metadata for the notebook, specified as key-value pairs.

" + }, + "parameters":{ + "shape":"Parameters", + "documentation":"

The updated sensitive parameters for the notebook, specified as key-value pairs.

" + }, + "environmentConfiguration":{ + "shape":"EnvironmentConfig", + "documentation":"

The updated environment configuration for the notebook.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request. This field is automatically populated if not provided.

", + "idempotencyToken":true + } + } + }, + "UpdateNotebookOutput":{ + "type":"structure", + "required":[ + "id", + "name", + "owningProjectId", + "domainId", + "cellOrder", + "status" + ], + "members":{ + "id":{ + "shape":"NotebookId", + "documentation":"

The identifier of the notebook.

" + }, + "name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook.

" + }, + "owningProjectId":{ + "shape":"ProjectId", + "documentation":"

The identifier of the project that owns the notebook.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The identifier of the Amazon SageMaker Unified Studio domain.

" + }, + "cellOrder":{ + "shape":"CellOrder", + "documentation":"

The ordered list of cells in the notebook.

" + }, + "status":{ + "shape":"NotebookStatus", + "documentation":"

The status of the notebook.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the notebook.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The timestamp of when the notebook was created.

" + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

The identifier of the user who created the notebook.

" + }, + "updatedAt":{ + "shape":"UpdatedAt", + "documentation":"

The timestamp of when the notebook was last updated.

" + }, + "updatedBy":{ + "shape":"UpdatedBy", + "documentation":"

The identifier of the user who last updated the notebook.

" + }, + "lockedBy":{ + "shape":"String", + "documentation":"

The identifier of the user who locked the notebook.

" + }, + "lockedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook was locked.

" + }, + "lockExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the notebook lock expires.

" + }, + "computeId":{ + "shape":"ComputeId", + "documentation":"

The identifier of the compute associated with the notebook.

" + }, + "metadata":{ + "shape":"Metadata", + "documentation":"

The metadata of the notebook.

" + }, + "parameters":{ + "shape":"Parameters", + "documentation":"

The sensitive parameters of the notebook.

" + }, + "environmentConfiguration":{ + "shape":"EnvironmentConfig", + "documentation":"

The environment configuration of the notebook.

" + }, + "error":{ + "shape":"NotebookError", + "documentation":"

The error details if the notebook is in a failed state.

" + } + } + }, "UpdateProjectInput":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/dms/2016-01-01/waiters-2.json b/awscli/botocore/data/dms/2016-01-01/waiters-2.json index 73fba51002da..74c99e50819c 100644 --- a/awscli/botocore/data/dms/2016-01-01/waiters-2.json +++ b/awscli/botocore/data/dms/2016-01-01/waiters-2.json @@ -325,6 +325,186 @@ "description":"Wait until DMS replication task is deleted.", "maxAttempts":60, "operation":"DescribeReplicationTasks" + }, + "MetadataModelImported":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":60, + "description":"Wait until DMS metadata model is imported.", + "maxAttempts":30, + "operation":"DescribeMetadataModelImports" + }, + "MetadataModelAssessed":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":30, + "description":"Wait until DMS metadata model is assessed.", + "maxAttempts":360, + "operation":"DescribeMetadataModelAssessments" + }, + "MetadataModelConverted":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":30, + "description":"Wait until DMS metadata model is converted.", + "maxAttempts":240, + "operation":"DescribeMetadataModelConversions" + }, + "MetadataModelExportedAsScript":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":20, + "description":"Wait until DMS metadata model is exported as script.", + "maxAttempts":90, + "operation":"DescribeMetadataModelExportsAsScript" + }, + "MetadataModelExportedToTarget":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":20, + "description":"Wait until DMS metadata model is exported to target.", + "maxAttempts":90, + "operation":"DescribeMetadataModelExportsToTarget" + }, + "MetadataModelCreated":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until DMS metadata model is created.", + "maxAttempts":40, + "operation":"DescribeMetadataModelCreations" + }, + "ExtensionPackAssociated":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"SUCCESS", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":10, + "description":"Wait until DMS extension pack is associated.", + "maxAttempts":60, + "operation":"DescribeExtensionPackAssociations" + }, + "MetadataModelConversionCancelled":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"CANCELED", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":10, + "description":"Wait until DMS metadata model conversion is cancelled.", + "maxAttempts":180, + "operation":"DescribeMetadataModelConversions" + }, + "MetadataModelCreationCancelled":{ + "acceptors":[ + { + "argument":"Requests[].Status", + "expected":"CANCELED", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"Requests[].Status", + "expected":"FAILED", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":10, + "description":"Wait until DMS metadata model creation is cancelled.", + "maxAttempts":180, + "operation":"DescribeMetadataModelCreations" } } } diff --git a/awscli/botocore/data/glue/2017-03-31/service-2.json b/awscli/botocore/data/glue/2017-03-31/service-2.json index 4ce6d628a430..3b23628469a6 100644 --- a/awscli/botocore/data/glue/2017-03-31/service-2.json +++ b/awscli/botocore/data/glue/2017-03-31/service-2.json @@ -14512,6 +14512,10 @@ "IncludeRoot":{ "shape":"NullableBoolean", "documentation":"

Whether to list the default catalog in the account and region in the response. Defaults to false. When true and ParentCatalogId = NULL | Amazon Web Services Account ID, all catalogs and the default catalog are enumerated in the response.

When the ParentCatalogId is not equal to null, and this attribute is passed as false or true, an InvalidInputException is thrown.

" + }, + "HasDatabases":{ + "shape":"NullableBoolean", + "documentation":"

When true, the response only includes catalogs that can contain databases. Some catalogs are organizational containers that hold only other catalogs, not databases. When this parameter is set to true, those container-only catalogs are excluded, and only catalogs capable of containing databases are returned. Defaults to false.

" } } }, @@ -22312,8 +22316,7 @@ }, "PartitionIndexList":{ "type":"list", - "member":{"shape":"PartitionIndex"}, - "max":3 + "member":{"shape":"PartitionIndex"} }, "PartitionIndexStatus":{ "type":"string", diff --git a/awscli/botocore/data/grafana/2020-08-18/service-2.json b/awscli/botocore/data/grafana/2020-08-18/service-2.json index 13d8b7ccb4d8..9bc5f8b6aeba 100644 --- a/awscli/botocore/data/grafana/2020-08-18/service-2.json +++ b/awscli/botocore/data/grafana/2020-08-18/service-2.json @@ -826,6 +826,10 @@ "shape":"GrafanaVersion", "documentation":"

Specifies the version of Grafana to support in the new workspace. If not specified, defaults to the latest version (for example, 10.4).

To get a list of supported versions, use the ListVersions operation.

" }, + "ipAddressType":{ + "shape":"IPAddressType", + "documentation":"

Specifies whether the workspace supports IPv4 only, or IPv4 and IPv6. Valid values are IPv4 and DualStack. For more information about IP address types, see Network access control.

" + }, "kmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The ID or ARN of the Key Management Service key to use for encrypting workspace data.

" @@ -1245,6 +1249,13 @@ "type":"list", "member":{"shape":"GrafanaVersion"} }, + "IPAddressType":{ + "type":"string", + "enum":[ + "IPv4", + "DualStack" + ] + }, "IamRoleArn":{ "type":"string", "max":2048, @@ -2277,6 +2288,10 @@ "removeNetworkAccessConfiguration":{ "shape":"Boolean", "documentation":"

Whether to remove the network access configuration from the workspace.

Setting this to true and providing a networkAccessControl to set will return an error.

If you remove this configuration by setting this to true, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required.

" + }, + "ipAddressType":{ + "shape":"IPAddressType", + "documentation":"

Specifies whether the workspace supports IPv4 only, or IPv4 and IPv6. Valid values are IPv4 and DualStack. For more information about IP address types, see Network access control.

" } } }, @@ -2517,6 +2532,10 @@ "shape":"GrafanaToken", "documentation":"

The token that ties this workspace to a Grafana Labs account. For more information, see Link your account with Grafana Labs.

" }, + "ipAddressType":{ + "shape":"IPAddressType", + "documentation":"

The type of IP addresses supported for connection to the workspace. Valid values are IPv4 and DualStack.

" + }, "kmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The ID or ARN of the Key Management Service key used for encrypting workspace data.

" diff --git a/awscli/botocore/data/mgn/2020-02-26/service-2.json b/awscli/botocore/data/mgn/2020-02-26/service-2.json index 7009b493b19b..54183febddc7 100644 --- a/awscli/botocore/data/mgn/2020-02-26/service-2.json +++ b/awscli/botocore/data/mgn/2020-02-26/service-2.json @@ -5832,6 +5832,10 @@ "shape":"NetworkMigrationCodeGenerationArtifacts", "documentation":"

A list of artifacts generated for this segment.

" }, + "referencedSegments":{ + "shape":"referencedSegmentsList", + "documentation":"

A list of other segments that this segment depends on or references.

" + }, "createdAt":{ "shape":"Timestamp", "documentation":"

The timestamp when the segment was created.

" @@ -7121,7 +7125,8 @@ "type":"string", "enum":[ "MAP", - "SKIP" + "SKIP", + "MAP_DHCP" ] }, "SegmentConstructDescription":{ diff --git a/awscli/botocore/data/qconnect/2020-10-19/paginators-1.json b/awscli/botocore/data/qconnect/2020-10-19/paginators-1.json index 4cd8e1cd1e1f..10f07b282225 100644 --- a/awscli/botocore/data/qconnect/2020-10-19/paginators-1.json +++ b/awscli/botocore/data/qconnect/2020-10-19/paginators-1.json @@ -131,6 +131,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "spans" + }, + "ListModels": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "modelSummaries" } } } diff --git a/awscli/botocore/data/qconnect/2020-10-19/service-2.json b/awscli/botocore/data/qconnect/2020-10-19/service-2.json index b3a50d01bb83..3c56b389d462 100644 --- a/awscli/botocore/data/qconnect/2020-10-19/service-2.json +++ b/awscli/botocore/data/qconnect/2020-10-19/service-2.json @@ -673,7 +673,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Gets an Amazon Q in Connect AI Agent.

" + "documentation":"

Gets an Amazon Q in Connect AI Agent.

", + "readonly":true }, "GetAIGuardrail":{ "name":"GetAIGuardrail", @@ -691,7 +692,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Gets the Amazon Q in Connect AI Guardrail.

" + "documentation":"

Gets the Amazon Q in Connect AI Guardrail.

", + "readonly":true }, "GetAIPrompt":{ "name":"GetAIPrompt", @@ -709,7 +711,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Gets and Amazon Q in Connect AI Prompt.

" + "documentation":"

Gets and Amazon Q in Connect AI Prompt.

", + "readonly":true }, "GetAssistant":{ "name":"GetAssistant", @@ -726,7 +729,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves information about an assistant.

" + "documentation":"

Retrieves information about an assistant.

", + "readonly":true }, "GetAssistantAssociation":{ "name":"GetAssistantAssociation", @@ -743,7 +747,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves information about an assistant association.

" + "documentation":"

Retrieves information about an assistant association.

", + "readonly":true }, "GetContent":{ "name":"GetContent", @@ -760,7 +765,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves content, including a pre-signed URL to download the content.

" + "documentation":"

Retrieves content, including a pre-signed URL to download the content.

", + "readonly":true }, "GetContentAssociation":{ "name":"GetContentAssociation", @@ -777,7 +783,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns the content association.

For more information about content associations--what they are and when they are used--see Integrate Amazon Q in Connect with step-by-step guides in the Amazon Connect Administrator Guide.

" + "documentation":"

Returns the content association.

For more information about content associations--what they are and when they are used--see Integrate Amazon Q in Connect with step-by-step guides in the Amazon Connect Administrator Guide.

", + "readonly":true }, "GetContentSummary":{ "name":"GetContentSummary", @@ -794,7 +801,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves summary information about the content.

" + "documentation":"

Retrieves summary information about the content.

", + "readonly":true }, "GetImportJob":{ "name":"GetImportJob", @@ -810,7 +818,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves the started import job.

" + "documentation":"

Retrieves the started import job.

", + "readonly":true }, "GetKnowledgeBase":{ "name":"GetKnowledgeBase", @@ -827,7 +836,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves information about the knowledge base.

" + "documentation":"

Retrieves information about the knowledge base.

", + "readonly":true }, "GetMessageTemplate":{ "name":"GetMessageTemplate", @@ -845,7 +855,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves the Amazon Q in Connect message template. The message template identifier can contain an optional qualifier, for example, <message-template-id>:<qualifier>, which is either an actual version number or an Amazon Q Connect managed qualifier $ACTIVE_VERSION | $LATEST. If it is not supplied, then $LATEST is assumed implicitly.

" + "documentation":"

Retrieves the Amazon Q in Connect message template. The message template identifier can contain an optional qualifier, for example, <message-template-id>:<qualifier>, which is either an actual version number or an Amazon Q Connect managed qualifier $ACTIVE_VERSION | $LATEST. If it is not supplied, then $LATEST is assumed implicitly.

", + "readonly":true }, "GetNextMessage":{ "name":"GetNextMessage", @@ -862,7 +873,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"UnprocessableContentException"} ], - "documentation":"

Retrieves next message on an Amazon Q in Connect session.

" + "documentation":"

Retrieves next message on an Amazon Q in Connect session.

", + "readonly":true }, "GetQuickResponse":{ "name":"GetQuickResponse", @@ -879,7 +891,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves the quick response.

" + "documentation":"

Retrieves the quick response.

", + "readonly":true }, "GetRecommendations":{ "name":"GetRecommendations", @@ -897,7 +910,8 @@ ], "documentation":"

This API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024, you will need to create a new Assistant in the Amazon Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.

Retrieves recommendations for the specified session. To avoid retrieving the same recommendations in subsequent calls, use NotifyRecommendationsReceived. This API supports long-polling behavior with the waitTimeSeconds parameter. Short poll is the default behavior and only returns recommendations already available. To perform a manual query against an assistant, use QueryAssistant.

", "deprecated":true, - "deprecatedMessage":"GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications." + "deprecatedMessage":"GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.", + "readonly":true }, "GetSession":{ "name":"GetSession", @@ -914,7 +928,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves information for a specified session.

" + "documentation":"

Retrieves information for a specified session.

", + "readonly":true }, "ListAIAgentVersions":{ "name":"ListAIAgentVersions", @@ -932,7 +947,8 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

List AI Agent versions.

" + "documentation":"

List AI Agent versions.

", + "readonly":true }, "ListAIAgents":{ "name":"ListAIAgents", @@ -950,7 +966,8 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists AI Agents.

" + "documentation":"

Lists AI Agents.

", + "readonly":true }, "ListAIGuardrailVersions":{ "name":"ListAIGuardrailVersions", @@ -968,7 +985,8 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists AI Guardrail versions.

" + "documentation":"

Lists AI Guardrail versions.

", + "readonly":true }, "ListAIGuardrails":{ "name":"ListAIGuardrails", @@ -986,7 +1004,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists the AI Guardrails available on the Amazon Q in Connect assistant.

" + "documentation":"

Lists the AI Guardrails available on the Amazon Q in Connect assistant.

", + "readonly":true }, "ListAIPromptVersions":{ "name":"ListAIPromptVersions", @@ -1004,7 +1023,8 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists AI Prompt versions.

" + "documentation":"

Lists AI Prompt versions.

", + "readonly":true }, "ListAIPrompts":{ "name":"ListAIPrompts", @@ -1022,7 +1042,8 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the AI Prompts available on the Amazon Q in Connect assistant.

" + "documentation":"

Lists the AI Prompts available on the Amazon Q in Connect assistant.

", + "readonly":true }, "ListAssistantAssociations":{ "name":"ListAssistantAssociations", @@ -1038,7 +1059,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists information about assistant associations.

" + "documentation":"

Lists information about assistant associations.

", + "readonly":true }, "ListAssistants":{ "name":"ListAssistants", @@ -1054,7 +1076,8 @@ {"shape":"UnauthorizedException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists information about assistants.

" + "documentation":"

Lists information about assistants.

", + "readonly":true }, "ListContentAssociations":{ "name":"ListContentAssociations", @@ -1071,7 +1094,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the content associations.

For more information about content associations--what they are and when they are used--see Integrate Amazon Q in Connect with step-by-step guides in the Amazon Connect Administrator Guide.

" + "documentation":"

Lists the content associations.

For more information about content associations--what they are and when they are used--see Integrate Amazon Q in Connect with step-by-step guides in the Amazon Connect Administrator Guide.

", + "readonly":true }, "ListContents":{ "name":"ListContents", @@ -1087,7 +1111,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the content.

" + "documentation":"

Lists the content.

", + "readonly":true }, "ListImportJobs":{ "name":"ListImportJobs", @@ -1102,7 +1127,8 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists information about import jobs.

" + "documentation":"

Lists information about import jobs.

", + "readonly":true }, "ListKnowledgeBases":{ "name":"ListKnowledgeBases", @@ -1117,7 +1143,8 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the knowledge bases.

" + "documentation":"

Lists the knowledge bases.

", + "readonly":true }, "ListMessageTemplateVersions":{ "name":"ListMessageTemplateVersions", @@ -1134,7 +1161,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists all the available versions for the specified Amazon Q in Connect message template.

" + "documentation":"

Lists all the available versions for the specified Amazon Q in Connect message template.

", + "readonly":true }, "ListMessageTemplates":{ "name":"ListMessageTemplates", @@ -1151,7 +1179,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists all the available Amazon Q in Connect message templates for the specified knowledge base.

" + "documentation":"

Lists all the available Amazon Q in Connect message templates for the specified knowledge base.

", + "readonly":true }, "ListMessages":{ "name":"ListMessages", @@ -1167,7 +1196,28 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists messages on an Amazon Q in Connect session.

" + "documentation":"

Lists messages on an Amazon Q in Connect session.

", + "readonly":true + }, + "ListModels":{ + "name":"ListModels", + "http":{ + "method":"GET", + "requestUri":"/assistants/{assistantId}/models", + "responseCode":200 + }, + "input":{"shape":"ListModelsRequest"}, + "output":{"shape":"ListModelsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the models available to an Amazon Q in Connect assistant in the assistant's Amazon Web Services Region. The available models are determined by the region of the specified assistant.

", + "readonly":true }, "ListQuickResponses":{ "name":"ListQuickResponses", @@ -1183,7 +1233,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists information about quick response.

" + "documentation":"

Lists information about quick response.

", + "readonly":true }, "ListSpans":{ "name":"ListSpans", @@ -1199,7 +1250,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves AI agent execution traces for a session, providing granular visibility into agent orchestration flows, LLM interactions, and tool invocations.

" + "documentation":"

Retrieves AI agent execution traces for a session, providing granular visibility into agent orchestration flows, LLM interactions, and tool invocations.

", + "readonly":true }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -1213,7 +1265,8 @@ "errors":[ {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the tags for the specified resource.

" + "documentation":"

Lists the tags for the specified resource.

", + "readonly":true }, "NotifyRecommendationsReceived":{ "name":"NotifyRecommendationsReceived", @@ -1266,7 +1319,8 @@ ], "documentation":"

This API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024, you will need to create a new Assistant in the Amazon Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.

Performs a manual search against the specified assistant. To retrieve recommendations for an assistant, use GetRecommendations.

", "deprecated":true, - "deprecatedMessage":"QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications." + "deprecatedMessage":"QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.", + "readonly":true }, "RemoveAssistantAIAgent":{ "name":"RemoveAssistantAIAgent", @@ -1338,7 +1392,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves content from knowledge sources based on a query.

" + "documentation":"

Retrieves content from knowledge sources based on a query.

", + "readonly":true }, "SearchContent":{ "name":"SearchContent", @@ -1355,7 +1410,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Searches for content in a specified knowledge base. Can be used to get a specific content resource by its name.

" + "documentation":"

Searches for content in a specified knowledge base. Can be used to get a specific content resource by its name.

", + "readonly":true }, "SearchMessageTemplates":{ "name":"SearchMessageTemplates", @@ -1373,7 +1429,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Searches for Amazon Q in Connect message templates in the specified knowledge base.

" + "documentation":"

Searches for Amazon Q in Connect message templates in the specified knowledge base.

", + "readonly":true }, "SearchQuickResponses":{ "name":"SearchQuickResponses", @@ -1391,7 +1448,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Searches existing Amazon Q in Connect quick responses in an Amazon Q in Connect knowledge base.

" + "documentation":"

Searches existing Amazon Q in Connect quick responses in an Amazon Q in Connect knowledge base.

", + "readonly":true }, "SearchSessions":{ "name":"SearchSessions", @@ -1408,7 +1466,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Searches for sessions.

" + "documentation":"

Searches for sessions.

", + "readonly":true }, "SendMessage":{ "name":"SendMessage", @@ -2419,6 +2478,10 @@ "CASE_SUMMARIZATION" ] }, + "AIPromptTypeList":{ + "type":"list", + "member":{"shape":"AIPromptType"} + }, "AIPromptVersionSummariesList":{ "type":"list", "member":{"shape":"AIPromptVersionSummary"} @@ -4425,6 +4488,14 @@ } } }, + "CrossRegionStatus":{ + "type":"string", + "enum":[ + "NONE", + "REGIONAL", + "GLOBAL" + ] + }, "CustomAttributes":{ "type":"map", "key":{"shape":"MessageTemplateAttributeKey"}, @@ -7702,6 +7773,56 @@ } } }, + "ListModelsRequest":{ + "type":"structure", + "required":["assistantId"], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "documentation":"

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. The assistant's region determines which models are available.

", + "location":"uri", + "locationName":"assistantId" + }, + "aiPromptType":{ + "shape":"AIPromptType", + "documentation":"

The type of the AI Prompt to filter models by. When specified, only models that support the given AI Prompt type are returned.

", + "location":"querystring", + "locationName":"aiPromptType" + }, + "modelLifecycle":{ + "shape":"ModelLifecycle", + "documentation":"

The lifecycle status of models to filter by. When specified, only models with the given lifecycle status are returned.

", + "location":"querystring", + "locationName":"modelLifecycle" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListModelsResponse":{ + "type":"structure", + "required":["modelSummaries"], + "members":{ + "modelSummaries":{ + "shape":"ModelSummaryList", + "documentation":"

The summaries of the models available to the assistant.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + } + } + }, "ListQuickResponsesRequest":{ "type":"structure", "required":["knowledgeBaseId"], @@ -8547,6 +8668,69 @@ "TOOL_USE_RESULT" ] }, + "ModelDisplayName":{ + "type":"string", + "max":256, + "min":1 + }, + "ModelId":{ + "type":"string", + "max":256, + "min":1 + }, + "ModelLifecycle":{ + "type":"string", + "enum":[ + "ACTIVE", + "LEGACY" + ] + }, + "ModelSummary":{ + "type":"structure", + "required":[ + "modelId", + "displayName" + ], + "members":{ + "modelId":{ + "shape":"ModelId", + "documentation":"

The identifier of the model.

" + }, + "displayName":{ + "shape":"ModelDisplayName", + "documentation":"

The display name of the model.

" + }, + "crossRegionStatus":{ + "shape":"CrossRegionStatus", + "documentation":"

The cross-region availability status of the model. NONE indicates the model is only available in a single region, REGIONAL indicates the model is available through regional inference, and GLOBAL indicates the model is available through global cross-region inference.

" + }, + "supportsPromptCaching":{ + "shape":"Boolean", + "documentation":"

Whether the model supports prompt caching.

" + }, + "supportedAIPromptTypes":{ + "shape":"AIPromptTypeList", + "documentation":"

The list of AI Prompt types that the model supports.

" + }, + "modelLifecycle":{ + "shape":"ModelLifecycle", + "documentation":"

The current lifecycle of the model. ACTIVE indicates the model is recommended for use and LEGACY indicates the model is still usable but is deprecated.

" + }, + "legacyTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the model lifecycle will transition from ACTIVE to LEGACY.

" + }, + "endOfLifeTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the model will reach end of life and no longer be available for use.

" + } + }, + "documentation":"

The summary of a model available to an Amazon Q in Connect assistant.

" + }, + "ModelSummaryList":{ + "type":"list", + "member":{"shape":"ModelSummary"} + }, "Name":{ "type":"string", "max":255, From 8dfaa5a19377b0de440653be1237d7bb0b7fbfc4 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 14 May 2026 18:06:32 +0000 Subject: [PATCH 08/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 3ac35cc51291..8dbcb30510b9 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -10258,15 +10258,19 @@ "endpoints" : { "af-south-1" : { }, "ap-east-1" : { }, + "ap-east-2" : { }, "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-6" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "emr-serverless-fips.ca-central-1.amazonaws.com", @@ -10320,6 +10324,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -40687,6 +40692,11 @@ "eusc-de-east-1" : { } } }, + "polly" : { + "endpoints" : { + "eusc-de-east-1" : { } + } + }, "portal.sso" : { "endpoints" : { "eusc-de-east-1" : { } From 07086b9d6d4981218ebdd6f3199384fd3774aa5a Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 14 May 2026 18:08:32 +0000 Subject: [PATCH 09/73] Bump version to 2.34.47 --- .changes/2.34.47.json | 42 +++++++++++++++++++ .../api-change-bedrock-39623.json | 5 --- .../api-change-cloudfront-24590.json | 5 --- .../api-change-datazone-48281.json | 5 --- .../next-release/api-change-dms-33397.json | 5 --- .../next-release/api-change-glue-64686.json | 5 --- .../api-change-grafana-29415.json | 5 --- .../next-release/api-change-mgn-87937.json | 5 --- .../api-change-qconnect-52820.json | 5 --- CHANGELOG.rst | 13 ++++++ awscli/__init__.py | 2 +- configure | 14 +++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 14 files changed, 65 insertions(+), 50 deletions(-) create mode 100644 .changes/2.34.47.json delete mode 100644 .changes/next-release/api-change-bedrock-39623.json delete mode 100644 .changes/next-release/api-change-cloudfront-24590.json delete mode 100644 .changes/next-release/api-change-datazone-48281.json delete mode 100644 .changes/next-release/api-change-dms-33397.json delete mode 100644 .changes/next-release/api-change-glue-64686.json delete mode 100644 .changes/next-release/api-change-grafana-29415.json delete mode 100644 .changes/next-release/api-change-mgn-87937.json delete mode 100644 .changes/next-release/api-change-qconnect-52820.json diff --git a/.changes/2.34.47.json b/.changes/2.34.47.json new file mode 100644 index 000000000000..dced67e0bb2e --- /dev/null +++ b/.changes/2.34.47.json @@ -0,0 +1,42 @@ +[ + { + "category": "``bedrock``", + "description": "Advanced Prompt Optimization (AdvPO) allows you to optimize and migrate your prompts for any model on Bedrock by automatically evaluating responses and rewriting prompts to improve performance. This release provides a programmatic way to create, get, list, stop, and delete AdvPO jobs.", + "type": "api-change" + }, + { + "category": "``cloudfront``", + "description": "Adding a new boolean for OCSP Revocations in Viewer mTLS Create and Update APIs, and adding a new 'Passthrough' option for TrustStore modes", + "type": "api-change" + }, + { + "category": "``grafana``", + "description": "Adds support for dual-stack (IPv4 and IPv6) connectivity to Amazon Managed Grafana workspaces. Customers can configure the ipAddressType parameter when creating or updating a workspace to choose between IPv4-only or dual-stack (IPv4 and IPv6) access.", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "Release --has-databases parameter for AWS Glue get-catalogs API, which filters catalog responses to include only those capable of containing databases, excluding parent catalogs that hold only other catalogs. Remove model-level validation on partition index list size for AWS Glue tables.", + "type": "api-change" + }, + { + "category": "``datazone``", + "description": "Adds support for SageMaker Unified Studio notebook operations, including notebook import and export", + "type": "api-change" + }, + { + "category": "``mgn``", + "description": "Introducing new option for security groups mapping - with MAP-DHCP the service translates security rules from your source environment with DHCP compatibility.", + "type": "api-change" + }, + { + "category": "``dms``", + "description": "Add 9 SDK waiters for DMS Schema Conversion async operations. Eliminates manual polling for import, assessment, conversion, export, and creation jobs.", + "type": "api-change" + }, + { + "category": "``qconnect``", + "description": "ListModels is an API that returns the available AI models for a Connect Assistant based on its region and AI prompt type.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-bedrock-39623.json b/.changes/next-release/api-change-bedrock-39623.json deleted file mode 100644 index c6805c728d5e..000000000000 --- a/.changes/next-release/api-change-bedrock-39623.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock``", - "description": "Advanced Prompt Optimization (AdvPO) allows you to optimize and migrate your prompts for any model on Bedrock by automatically evaluating responses and rewriting prompts to improve performance. This release provides a programmatic way to create, get, list, stop, and delete AdvPO jobs." -} diff --git a/.changes/next-release/api-change-cloudfront-24590.json b/.changes/next-release/api-change-cloudfront-24590.json deleted file mode 100644 index fe9c7e90fa1e..000000000000 --- a/.changes/next-release/api-change-cloudfront-24590.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cloudfront``", - "description": "Adding a new boolean for OCSP Revocations in Viewer mTLS Create and Update APIs, and adding a new 'Passthrough' option for TrustStore modes" -} diff --git a/.changes/next-release/api-change-datazone-48281.json b/.changes/next-release/api-change-datazone-48281.json deleted file mode 100644 index ccdff539b512..000000000000 --- a/.changes/next-release/api-change-datazone-48281.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``datazone``", - "description": "Adds support for SageMaker Unified Studio notebook operations, including notebook import and export" -} diff --git a/.changes/next-release/api-change-dms-33397.json b/.changes/next-release/api-change-dms-33397.json deleted file mode 100644 index 47ba37cc1425..000000000000 --- a/.changes/next-release/api-change-dms-33397.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``dms``", - "description": "Add 9 SDK waiters for DMS Schema Conversion async operations. Eliminates manual polling for import, assessment, conversion, export, and creation jobs." -} diff --git a/.changes/next-release/api-change-glue-64686.json b/.changes/next-release/api-change-glue-64686.json deleted file mode 100644 index 28a696fccac1..000000000000 --- a/.changes/next-release/api-change-glue-64686.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``glue``", - "description": "Release --has-databases parameter for AWS Glue get-catalogs API, which filters catalog responses to include only those capable of containing databases, excluding parent catalogs that hold only other catalogs. Remove model-level validation on partition index list size for AWS Glue tables." -} diff --git a/.changes/next-release/api-change-grafana-29415.json b/.changes/next-release/api-change-grafana-29415.json deleted file mode 100644 index 486d67b77101..000000000000 --- a/.changes/next-release/api-change-grafana-29415.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``grafana``", - "description": "Adds support for dual-stack (IPv4 and IPv6) connectivity to Amazon Managed Grafana workspaces. Customers can configure the ipAddressType parameter when creating or updating a workspace to choose between IPv4-only or dual-stack (IPv4 and IPv6) access." -} diff --git a/.changes/next-release/api-change-mgn-87937.json b/.changes/next-release/api-change-mgn-87937.json deleted file mode 100644 index a84dca8daaf1..000000000000 --- a/.changes/next-release/api-change-mgn-87937.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``mgn``", - "description": "Introducing new option for security groups mapping - with MAP-DHCP the service translates security rules from your source environment with DHCP compatibility." -} diff --git a/.changes/next-release/api-change-qconnect-52820.json b/.changes/next-release/api-change-qconnect-52820.json deleted file mode 100644 index 3b00509ae636..000000000000 --- a/.changes/next-release/api-change-qconnect-52820.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``qconnect``", - "description": "ListModels is an API that returns the available AI models for a Connect Assistant based on its region and AI prompt type." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b11c6bb910d2..434b7723d673 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,19 @@ CHANGELOG ========= +2.34.47 +======= + +* api-change:``bedrock``: Advanced Prompt Optimization (AdvPO) allows you to optimize and migrate your prompts for any model on Bedrock by automatically evaluating responses and rewriting prompts to improve performance. This release provides a programmatic way to create, get, list, stop, and delete AdvPO jobs. +* api-change:``cloudfront``: Adding a new boolean for OCSP Revocations in Viewer mTLS Create and Update APIs, and adding a new 'Passthrough' option for TrustStore modes +* api-change:``grafana``: Adds support for dual-stack (IPv4 and IPv6) connectivity to Amazon Managed Grafana workspaces. Customers can configure the ipAddressType parameter when creating or updating a workspace to choose between IPv4-only or dual-stack (IPv4 and IPv6) access. +* api-change:``glue``: Release --has-databases parameter for AWS Glue get-catalogs API, which filters catalog responses to include only those capable of containing databases, excluding parent catalogs that hold only other catalogs. Remove model-level validation on partition index list size for AWS Glue tables. +* api-change:``datazone``: Adds support for SageMaker Unified Studio notebook operations, including notebook import and export +* api-change:``mgn``: Introducing new option for security groups mapping - with MAP-DHCP the service translates security rules from your source environment with DHCP compatibility. +* api-change:``dms``: Add 9 SDK waiters for DMS Schema Conversion async operations. Eliminates manual polling for import, assessment, conversion, export, and creation jobs. +* api-change:``qconnect``: ListModels is an API that returns the available AI models for a Connect Assistant based on its region and AI prompt type. + + 2.34.46 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index a8b4e4f5ec1c..aac788d3b1f7 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.46' +__version__ = '2.34.47' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 2dda653717c4..3b9a1033ec9b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.46. +# Generated by GNU Autoconf 2.71 for awscli 2.34.47. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.46' -PACKAGE_STRING='awscli 2.34.46' +PACKAGE_VERSION='2.34.47' +PACKAGE_STRING='awscli 2.34.47' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.46 +awscli configure 2.34.47 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.46, which was +It was created by awscli $as_me 2.34.47, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.46, which was +This file was extended by awscli $as_me 2.34.47, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.46 +awscli config.status 2.34.47 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 823c37a6b1dd..4a4829458ab2 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.46]) +AC_INIT([awscli], [2.34.47]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 155250019eb5..a5943e40c417 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.46' +release = '2.34.47' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 7aae59f16d9fd4b4b09a4ddc3e187c1367b099f7 Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Thu, 14 May 2026 15:34:13 -0700 Subject: [PATCH 10/73] Update restore-snapshot-from-recycle-bin.rst --- .../ec2/restore-snapshot-from-recycle-bin.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst b/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst index 89970d86c142..effd34cab2da 100644 --- a/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst +++ b/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst @@ -5,6 +5,18 @@ The following ``restore-snapshot-from-recycle-bin`` example restores a snapshot aws ec2 restore-snapshot-from-recycle-bin \ --snapshot-id snap-01234567890abcdef -This command produces no output. +Output:: + + { + "SnapshotId": "snap-01234567890abcdef", + "Description": "Monthly data backup snapshot", + "Encrypted": false, + "OwnerId": "111122223333", + "Progress": "99%", + "StartTime": "2021-12-01T13:00:00.000000+00:00", + "State": "recovering", + "VolumeId": "vol-ffffffff", + "VolumeSize": 30 + } For more information about Recycle Bin, see `Recover deleted snapshots from the Recycle Bin `__ in the *Amazon EBS User Guide*. From ce109ca38a76729559f110e0877616e03b8ac4b4 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 15 May 2026 18:07:10 +0000 Subject: [PATCH 11/73] Update to latest models --- .../next-release/api-change-logs-86266.json | 5 +++ .../api-change-mediapackagev2-86136.json | 5 +++ ...api-change-partnercentralselling-6962.json | 5 +++ .../data/logs/2014-03-28/service-2.json | 15 +++++--- .../mediapackagev2/2022-12-25/service-2.json | 23 ++++++++++++ .../2022-07-26/service-2.json | 37 ++++++++++++++++++- 6 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 .changes/next-release/api-change-logs-86266.json create mode 100644 .changes/next-release/api-change-mediapackagev2-86136.json create mode 100644 .changes/next-release/api-change-partnercentralselling-6962.json diff --git a/.changes/next-release/api-change-logs-86266.json b/.changes/next-release/api-change-logs-86266.json new file mode 100644 index 000000000000..29f19d3ca79d --- /dev/null +++ b/.changes/next-release/api-change-logs-86266.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``logs``", + "description": "Updating the max limit for start query api parameter." +} diff --git a/.changes/next-release/api-change-mediapackagev2-86136.json b/.changes/next-release/api-change-mediapackagev2-86136.json new file mode 100644 index 000000000000..caa6944fd9cf --- /dev/null +++ b/.changes/next-release/api-change-mediapackagev2-86136.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``mediapackagev2``", + "description": "This release adds support for AvailabilityStartTimeConfiguration in MediaPackageV2 DASH manifests" +} diff --git a/.changes/next-release/api-change-partnercentralselling-6962.json b/.changes/next-release/api-change-partnercentralselling-6962.json new file mode 100644 index 000000000000..6a9cdcc021f0 --- /dev/null +++ b/.changes/next-release/api-change-partnercentralselling-6962.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``partnercentral-selling``", + "description": "Enable TCV intake on Opportunity to improve Opportunities Hygiene and downstream revenue attribution." +} diff --git a/awscli/botocore/data/logs/2014-03-28/service-2.json b/awscli/botocore/data/logs/2014-03-28/service-2.json index b6743e0cf2e0..6e82f8af73e7 100644 --- a/awscli/botocore/data/logs/2014-03-28/service-2.json +++ b/awscli/botocore/data/logs/2014-03-28/service-2.json @@ -1097,7 +1097,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Returns the results from the specified query.

Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record.

GetQueryResults does not start running a query. To run a query, use StartQuery. For more information about how long results of previous queries are available, see CloudWatch Logs quotas.

If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results.

This operation is used both for retrieving results from interactive queries and from automated scheduled query executions. Scheduled queries use GetQueryResults internally to retrieve query results for processing and delivery to configured destinations.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start queries in linked source accounts. For more information, see CloudWatch cross-account observability.

" + "documentation":"

Returns the results from the specified query.

Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record.

GetQueryResults does not start running a query. To run a query, use StartQuery. For more information about how long results of previous queries are available, see CloudWatch Logs quotas.

If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results.

This operation is used both for retrieving results from interactive queries and from automated scheduled query executions. Scheduled queries use GetQueryResults internally to retrieve query results for processing and delivery to configured destinations.

You can retrieve up to 100,000 log event results from a query, if available, by using pagination. Use the nextToken returned in the response to request additional pages of results, with each page returning up to 10,000 log events.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start queries in linked source accounts. For more information, see CloudWatch cross-account observability.

" }, "GetScheduledQuery":{ "name":"GetScheduledQuery", @@ -4269,6 +4269,11 @@ "max":10000, "min":1 }, + "EventsLimitStartQuery":{ + "type":"integer", + "max":100000, + "min":1 + }, "ExecutionStatus":{ "type":"string", "enum":[ @@ -5012,7 +5017,7 @@ }, "maxItems":{ "shape":"GetQueryResultsMaxItems", - "documentation":"

The maximum number of log events to return in the response. The maximum is 10,000 log events.

" + "documentation":"

The maximum number of log events to return in the response. The maximum is 10,000 log events per request. You can retrieve up to 100,000 log event results from a query by paginating with the nextToken.

" } } }, @@ -5041,7 +5046,7 @@ }, "nextToken":{ "shape":"GetQueryResultsNextToken", - "documentation":"

If there are more log events remaining in the results, the response includes a nextToken. You can use this token in a subsequent GetQueryResults request to get the next set of results.

" + "documentation":"

If there are more log events remaining in the results, the response includes a nextToken. You can use this token in a subsequent GetQueryResults request to get the next set of results. You can retrieve up to 100,000 log event results from a query by paginating with this token.

" } } }, @@ -8708,8 +8713,8 @@ "documentation":"

The query string to use. For more information, see CloudWatch Logs Insights Query Syntax.

" }, "limit":{ - "shape":"EventsLimit", - "documentation":"

The maximum number of log events to return in the query. If the query string uses the fields command, only the specified fields and their values are returned. The default is 10,000.

" + "shape":"EventsLimitStartQuery", + "documentation":"

The maximum number of log events to return in the query. If the query string uses the fields command, only the specified fields and their values are returned. The default is 10,000.

The maximum value is 100,000.

" } } }, diff --git a/awscli/botocore/data/mediapackagev2/2022-12-25/service-2.json b/awscli/botocore/data/mediapackagev2/2022-12-25/service-2.json index 8aae34c18b26..567a911c2a16 100644 --- a/awscli/botocore/data/mediapackagev2/2022-12-25/service-2.json +++ b/awscli/botocore/data/mediapackagev2/2022-12-25/service-2.json @@ -1061,6 +1061,10 @@ "UriPathType":{ "shape":"UriPathType", "documentation":"

The type of path to use in manifest URIs. LEAF uses leaf-relative paths (for example, index_1.mpd). ROOT uses root-relative paths that include the full path from root (for example, /out/v1/channel-group/channel/endpoint/index_1.mpd). If you don't specify a value, the default is LEAF.

" + }, + "AvailabilityStartTimeConfiguration":{ + "shape":"DashAvailabilityStartTimeConfiguration", + "documentation":"

The configuration for the DASH availabilityStartTime attribute of the Media Presentation Description (MPD). If you don't specify a value, MediaPackage uses the default availability start time of 2024-01-01T00:00:00Z.

" } }, "documentation":"

Create a DASH manifest configuration.

" @@ -1548,6 +1552,17 @@ "max":25, "min":0 }, + "DashAvailabilityStartTimeConfiguration":{ + "type":"structure", + "members":{ + "FixedAvailabilityStartTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The fixed availability start time for the DASH manifest, in ISO 8601 date-time format. The value must have hourly granularity, meaning that the minutes, seconds, and fractional seconds must be zero. The value must be on or after 2024-01-01T00:00:00Z and must be at least 14 days before the current time.

" + } + }, + "documentation":"

The configuration for the DASH availabilityStartTime attribute of the Media Presentation Description (MPD). Use this configuration to set a custom availability start time for your DASH manifest.

", + "union":true + }, "DashBaseUrl":{ "type":"structure", "required":["Url"], @@ -2400,6 +2415,10 @@ "UriPathType":{ "shape":"UriPathType", "documentation":"

The type of path used in manifest URIs. LEAF indicates leaf-relative paths. ROOT indicates root-relative paths that include the full path from root.

" + }, + "AvailabilityStartTimeConfiguration":{ + "shape":"DashAvailabilityStartTimeConfiguration", + "documentation":"

The configuration for the DASH availabilityStartTime attribute of the Media Presentation Description (MPD).

" } }, "documentation":"

Retrieve the DASH manifest configuration.

" @@ -3954,6 +3973,10 @@ "documentation":"

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

" }, "String":{"type":"string"}, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, "TagArn":{"type":"string"}, "TagKey":{"type":"string"}, "TagKeyList":{ diff --git a/awscli/botocore/data/partnercentral-selling/2022-07-26/service-2.json b/awscli/botocore/data/partnercentral-selling/2022-07-26/service-2.json index 16281ff40cd9..14b84a6776b7 100644 --- a/awscli/botocore/data/partnercentral-selling/2022-07-26/service-2.json +++ b/awscli/botocore/data/partnercentral-selling/2022-07-26/service-2.json @@ -3003,6 +3003,29 @@ "type":"string", "pattern":"https://(calculator\\.aws|pricing\\.calculator\\.aws\\.eu)/#/estimate\\?id=[a-f0-9]{32,64}" }, + "ExpectedContractDuration":{ + "type":"structure", + "required":[ + "Term", + "Value" + ], + "members":{ + "Term":{ + "shape":"ExpectedContractDurationTerm", + "documentation":"

The unit of measurement for the contract duration value. Currently accepts only Months.

" + }, + "Value":{ + "shape":"String", + "documentation":"

A String representation of the contract duration as an integer, expressed in the unit defined by Term. Valid values range from 1 to 144.

" + } + }, + "documentation":"

The expected duration of a partner's contract with the customer. Used to convert Total Contract Value (TCV) to Monthly Recurring Revenue (MRR) for opportunity dealsizing calculations.

" + }, + "ExpectedContractDurationTerm":{ + "type":"string", + "documentation":"

The unit of measurement for the contract duration value. Currently accepts only Months.

", + "enum":["Months"] + }, "ExpectedCustomerSpend":{ "type":"structure", "required":[ @@ -3017,7 +3040,7 @@ }, "CurrencyCode":{ "shape":"CurrencyCode", - "documentation":"

Currency code for the expected customer spend. Supported currencies: USD, EUR

" + "documentation":"

Indicates the currency in which the revenue estimate is provided. This helps in understanding the financial impact across different markets. Accepted values are USD (US Dollars) and EUR (Euros). If the AWS Partition is aws-eusc (AWS European Sovereign Cloud), the currency code must be EUR.

" }, "Frequency":{ "shape":"PaymentFrequency", @@ -5239,6 +5262,10 @@ "shape":"ExpectedCustomerSpendList", "documentation":"

Represents the estimated amount that the customer is expected to spend on AWS services related to the opportunity. This helps in evaluating the potential financial value of the opportunity for AWS.

" }, + "ExpectedContractDuration":{ + "shape":"ExpectedContractDuration", + "documentation":"

Optional. The expected duration of the contract associated with this opportunity. Partners use this value alongside expected customer spend to convert Total Contract Value (TCV) into Monthly Recurring Revenue (MRR).

" + }, "Title":{ "shape":"ProjectTitleString", "documentation":"

Specifies the Opportunity's title or name.

" @@ -5346,6 +5373,10 @@ "ExpectedCustomerSpend":{ "shape":"ExpectedCustomerSpendList", "documentation":"

Provides a summary of the expected customer spend for the project, offering a high-level view of the potential financial impact.

" + }, + "ExpectedContractDuration":{ + "shape":"ExpectedContractDuration", + "documentation":"

Optional. The expected contract duration for this opportunity, representing the anticipated length of the contract in the unit specified by Term.

" } }, "documentation":"

An object that contains a Project object's subset of fields.

" @@ -5366,6 +5397,10 @@ "shape":"ExpectedCustomerSpendList", "documentation":"

Provides information about the anticipated customer spend related to this project. This may include details such as amount, frequency, and currency of expected expenditure.

" }, + "ExpectedContractDuration":{ + "shape":"ExpectedContractDuration", + "documentation":"

Optional. The expected contract duration for this opportunity, representing the anticipated length of the contract in the unit specified by Term.

" + }, "CustomerUseCase":{ "shape":"String", "documentation":"

Specifies the proposed solution focus or type of workload for the project.

" From c242e2dd38daaf4c2e355623c45372ae88a70b3a Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 15 May 2026 18:07:11 +0000 Subject: [PATCH 12/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 1 + 1 file changed, 1 insertion(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 8dbcb30510b9..7e69facd1376 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -12903,6 +12903,7 @@ "endpoints" : { "af-south-1" : { }, "ap-east-1" : { }, + "ap-east-2" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-northeast-3" : { }, From f2892543f2b9cd19b1c1c75ccc78fbf7c325e542 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 15 May 2026 18:09:03 +0000 Subject: [PATCH 13/73] Bump version to 2.34.48 --- .changes/2.34.48.json | 17 +++++++++++++++++ .../next-release/api-change-logs-86266.json | 5 ----- .../api-change-mediapackagev2-86136.json | 5 ----- .../api-change-partnercentralselling-6962.json | 5 ----- CHANGELOG.rst | 8 ++++++++ awscli/__init__.py | 2 +- configure | 14 +++++++------- configure.ac | 2 +- doc/source/conf.py | 2 +- 9 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 .changes/2.34.48.json delete mode 100644 .changes/next-release/api-change-logs-86266.json delete mode 100644 .changes/next-release/api-change-mediapackagev2-86136.json delete mode 100644 .changes/next-release/api-change-partnercentralselling-6962.json diff --git a/.changes/2.34.48.json b/.changes/2.34.48.json new file mode 100644 index 000000000000..eebeaf0402c8 --- /dev/null +++ b/.changes/2.34.48.json @@ -0,0 +1,17 @@ +[ + { + "category": "``partnercentral-selling``", + "description": "Enable TCV intake on Opportunity to improve Opportunities Hygiene and downstream revenue attribution.", + "type": "api-change" + }, + { + "category": "``logs``", + "description": "Updating the max limit for start query api parameter.", + "type": "api-change" + }, + { + "category": "``mediapackagev2``", + "description": "This release adds support for AvailabilityStartTimeConfiguration in MediaPackageV2 DASH manifests", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-logs-86266.json b/.changes/next-release/api-change-logs-86266.json deleted file mode 100644 index 29f19d3ca79d..000000000000 --- a/.changes/next-release/api-change-logs-86266.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``logs``", - "description": "Updating the max limit for start query api parameter." -} diff --git a/.changes/next-release/api-change-mediapackagev2-86136.json b/.changes/next-release/api-change-mediapackagev2-86136.json deleted file mode 100644 index caa6944fd9cf..000000000000 --- a/.changes/next-release/api-change-mediapackagev2-86136.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``mediapackagev2``", - "description": "This release adds support for AvailabilityStartTimeConfiguration in MediaPackageV2 DASH manifests" -} diff --git a/.changes/next-release/api-change-partnercentralselling-6962.json b/.changes/next-release/api-change-partnercentralselling-6962.json deleted file mode 100644 index 6a9cdcc021f0..000000000000 --- a/.changes/next-release/api-change-partnercentralselling-6962.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``partnercentral-selling``", - "description": "Enable TCV intake on Opportunity to improve Opportunities Hygiene and downstream revenue attribution." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 434b7723d673..d55f1b2cbb3f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,14 @@ CHANGELOG ========= +2.34.48 +======= + +* api-change:``partnercentral-selling``: Enable TCV intake on Opportunity to improve Opportunities Hygiene and downstream revenue attribution. +* api-change:``logs``: Updating the max limit for start query api parameter. +* api-change:``mediapackagev2``: This release adds support for AvailabilityStartTimeConfiguration in MediaPackageV2 DASH manifests + + 2.34.47 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index aac788d3b1f7..1c834285a77f 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.47' +__version__ = '2.34.48' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 3b9a1033ec9b..3d276e639d24 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.47. +# Generated by GNU Autoconf 2.71 for awscli 2.34.48. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.47' -PACKAGE_STRING='awscli 2.34.47' +PACKAGE_VERSION='2.34.48' +PACKAGE_STRING='awscli 2.34.48' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.47 +awscli configure 2.34.48 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.47, which was +It was created by awscli $as_me 2.34.48, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.47, which was +This file was extended by awscli $as_me 2.34.48, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.47 +awscli config.status 2.34.48 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 4a4829458ab2..0209383ce511 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.47]) +AC_INIT([awscli], [2.34.48]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index a5943e40c417..77261bb6d75b 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.47' +release = '2.34.48' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 4627346d2ffb950fb3828d491054f6fed19bdbcf Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Mon, 18 May 2026 18:18:55 +0000 Subject: [PATCH 14/73] Update to latest models --- .../api-change-accessanalyzer-83119.json | 5 + .../api-change-connect-27821.json | 5 + .../next-release/api-change-ec2-92188.json | 5 + .../next-release/api-change-ecs-33493.json | 5 + .../next-release/api-change-evs-83946.json | 5 + .../next-release/api-change-ivs-56679.json | 5 + .../api-change-quicksight-4244.json | 5 + .../accessanalyzer/2019-11-01/service-2.json | 123 +- .../data/connect/2017-08-08/service-2.json | 1380 ++++++++--------- .../data/ec2/2016-11-15/paginators-1.json | 6 + .../data/ec2/2016-11-15/service-2.json | 122 +- .../data/ecs/2014-11-13/service-2.json | 145 +- .../data/evs/2023-07-27/service-2.json | 6 +- .../data/ivs/2020-07-14/service-2.json | 2 +- .../data/quicksight/2018-04-01/service-2.json | 184 +++ 15 files changed, 1290 insertions(+), 713 deletions(-) create mode 100644 .changes/next-release/api-change-accessanalyzer-83119.json create mode 100644 .changes/next-release/api-change-connect-27821.json create mode 100644 .changes/next-release/api-change-ec2-92188.json create mode 100644 .changes/next-release/api-change-ecs-33493.json create mode 100644 .changes/next-release/api-change-evs-83946.json create mode 100644 .changes/next-release/api-change-ivs-56679.json create mode 100644 .changes/next-release/api-change-quicksight-4244.json diff --git a/.changes/next-release/api-change-accessanalyzer-83119.json b/.changes/next-release/api-change-accessanalyzer-83119.json new file mode 100644 index 000000000000..e82ebbe9f311 --- /dev/null +++ b/.changes/next-release/api-change-accessanalyzer-83119.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``accessanalyzer``", + "description": "Services manage service-linked analyzers through dedicated APIs - CreateServiceLinkedAnalyzer and DeleteServiceLinkedAnalyzer that separate service-linked specific operations from customer-managed operations. It also shows up in ListAnalyzers and GetAnalyzer responses." +} diff --git a/.changes/next-release/api-change-connect-27821.json b/.changes/next-release/api-change-connect-27821.json new file mode 100644 index 000000000000..2c0e647d6c25 --- /dev/null +++ b/.changes/next-release/api-change-connect-27821.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connect``", + "description": "Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines." +} diff --git a/.changes/next-release/api-change-ec2-92188.json b/.changes/next-release/api-change-ec2-92188.json new file mode 100644 index 000000000000..bb502c5b080a --- /dev/null +++ b/.changes/next-release/api-change-ec2-92188.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ec2``", + "description": "Amazon VPC IP Address Manager (IPAM) now supports tags on IPAM pool allocations, enabling all standard tagging features for allocations including tag-on-create." +} diff --git a/.changes/next-release/api-change-ecs-33493.json b/.changes/next-release/api-change-ecs-33493.json new file mode 100644 index 000000000000..cc79a616a13a --- /dev/null +++ b/.changes/next-release/api-change-ecs-33493.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ecs``", + "description": "Amazon ECS now supports Pause lifecycle hooks for service deployments, allowing customers to automatically pause deployments at specified stages and use the new ContinueServiceDeployment API to continue or roll back with confidence." +} diff --git a/.changes/next-release/api-change-evs-83946.json b/.changes/next-release/api-change-evs-83946.json new file mode 100644 index 000000000000..6fd22f7e8993 --- /dev/null +++ b/.changes/next-release/api-change-evs-83946.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``evs``", + "description": "Amazon EVS now supports up to 32 hosts per EVS environment, increasing the previous host limit to allow a larger scale of VMware workload deployments and reduce operational overhead." +} diff --git a/.changes/next-release/api-change-ivs-56679.json b/.changes/next-release/api-change-ivs-56679.json new file mode 100644 index 000000000000..0410124235d9 --- /dev/null +++ b/.changes/next-release/api-change-ivs-56679.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ivs``", + "description": "Adds support for up to 3 mediaTailorPlaybackConfiguration objects in an ad configuration resource" +} diff --git a/.changes/next-release/api-change-quicksight-4244.json b/.changes/next-release/api-change-quicksight-4244.json new file mode 100644 index 000000000000..c3436c7db600 --- /dev/null +++ b/.changes/next-release/api-change-quicksight-4244.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``quicksight``", + "description": "Support for dataset enrichment and geo spatial in new data preparation experience" +} diff --git a/awscli/botocore/data/accessanalyzer/2019-11-01/service-2.json b/awscli/botocore/data/accessanalyzer/2019-11-01/service-2.json index 0a23c5c62e61..9e6f84910e6b 100644 --- a/awscli/botocore/data/accessanalyzer/2019-11-01/service-2.json +++ b/awscli/botocore/data/accessanalyzer/2019-11-01/service-2.json @@ -170,6 +170,26 @@ "documentation":"

Creates an archive rule for the specified analyzer. Archive rules automatically archive new findings that meet the criteria you define when you create the rule.

To learn about filter keys that you can use to create an archive rule, see IAM Access Analyzer filter keys in the IAM User Guide.

", "idempotent":true }, + "CreateServiceLinkedAnalyzer":{ + "name":"CreateServiceLinkedAnalyzer", + "http":{ + "method":"PUT", + "requestUri":"/service-linked-analyzer", + "responseCode":200 + }, + "input":{"shape":"CreateServiceLinkedAnalyzerRequest"}, + "output":{"shape":"CreateServiceLinkedAnalyzerResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a service-linked analyzer managed by an Amazon Web Services service. This operation can only be invoked by authorized Amazon Web Services services. Direct customer invocation returns AccessDeniedException.

Service-linked analyzers enable Amazon Web Services services to create and manage analyzers on behalf of customers. The lifecycle of these analyzers is managed by the calling service.

", + "idempotent":true + }, "DeleteAnalyzer":{ "name":"DeleteAnalyzer", "http":{ @@ -206,6 +226,25 @@ "documentation":"

Deletes the specified archive rule.

", "idempotent":true }, + "DeleteServiceLinkedAnalyzer":{ + "name":"DeleteServiceLinkedAnalyzer", + "http":{ + "method":"DELETE", + "requestUri":"/service-linked-analyzer/{analyzerName}", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceLinkedAnalyzerRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a service-linked analyzer. This operation can be invoked by both authorized Amazon Web Services services and customers.

When invoked by a customer, IAM Access Analyzer performs a callback to the managing service to verify whether the analyzer is still in use and can be deleted. If the service indicates the analyzer is still in use, the deletion is rejected with ConflictException.

", + "idempotent":true + }, "GenerateFindingRecommendation":{ "name":"GenerateFindingRecommendation", "http":{ @@ -1156,6 +1195,12 @@ "documentation":"

Contains information about the configuration of an analyzer for an Amazon Web Services organization or account.

", "union":true }, + "AnalyzerName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z_][A-Za-z0-9_.-]*" + }, "AnalyzerStatus":{ "type":"string", "enum":[ @@ -1180,7 +1225,7 @@ "documentation":"

The ARN of the analyzer.

" }, "name":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer.

" }, "type":{ @@ -1214,6 +1259,10 @@ "configuration":{ "shape":"AnalyzerConfiguration", "documentation":"

Specifies if the analyzer is an external access, unused access, or internal access analyzer. The GetAnalyzer action includes this property in its response if a configuration is specified, while the ListAnalyzers action omits it.

" + }, + "managedBy":{ + "shape":"String", + "documentation":"

The service principal that manages this analyzer (for example, securityhubv2.amazonaws.com). This field is only present for service-linked analyzers and is not included for customer-managed analyzers.

" } }, "documentation":"

Contains information about the analyzer.

" @@ -1629,7 +1678,7 @@ ], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer to create.

" }, "type":{ @@ -1675,7 +1724,7 @@ ], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the created analyzer.

", "location":"uri", "locationName":"analyzerName" @@ -1696,6 +1745,40 @@ }, "documentation":"

Creates an archive rule.

" }, + "CreateServiceLinkedAnalyzerRequest":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{ + "shape":"Type", + "documentation":"

The type of analyzer to create. Valid values are ACCOUNT_UNUSED_ACCESS and ORGANIZATION_UNUSED_ACCESS.

" + }, + "archiveRules":{ + "shape":"InlineArchiveRulesList", + "documentation":"

Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

A client token.

", + "idempotencyToken":true + }, + "configuration":{ + "shape":"AnalyzerConfiguration", + "documentation":"

Specifies the configuration of the analyzer. The specified scope of unused access is used for the configuration.

" + } + }, + "documentation":"

Creates a service-linked analyzer.

" + }, + "CreateServiceLinkedAnalyzerResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"AnalyzerArn", + "documentation":"

The ARN of the service-linked analyzer that was created by the request. The analyzer name follows the format _AccessAnalyzerFor{ServiceName}-{Id} where Id is a randomly generated identifier.

" + } + }, + "documentation":"

The response to the request to create a service-linked analyzer.

" + }, "Criterion":{ "type":"structure", "members":{ @@ -1723,7 +1806,7 @@ "required":["analyzerName"], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer to delete.

", "location":"uri", "locationName":"analyzerName" @@ -1746,7 +1829,7 @@ ], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer that associated with the archive rule to delete.

", "location":"uri", "locationName":"analyzerName" @@ -1767,6 +1850,26 @@ }, "documentation":"

Deletes an archive rule.

" }, + "DeleteServiceLinkedAnalyzerRequest":{ + "type":"structure", + "required":["analyzerName"], + "members":{ + "analyzerName":{ + "shape":"AnalyzerName", + "documentation":"

The name of the service-linked analyzer to delete. Service-linked analyzer names follow the format _AccessAnalyzerFor{ServiceName}-{Id}.

", + "location":"uri", + "locationName":"analyzerName" + }, + "clientToken":{ + "shape":"String", + "documentation":"

A client token.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + } + }, + "documentation":"

Deletes a service-linked analyzer.

" + }, "DynamodbStreamConfiguration":{ "type":"structure", "members":{ @@ -2418,7 +2521,7 @@ "required":["analyzerName"], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer retrieved.

", "location":"uri", "locationName":"analyzerName" @@ -2445,7 +2548,7 @@ ], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer to retrieve rules from.

", "location":"uri", "locationName":"analyzerName" @@ -3291,7 +3394,7 @@ "required":["analyzerName"], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer to retrieve rules from.

", "location":"uri", "locationName":"analyzerName" @@ -4549,7 +4652,7 @@ "required":["analyzerName"], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer to modify.

", "location":"uri", "locationName":"analyzerName" @@ -4572,7 +4675,7 @@ ], "members":{ "analyzerName":{ - "shape":"Name", + "shape":"AnalyzerName", "documentation":"

The name of the analyzer to update the archive rules for.

", "location":"uri", "locationName":"analyzerName" diff --git a/awscli/botocore/data/connect/2017-08-08/service-2.json b/awscli/botocore/data/connect/2017-08-08/service-2.json index d20c110e56b4..9d01e8df68d3 100644 --- a/awscli/botocore/data/connect/2017-08-08/service-2.json +++ b/awscli/botocore/data/connect/2017-08-08/service-2.json @@ -30,7 +30,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Activates 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.

" + "documentation":"

Activates an evaluation form in the specified Connect Customer instance. After the evaluation form is activated, it is available to start new evaluations based on the form.

" }, "AssociateAnalyticsDataSet":{ "name":"AssociateAnalyticsDataSet", @@ -47,7 +47,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Associates the specified dataset for a Amazon Connect instance with the target account. You can associate only one dataset in a single call.

" + "documentation":"

Associates the specified dataset for a Connect Customer instance with the target account. You can associate only one dataset in a single call.

" }, "AssociateApprovedOrigin":{ "name":"AssociateApprovedOrigin", @@ -65,7 +65,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Associates an approved origin to an Amazon Connect instance.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Associates an approved origin to an Connect Customer instance.

" }, "AssociateBot":{ "name":"AssociateBot", @@ -83,7 +83,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex or Amazon Lex V2 bot.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Allows the specified Connect Customer instance to access the specified Amazon Lex or Amazon Lex V2 bot.

" }, "AssociateContactWithUser":{ "name":"AssociateContactWithUser", @@ -101,7 +101,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Associates a queued contact with an agent.

Use cases

Following are common uses cases for this API:

  • Programmatically assign queued contacts to available users.

  • Leverage the IAM context key connect:PreferredUserArn to restrict contact association to specific preferred user.

Important things to know

  • Use this API with chat, email, and task contacts. It does not support voice contacts.

  • Use it to associate contacts with users regardless of their current state, including custom states. Ensure your application logic accounts for user availability before making associations.

  • It honors the IAM context key connect:PreferredUserArn to prevent unauthorized contact associations.

  • It respects the IAM context key connect:PreferredUserArn to enforce authorization controls and prevent unauthorized contact associations. Verify that your IAM policies are properly configured to support your intended use cases.

  • The service quota Queues per routing profile per instance applies to manually assigned queues, too. For more information about this quota, see Amazon Connect quotas in the Amazon Connect Administrator Guide.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Associates a queued contact with an agent.

Use cases

Following are common uses cases for this API:

  • Programmatically assign queued contacts to available users.

  • Leverage the IAM context key connect:PreferredUserArn to restrict contact association to specific preferred user.

Important things to know

  • Use this API with chat, email, and task contacts. It does not support voice contacts.

  • Use it to associate contacts with users regardless of their current state, including custom states. Ensure your application logic accounts for user availability before making associations.

  • It honors the IAM context key connect:PreferredUserArn to prevent unauthorized contact associations.

  • It respects the IAM context key connect:PreferredUserArn to enforce authorization controls and prevent unauthorized contact associations. Verify that your IAM policies are properly configured to support your intended use cases.

  • The service quota Queues per routing profile per instance applies to manually assigned queues, too. For more information about this quota, see Connect Customer quotas in the Connect Customer Administrator Guide.

Endpoints: See Connect Customer endpoints and quotas.

" }, "AssociateDefaultVocabulary":{ "name":"AssociateDefaultVocabulary", @@ -118,7 +118,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Associates an existing vocabulary as the default. Contact Lens for Amazon Connect uses the vocabulary in post-call and real-time analysis sessions for the given language.

" + "documentation":"

Associates an existing vocabulary as the default. Contact Lens for Connect Customer uses the vocabulary in post-call and real-time analysis sessions for the given language.

" }, "AssociateEmailAddressAlias":{ "name":"AssociateEmailAddressAlias", @@ -138,7 +138,7 @@ {"shape":"ResourceConflictException"}, {"shape":"IdempotencyException"} ], - "documentation":"

Associates an email address alias with an existing email address in an Amazon Connect instance. This creates a forwarding relationship where emails sent to the alias email address are automatically forwarded to the primary email address.

Use cases

Following are common uses cases for this API:

  • Unified customer support: Create multiple entry points (for example, support@example.com, help@example.com, customercare@example.com) that all forward to a single agent queue for streamlined management.

  • Department consolidation: Forward emails from legacy department addresses (for example, sales@example.com, info@example.com) to a centralized customer service email during organizational restructuring.

  • Brand management: Enable you to use familiar brand-specific email addresses that forward to the appropriate Amazon Connect instance email address.

Important things to know

  • Each email address can have a maximum of one alias. You cannot create multiple aliases for the same email address.

  • If the alias email address already receives direct emails, it continues to receive direct emails plus forwarded emails.

  • You cannot chain email aliases together (that is, create an alias of an alias).

AssociateEmailAddressAlias does not return the following information:

  • A confirmation of the alias relationship details (you must call DescribeEmailAddress to verify).

  • The timestamp of when the association occurred.

  • The status of the forwarding configuration.

Endpoints: See Amazon Connect endpoints and quotas.

Related operations

" + "documentation":"

Associates an email address alias with an existing email address in an Connect Customer instance. This creates a forwarding relationship where emails sent to the alias email address are automatically forwarded to the primary email address.

Use cases

Following are common uses cases for this API:

  • Unified customer support: Create multiple entry points (for example, support@example.com, help@example.com, customercare@example.com) that all forward to a single agent queue for streamlined management.

  • Department consolidation: Forward emails from legacy department addresses (for example, sales@example.com, info@example.com) to a centralized customer service email during organizational restructuring.

  • Brand management: Enable you to use familiar brand-specific email addresses that forward to the appropriate Connect Customer instance email address.

Important things to know

  • Each email address can have a maximum of one alias. You cannot create multiple aliases for the same email address.

  • If the alias email address already receives direct emails, it continues to receive direct emails plus forwarded emails.

  • You cannot chain email aliases together (that is, create an alias of an alias).

AssociateEmailAddressAlias does not return the following information:

  • A confirmation of the alias relationship details (you must call DescribeEmailAddress to verify).

  • The timestamp of when the association occurred.

  • The status of the forwarding configuration.

Endpoints: See Connect Customer endpoints and quotas.

Related operations

" }, "AssociateFlow":{ "name":"AssociateFlow", @@ -192,7 +192,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Associates a storage resource type for the first time. You can only associate one type of storage configuration in a single call. This means, for example, that you can't define an instance with multiple S3 buckets for storing chat transcripts.

This API does not create a resource that doesn't exist. It only associates it to the instance. Ensure that the resource being specified in the storage configuration, like an S3 bucket, exists when being used for association.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Associates a storage resource type for the first time. You can only associate one type of storage configuration in a single call. This means, for example, that you can't define an instance with multiple S3 buckets for storing chat transcripts.

This API does not create a resource that doesn't exist. It only associates it to the instance. Ensure that the resource being specified in the storage configuration, like an S3 bucket, exists when being used for association.

" }, "AssociateLambdaFunction":{ "name":"AssociateLambdaFunction", @@ -210,7 +210,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Lambda function.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Allows the specified Connect Customer instance to access the specified Lambda function.

" }, "AssociateLexBot":{ "name":"AssociateLexBot", @@ -228,7 +228,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex V1 bot. This API only supports the association of Amazon Lex V1 bots.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Allows the specified Connect Customer instance to access the specified Amazon Lex V1 bot. This API only supports the association of Amazon Lex V1 bots.

" }, "AssociatePhoneNumberContactFlow":{ "name":"AssociatePhoneNumberContactFlow", @@ -244,7 +244,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Associates a flow with a phone number claimed to your Amazon Connect instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" + "documentation":"

Associates a flow with a phone number claimed to your Connect Customer instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "AssociateQueueEmailAddresses":{ "name":"AssociateQueueEmailAddresses", @@ -262,7 +262,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Associates a set of email addresses with a queue to enable agents to select different \"From\" (system) email addresses when replying to inbound email contacts or initiating outbound email contacts. This allows agents to handle email contacts across different brands and business units within the same queue.

Important things to know

  • You can associate up to 49 additional email addresses with a single queue, plus 1 default outbound email address, for a total of 50.

  • The email addresses must already exist in the Amazon Connect instance before they can be associated with a queue.

  • Agents will be able to select from these associated email addresses when handling email contacts in the queue.

  • For inbound email contacts, agents can select from email addresses associated with the queue where the contact was accepted.

  • For outbound email contacts, agents can select from email addresses associated with their default outbound queue configured in their routing profile.

" + "documentation":"

Associates a set of email addresses with a queue to enable agents to select different \"From\" (system) email addresses when replying to inbound email contacts or initiating outbound email contacts. This allows agents to handle email contacts across different brands and business units within the same queue.

Important things to know

  • You can associate up to 49 additional email addresses with a single queue, plus 1 default outbound email address, for a total of 50.

  • The email addresses must already exist in the Connect Customer instance before they can be associated with a queue.

  • Agents will be able to select from these associated email addresses when handling email contacts in the queue.

  • For inbound email contacts, agents can select from email addresses associated with the queue where the contact was accepted.

  • For outbound email contacts, agents can select from email addresses associated with their default outbound queue configured in their routing profile.

" }, "AssociateQueueQuickConnects":{ "name":"AssociateQueueQuickConnects", @@ -314,7 +314,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Associates a security key to the instance.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Associates a security key to the instance.

" }, "AssociateSecurityProfiles":{ "name":"AssociateSecurityProfiles", @@ -403,7 +403,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Associates a list of analytics datasets for a given Amazon Connect instance to a target account. You can associate multiple datasets in a single call.

" + "documentation":"

Associates a list of analytics datasets for a given Connect Customer instance to a target account. You can associate multiple datasets in a single call.

" }, "BatchCreateDataTableValue":{ "name":"BatchCreateDataTableValue", @@ -478,7 +478,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Removes a list of analytics datasets associated with a given Amazon Connect instance. You can disassociate multiple datasets in a single call.

" + "documentation":"

Removes a list of analytics datasets associated with a given Connect Customer instance. You can disassociate multiple datasets in a single call.

" }, "BatchGetAttachedFileMetadata":{ "name":"BatchGetAttachedFileMetadata", @@ -531,7 +531,7 @@ {"shape":"LimitExceededException"}, {"shape":"IdempotencyException"} ], - "documentation":"

Only the Amazon Connect outbound campaigns service principal is allowed to assume a role in your account and call this API.

Allows you to create a batch of contacts in Amazon Connect. The outbound campaigns capability ingests dial requests via the PutDialRequestBatch API. It then uses BatchPutContact to create contacts corresponding to those dial requests. If agents are available, the dial requests are dialed out, which results in a voice call. The resulting voice call uses the same contactId that was created by BatchPutContact.

", + "documentation":"

Only the Connect Customer outbound campaigns service principal is allowed to assume a role in your account and call this API.

Allows you to create a batch of contacts in Connect Customer. The outbound campaigns capability ingests dial requests via the PutDialRequestBatch API. It then uses BatchPutContact to create contacts corresponding to those dial requests. If agents are available, the dial requests are dialed out, which results in a voice call. The resulting voice call uses the same contactId that was created by BatchPutContact.

", "idempotent":true }, "BatchUpdateDataTableValue":{ @@ -569,7 +569,7 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Claims an available phone number to your Amazon Connect instance or traffic distribution group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.

For more information about how to use this operation, see Claim a phone number in your country and Claim phone numbers to traffic distribution groups in the Amazon Connect Administrator Guide.

You can call the SearchAvailablePhoneNumbers API for available phone numbers that you can claim. Call the DescribePhoneNumber API to verify the status of a previous ClaimPhoneNumber operation.

If you plan to claim and release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers. If you claim and release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

" + "documentation":"

Claims an available phone number to your Connect Customer instance or traffic distribution group. You can call this API only in the same Amazon Web Services Region where the Connect Customer instance or traffic distribution group was created.

For more information about how to use this operation, see Claim a phone number in your country and Claim phone numbers to traffic distribution groups in the Connect Customer Administrator Guide.

You can call the SearchAvailablePhoneNumbers API for available phone numbers that you can claim. Call the DescribePhoneNumber API to verify the status of a previous ClaimPhoneNumber operation.

If you plan to claim and release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers. If you claim and release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

" }, "CompleteAttachedFileUpload":{ "name":"CompleteAttachedFileUpload", @@ -605,7 +605,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates an agent status for the specified Amazon Connect instance.

" + "documentation":"

Creates an agent status for the specified Connect Customer instance.

" }, "CreateContact":{ "name":"CreateContact", @@ -646,7 +646,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a flow for the specified Amazon Connect instance.

You can also create and update flows using the Amazon Connect Flow language.

" + "documentation":"

Creates a flow for the specified Connect Customer instance.

You can also create and update flows using the Connect Customer Flow language.

" }, "CreateContactFlowModule":{ "name":"CreateContactFlowModule", @@ -668,7 +668,7 @@ {"shape":"IdempotencyException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a flow module for the specified Amazon Connect instance.

" + "documentation":"

Creates a flow module for the specified Connect Customer instance.

" }, "CreateContactFlowModuleAlias":{ "name":"CreateContactFlowModuleAlias", @@ -790,7 +790,7 @@ {"shape":"DuplicateResourceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Create new email address in the specified Amazon Connect instance. For more information about email addresses, see Create email addresses in the Amazon Connect Administrator Guide.

" + "documentation":"

Create new email address in the specified Connect Customer instance. For more information about email addresses, see Create email addresses in the Connect Customer Administrator Guide.

" }, "CreateEvaluationForm":{ "name":"CreateEvaluationForm", @@ -808,7 +808,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Creates 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.

", + "documentation":"

Creates an evaluation form in the specified Connect Customer 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.

", "idempotent":true }, "CreateHoursOfOperation":{ @@ -848,7 +848,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates an hours of operation override in an Amazon Connect hours of operation resource.

" + "documentation":"

Creates an hours of operation override in an Connect Customer hours of operation resource.

" }, "CreateInstance":{ "name":"CreateInstance", @@ -865,7 +865,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Initiates an Amazon Connect instance with all the supported channels enabled. It does not attach any storage, such as Amazon Simple Storage Service (Amazon S3) or Amazon Kinesis. It also does not allow for any configurations on features, such as Contact Lens for Amazon Connect.

For more information, see Create an Amazon Connect instance in the Amazon Connect Administrator Guide.

Amazon Connect enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Initiates an Connect Customer instance with all the supported channels enabled. It does not attach any storage, such as Amazon Simple Storage Service (Amazon S3) or Amazon Kinesis. It also does not allow for any configurations on features, such as Contact Lens for Connect Customer.

For more information, see Create an Connect Customer instance in the Connect Customer Administrator Guide.

Connect Customer enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

" }, "CreateIntegrationAssociation":{ "name":"CreateIntegrationAssociation", @@ -882,7 +882,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates an Amazon Web Services resource association with an Amazon Connect instance.

" + "documentation":"

Creates an Amazon Web Services resource association with an Connect Customer instance.

" }, "CreateNotification":{ "name":"CreateNotification", @@ -937,7 +937,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Enables rehydration of chats for the lifespan of a contact. For more information about chat rehydration, see Enable persistent chat in the Amazon Connect Administrator Guide.

" + "documentation":"

Enables rehydration of chats for the lifespan of a contact. For more information about chat rehydration, see Enable persistent chat in the Connect Customer Administrator Guide.

" }, "CreatePredefinedAttribute":{ "name":"CreatePredefinedAttribute", @@ -955,7 +955,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a new predefined attribute for the specified Amazon Connect instance. A predefined attribute is made up of a name and a value.

For the predefined attributes per instance quota, see Amazon Connect quotas.

Use cases

Following are common uses cases for this API:

  • Create an attribute for routing proficiency (for example, agent certification) that has predefined values (for example, a list of possible certifications). For more information, see Create predefined attributes for routing contacts to agents.

  • Create an attribute for business unit name that has a list of predefined business unit names used in your organization. This is a use case where information for a contact varies between transfers or conferences. For more information, see Use contact segment attributes.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Creates a new predefined attribute for the specified Connect Customer instance. A predefined attribute is made up of a name and a value.

For the predefined attributes per instance quota, see Connect Customer quotas.

Use cases

Following are common uses cases for this API:

  • Create an attribute for routing proficiency (for example, agent certification) that has predefined values (for example, a list of possible certifications). For more information, see Create predefined attributes for routing contacts to agents.

  • Create an attribute for business unit name that has a list of predefined business unit names used in your organization. This is a use case where information for a contact varies between transfers or conferences. For more information, see Use contact segment attributes.

Endpoints: See Connect Customer endpoints and quotas.

" }, "CreatePrompt":{ "name":"CreatePrompt", @@ -973,7 +973,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a prompt. For more information about prompts, such as supported file types and maximum length, see Create prompts in the Amazon Connect Administrator Guide.

" + "documentation":"

Creates a prompt. For more information about prompts, such as supported file types and maximum length, see Create prompts in the Connect Customer Administrator Guide.

" }, "CreatePushNotificationRegistration":{ "name":"CreatePushNotificationRegistration", @@ -991,7 +991,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates registration for a device token and a chat contact to receive real-time push notifications. For more information about push notifications, see Set up push notifications in Amazon Connect for mobile chat in the Amazon Connect Administrator Guide.

" + "documentation":"

Creates registration for a device token and a chat contact to receive real-time push notifications. For more information about push notifications, see Set up push notifications in Connect Customer for mobile chat in the Connect Customer Administrator Guide.

" }, "CreateQueue":{ "name":"CreateQueue", @@ -1010,7 +1010,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a new queue for the specified Amazon Connect instance.

  • If the phone number is claimed to a traffic distribution group that was created in the same Region as the Amazon Connect instance where you are calling this API, then you can use a full phone number ARN or a UUID for OutboundCallerIdNumberId. However, if the phone number is claimed to a traffic distribution group that is in one Region, and you are calling this API from an instance in another Amazon Web Services Region that is associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

  • Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the ListPhoneNumbersV2 API.

  • If you plan to use IAM policies to allow/deny access to this API for phone number resources claimed to a traffic distribution group, see Allow or Deny queue API actions for phone numbers in a replica Region.

" + "documentation":"

Creates a new queue for the specified Connect Customer instance.

  • If the phone number is claimed to a traffic distribution group that was created in the same Region as the Connect Customer instance where you are calling this API, then you can use a full phone number ARN or a UUID for OutboundCallerIdNumberId. However, if the phone number is claimed to a traffic distribution group that is in one Region, and you are calling this API from an instance in another Amazon Web Services Region that is associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

  • Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the ListPhoneNumbersV2 API.

  • If you plan to use IAM policies to allow/deny access to this API for phone number resources claimed to a traffic distribution group, see Allow or Deny queue API actions for phone numbers in a replica Region.

" }, "CreateQuickConnect":{ "name":"CreateQuickConnect", @@ -1029,7 +1029,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a quick connect for the specified Amazon Connect instance.

" + "documentation":"

Creates a quick connect for the specified Connect Customer instance.

" }, "CreateRoutingProfile":{ "name":"CreateRoutingProfile", @@ -1067,7 +1067,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a rule for the specified Amazon Connect instance.

Use the Rules Function language to code conditions for the rule.

" + "documentation":"

Creates a rule for the specified Connect Customer instance.

Use the Rules Function language to code conditions for the rule.

" }, "CreateSecurityProfile":{ "name":"CreateSecurityProfile", @@ -1086,7 +1086,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a security profile.

For information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" + "documentation":"

Creates a security profile.

For information about security profiles, see Security Profiles in the Connect Customer Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" }, "CreateTaskTemplate":{ "name":"CreateTaskTemplate", @@ -1104,7 +1104,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a new task template in the specified Amazon Connect instance.

" + "documentation":"

Creates a new task template in the specified Connect Customer instance.

" }, "CreateTestCase":{ "name":"CreateTestCase", @@ -1147,7 +1147,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ResourceNotReadyException"} ], - "documentation":"

Creates a traffic distribution group given an Amazon Connect instance that has been replicated.

The SignInConfig distribution is available only on a default TrafficDistributionGroup (see the IsDefault parameter in the TrafficDistributionGroup data type). If you call UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, an InvalidRequestException is returned.

For more information about creating traffic distribution groups, see Set up traffic distribution groups in the Amazon Connect Administrator Guide.

" + "documentation":"

Creates a traffic distribution group given an Connect Customer instance that has been replicated.

The SignInConfig distribution is available only on a default TrafficDistributionGroup (see the IsDefault parameter in the TrafficDistributionGroup data type). If you call UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, an InvalidRequestException is returned.

For more information about creating traffic distribution groups, see Set up traffic distribution groups in the Connect Customer Administrator Guide.

" }, "CreateUseCase":{ "name":"CreateUseCase", @@ -1183,7 +1183,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a user account for the specified Amazon Connect instance.

Certain UserIdentityInfo parameters are required in some situations. For example, Email, FirstName and LastName are required if you are using Amazon Connect or SAML for identity management.

Fields in PhoneConfig cannot be set simultaneously with their corresponding channel-specific configuration parameters. Specifically:

  • PhoneConfig.AutoAccept conflicts with AutoAcceptConfigs

  • PhoneConfig.AfterContactWorkTimeLimit conflicts with AfterContactWorkConfigs

  • PhoneConfig.PhoneType and PhoneConfig.PhoneNumber conflict with PhoneNumberConfigs

  • PhoneConfig.PersistentConnection conflicts with PersistentConnectionConfigs

We recommend using channel-specific parameters such as AutoAcceptConfigs, AfterContactWorkConfigs, PhoneNumberConfigs, PersistentConnectionConfigs, and VoiceEnhancementConfigs for per-channel configuration.

For information about how to create users using the Amazon Connect admin website, see Add Users in the Amazon Connect Administrator Guide.

" + "documentation":"

Creates a user account for the specified Connect Customer instance.

Certain UserIdentityInfo parameters are required in some situations. For example, Email, FirstName and LastName are required if you are using Connect Customer or SAML for identity management.

Fields in PhoneConfig cannot be set simultaneously with their corresponding channel-specific configuration parameters. Specifically:

  • PhoneConfig.AutoAccept conflicts with AutoAcceptConfigs

  • PhoneConfig.AfterContactWorkTimeLimit conflicts with AfterContactWorkConfigs

  • PhoneConfig.PhoneType and PhoneConfig.PhoneNumber conflict with PhoneNumberConfigs

  • PhoneConfig.PersistentConnection conflicts with PersistentConnectionConfigs

We recommend using channel-specific parameters such as AutoAcceptConfigs, AfterContactWorkConfigs, PhoneNumberConfigs, PersistentConnectionConfigs, and VoiceEnhancementConfigs for per-channel configuration.

For information about how to create users using the Connect Customer admin website, see Add Users in the Connect Customer Administrator Guide.

" }, "CreateUserHierarchyGroup":{ "name":"CreateUserHierarchyGroup", @@ -1264,7 +1264,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a custom vocabulary associated with your Amazon Connect instance. You can set a custom vocabulary to be your default vocabulary for a given language. Contact Lens for Amazon Connect uses the default vocabulary in post-call and real-time contact analysis sessions for that language.

" + "documentation":"

Creates a custom vocabulary associated with your Connect Customer instance. You can set a custom vocabulary to be your default vocabulary for a given language. Contact Lens for Connect Customer uses the default vocabulary in post-call and real-time contact analysis sessions for that language.

" }, "CreateWorkspace":{ "name":"CreateWorkspace", @@ -1324,7 +1324,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Deactivates 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.

" + "documentation":"

Deactivates an evaluation form in the specified Connect Customer instance. After a form is deactivated, it is no longer available for users to start new evaluations based on the form.

" }, "DeleteAttachedFile":{ "name":"DeleteAttachedFile", @@ -1357,7 +1357,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Deletes a contact evaluation in the specified Amazon Connect instance.

", + "documentation":"

Deletes a contact evaluation in the specified Connect Customer instance.

", "idempotent":true }, "DeleteContactFlow":{ @@ -1376,7 +1376,7 @@ {"shape":"InternalServiceException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a flow for the specified Amazon Connect instance.

" + "documentation":"

Deletes a flow for the specified Connect Customer instance.

" }, "DeleteContactFlowModule":{ "name":"DeleteContactFlowModule", @@ -1505,7 +1505,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Deletes email address from the specified Amazon Connect instance.

" + "documentation":"

Deletes email address from the specified Connect Customer instance.

" }, "DeleteEvaluationForm":{ "name":"DeleteEvaluationForm", @@ -1521,7 +1521,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Deletes 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.

  • If no version is provided, then the full form (all versions) is deleted.

", + "documentation":"

Deletes an evaluation form in the specified Connect Customer instance.

  • If the version property is provided, only the specified version of the evaluation form is deleted.

  • If no version is provided, then the full form (all versions) is deleted.

", "idempotent":true }, "DeleteHoursOfOperation":{ @@ -1554,7 +1554,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes an hours of operation override in an Amazon Connect hours of operation resource.

" + "documentation":"

Deletes an hours of operation override in an Connect Customer hours of operation resource.

" }, "DeleteInstance":{ "name":"DeleteInstance", @@ -1568,7 +1568,7 @@ {"shape":"InternalServiceException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Deletes the Amazon Connect instance. For more information, see Delete your Amazon Connect instance in the Amazon Connect Administrator Guide.

Amazon Connect enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Deletes the Connect Customer instance. For more information, see Delete your Connect Customer instance in the Connect Customer Administrator Guide.

Connect Customer enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

" }, "DeleteIntegrationAssociation":{ "name":"DeleteIntegrationAssociation", @@ -1583,7 +1583,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes an Amazon Web Services resource association from an Amazon Connect instance. The association must not have any use cases associated with it.

" + "documentation":"

Deletes an Amazon Web Services resource association from an Connect Customer instance. The association must not have any use cases associated with it.

" }, "DeleteNotification":{ "name":"DeleteNotification", @@ -1618,7 +1618,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes a predefined attribute from the specified Amazon Connect instance.

", + "documentation":"

Deletes a predefined attribute from the specified Connect Customer instance.

", "idempotent":true }, "DeletePrompt":{ @@ -1685,7 +1685,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes a quick connect.

After calling DeleteUser, it's important to call DeleteQuickConnect to delete any records related to the deleted users. This will help you:

  • Avoid dangling resources that impact your service quotas.

  • Remove deleted users so they don't appear to agents as transfer options.

  • Avoid the disruption of other Amazon Connect processes, such as instance replication and syncing if you're using Amazon Connect Global Resiliency.

" + "documentation":"

Deletes a quick connect.

After calling DeleteUser, it's important to call DeleteQuickConnect to delete any records related to the deleted users. This will help you:

  • Avoid dangling resources that impact your service quotas.

  • Remove deleted users so they don't appear to agents as transfer options.

  • Avoid the disruption of other Connect Customer processes, such as instance replication and syncing if you're using Connect Customer Global Resiliency.

" }, "DeleteRoutingProfile":{ "name":"DeleteRoutingProfile", @@ -1718,7 +1718,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes a rule for the specified Amazon Connect instance.

" + "documentation":"

Deletes a rule for the specified Connect Customer instance.

" }, "DeleteSecurityProfile":{ "name":"DeleteSecurityProfile", @@ -1788,7 +1788,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes a traffic distribution group. This API can be called only in the Region where the traffic distribution group is created.

For more information about deleting traffic distribution groups, see Delete traffic distribution groups in the Amazon Connect Administrator Guide.

" + "documentation":"

Deletes a traffic distribution group. This API can be called only in the Region where the traffic distribution group is created.

For more information about deleting traffic distribution groups, see Delete traffic distribution groups in the Connect Customer Administrator Guide.

" }, "DeleteUseCase":{ "name":"DeleteUseCase", @@ -1819,7 +1819,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes a user account from the specified Amazon Connect instance.

For information about what happens to a user's data when their account is deleted, see Delete Users from Your Amazon Connect Instance in the Amazon Connect Administrator Guide.

After calling DeleteUser, call DeleteQuickConnect to delete any records related to the deleted users. This will help you:

  • Avoid dangling resources that impact your service quotas.

  • Remove deleted users so they don't appear to agents as transfer options.

  • Avoid the disruption of other Amazon Connect processes, such as instance replication and syncing if you're using Amazon Connect Global Resiliency.

" + "documentation":"

Deletes a user account from the specified Connect Customer instance.

For information about what happens to a user's data when their account is deleted, see Delete Users from Your Connect Customer Instance in the Connect Customer Administrator Guide.

After calling DeleteUser, call DeleteQuickConnect to delete any records related to the deleted users. This will help you:

  • Avoid dangling resources that impact your service quotas.

  • Remove deleted users so they don't appear to agents as transfer options.

  • Avoid the disruption of other Connect Customer processes, such as instance replication and syncing if you're using Connect Customer Global Resiliency.

" }, "DeleteUserHierarchyGroup":{ "name":"DeleteUserHierarchyGroup", @@ -1980,7 +1980,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes the attached files configuration for the specified Amazon Connect instance and attachment scope.

If a custom configuration exists for the specified attachment scope, the custom configuration is returned. If no custom configuration exists, the default configuration values for that attachment scope are returned.

" + "documentation":"

Describes the attached files configuration for the specified Connect Customer instance and attachment scope.

If a custom configuration exists for the specified attachment scope, the custom configuration is returned. If no custom configuration exists, the default configuration values for that attachment scope are returned.

" }, "DescribeAuthenticationProfile":{ "name":"DescribeAuthenticationProfile", @@ -1997,7 +1997,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change. To request access to this API, contact Amazon Web Services Support.

Describes the target authentication profile.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change. To request access to this API, contact Amazon Web Services Support.

Describes the target authentication profile.

" }, "DescribeContact":{ "name":"DescribeContact", @@ -2014,7 +2014,7 @@ {"shape":"InternalServiceException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Describes the specified contact.

Use cases

Following are common uses cases for this API:

  • Retrieve contact information such as the caller's phone number and the specific number the caller dialed to integrate into custom monitoring or custom agent experience solutions.

  • Detect when a customer chat session disconnects due to a network issue on the agent's end. Use the DisconnectReason field in the ContactTraceRecord to detect this event and then re-queue the chat for followup.

  • Identify after contact work (ACW) duration and call recordings information when a COMPLETED event is received by using the contact event stream.

Important things to know

  • SystemEndpoint is not populated for contacts with initiation method of MONITOR, QUEUE_TRANSFER, or CALLBACK

  • Contact information remains available in Amazon Connect for 24 months from the InitiationTimestamp, and then it is deleted. Only contact information that is available in Amazon Connect is returned by this API.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Describes the specified contact.

Use cases

Following are common uses cases for this API:

  • Retrieve contact information such as the caller's phone number and the specific number the caller dialed to integrate into custom monitoring or custom agent experience solutions.

  • Detect when a customer chat session disconnects due to a network issue on the agent's end. Use the DisconnectReason field in the ContactTraceRecord to detect this event and then re-queue the chat for followup.

  • Identify after contact work (ACW) duration and call recordings information when a COMPLETED event is received by using the contact event stream.

Important things to know

  • SystemEndpoint is not populated for contacts with initiation method of MONITOR, QUEUE_TRANSFER, or CALLBACK

  • Contact information remains available in Connect Customer for 24 months from the InitiationTimestamp, and then it is deleted. Only contact information that is available in Connect Customer is returned by this API.

Endpoints: See Connect Customer endpoints and quotas.

" }, "DescribeContactEvaluation":{ "name":"DescribeContactEvaluation", @@ -2030,7 +2030,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes a contact evaluation in the specified Amazon Connect instance.

" + "documentation":"

Describes a contact evaluation in the specified Connect Customer instance.

" }, "DescribeContactFlow":{ "name":"DescribeContactFlow", @@ -2048,7 +2048,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes the specified flow.

You can also create and update flows using the Amazon Connect Flow language.

Use the $SAVED alias in the request to describe the SAVED content of a Flow. For example, arn:aws:.../contact-flow/{id}:$SAVED. After a flow is published, $SAVED needs to be supplied to view saved content that has not been published.

Use arn:aws:.../contact-flow/{id}:{version} to retrieve the content of a specific flow version.

In the response, Status indicates the flow status as either SAVED or PUBLISHED. The PUBLISHED status will initiate validation on the content. SAVED does not initiate validation of the content. SAVED | PUBLISHED

" + "documentation":"

Describes the specified flow.

You can also create and update flows using the Connect Customer Flow language.

Use the $SAVED alias in the request to describe the SAVED content of a Flow. For example, arn:aws:.../contact-flow/{id}:$SAVED. After a flow is published, $SAVED needs to be supplied to view saved content that has not been published.

Use arn:aws:.../contact-flow/{id}:{version} to retrieve the content of a specific flow version.

In the response, Status indicates the flow status as either SAVED or PUBLISHED. The PUBLISHED status will initiate validation on the content. SAVED does not initiate validation of the content. SAVED | PUBLISHED

" }, "DescribeContactFlowModule":{ "name":"DescribeContactFlowModule", @@ -2138,7 +2138,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describe email address form the specified Amazon Connect instance.

" + "documentation":"

Describe email address form the specified Connect Customer instance.

" }, "DescribeEvaluationForm":{ "name":"DescribeEvaluationForm", @@ -2154,7 +2154,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes 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.

" + "documentation":"

Describes an evaluation form in the specified Connect Customer instance. If the version property is not provided, the latest version of the evaluation form is described.

" }, "DescribeHoursOfOperation":{ "name":"DescribeHoursOfOperation", @@ -2203,7 +2203,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns the current state of the specified instance identifier. It tracks the instance while it is being created and returns an error status, if applicable.

If an instance is not created successfully, the instance status reason field returns details relevant to the reason. The instance in a failed state is returned only for 24 hours after the CreateInstance API was invoked.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns the current state of the specified instance identifier. It tracks the instance while it is being created and returns an error status, if applicable.

If an instance is not created successfully, the instance status reason field returns details relevant to the reason. The instance in a failed state is returned only for 24 hours after the CreateInstance API was invoked.

" }, "DescribeInstanceAttribute":{ "name":"DescribeInstanceAttribute", @@ -2220,7 +2220,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Describes the specified instance attribute.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Describes the specified instance attribute.

" }, "DescribeInstanceStorageConfig":{ "name":"DescribeInstanceStorageConfig", @@ -2237,7 +2237,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Retrieves the current storage configurations for the specified resource type, association ID, and instance ID.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Retrieves the current storage configurations for the specified resource type, association ID, and instance ID.

" }, "DescribeNotification":{ "name":"DescribeNotification", @@ -2272,7 +2272,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Gets details and status of a phone number that’s claimed to your Amazon Connect instance or traffic distribution group.

If the number is claimed to a traffic distribution group, and you are calling in the Amazon Web Services Region where the traffic distribution group was created, you can use either a phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you receive a ResourceNotFoundException.

" + "documentation":"

Gets details and status of a phone number that’s claimed to your Connect Customer instance or traffic distribution group.

If the number is claimed to a traffic distribution group, and you are calling in the Amazon Web Services Region where the traffic distribution group was created, you can use either a phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you receive a ResourceNotFoundException.

" }, "DescribePredefinedAttribute":{ "name":"DescribePredefinedAttribute", @@ -2289,7 +2289,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes a predefined attribute for the specified Amazon Connect instance. A predefined attribute is made up of a name and a value. You can use predefined attributes for:

For the predefined attributes per instance quota, see Amazon Connect quotas.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Describes a predefined attribute for the specified Connect Customer instance. A predefined attribute is made up of a name and a value. You can use predefined attributes for:

For the predefined attributes per instance quota, see Connect Customer quotas.

Endpoints: See Connect Customer endpoints and quotas.

" }, "DescribePrompt":{ "name":"DescribePrompt", @@ -2374,7 +2374,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes a rule for the specified Amazon Connect instance.

" + "documentation":"

Describes a rule for the specified Connect Customer instance.

" }, "DescribeSecurityProfile":{ "name":"DescribeSecurityProfile", @@ -2391,7 +2391,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Gets basic information about the security profile.

For information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" + "documentation":"

Gets basic information about the security profile.

For information about security profiles, see Security Profiles in the Connect Customer Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" }, "DescribeTestCase":{ "name":"DescribeTestCase", @@ -2443,7 +2443,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes the specified user. You can find the instance ID in the Amazon Connect console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

" + "documentation":"

Describes the specified user. You can find the instance ID in the Connect Customer console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

" }, "DescribeUserHierarchyGroup":{ "name":"DescribeUserHierarchyGroup", @@ -2477,7 +2477,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes the hierarchy structure of the specified Amazon Connect instance.

" + "documentation":"

Describes the hierarchy structure of the specified Connect Customer instance.

" }, "DescribeView":{ "name":"DescribeView", @@ -2495,7 +2495,7 @@ {"shape":"InternalServiceException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Retrieves the view for the specified Amazon Connect instance and view identifier.

The view identifier can be supplied as a ViewId or ARN.

$SAVED needs to be supplied if a view is unpublished.

The view identifier can contain an optional qualifier, for example, <view-id>:$SAVED, which is either an actual version number or an Amazon Connect managed qualifier $SAVED | $LATEST. If it is not supplied, then $LATEST is assumed for customer managed views and an error is returned if there is no published content available. Version 1 is assumed for Amazon Web Services managed views.

" + "documentation":"

Retrieves the view for the specified Connect Customer instance and view identifier.

The view identifier can be supplied as a ViewId or ARN.

$SAVED needs to be supplied if a view is unpublished.

The view identifier can contain an optional qualifier, for example, <view-id>:$SAVED, which is either an actual version number or an Connect Customer managed qualifier $SAVED | $LATEST. If it is not supplied, then $LATEST is assumed for customer managed views and an error is returned if there is no published content available. Version 1 is assumed for Amazon Web Services managed views.

" }, "DescribeVocabulary":{ "name":"DescribeVocabulary", @@ -2546,7 +2546,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Removes the dataset ID associated with a given Amazon Connect instance.

" + "documentation":"

Removes the dataset ID associated with a given Connect Customer instance.

" }, "DisassociateApprovedOrigin":{ "name":"DisassociateApprovedOrigin", @@ -2562,7 +2562,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Revokes access to integrated applications from Amazon Connect.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Revokes access to integrated applications from Connect Customer.

" }, "DisassociateBot":{ "name":"DisassociateBot", @@ -2577,7 +2577,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex or Amazon Lex V2 bot.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex or Amazon Lex V2 bot.

" }, "DisassociateEmailAddressAlias":{ "name":"DisassociateEmailAddressAlias", @@ -2596,7 +2596,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Removes the alias association between two email addresses in an Amazon Connect instance. After disassociation, emails sent to the former alias email address are no longer forwarded to the primary email address. Both email addresses continue to exist independently and can receive emails directly.

Use cases

Following are common uses cases for this API:

  • Department separation: Remove alias relationships when splitting a consolidated support queue back into separate department-specific queues.

  • Email address retirement: Cleanly remove forwarding relationships before decommissioning old email addresses.

  • Organizational restructuring: Reconfigure email routing when business processes change and aliases are no longer needed.

Important things to know

  • Concurrent operations: This API uses distributed locking, so concurrent operations on the same email addresses may be temporarily blocked.

  • Emails sent to the former alias address are still delivered directly to that address if it exists.

  • You do not need to delete the email addresses after disassociation. Both addresses remain active independently.

  • After a successful disassociation, you can immediately create a new alias relationship with the same addresses.

  • 200 status means alias was successfully disassociated.

DisassociateEmailAddressAlias does not return the following information:

  • Details in the response about the email that was disassociated. The response returns an empty body.

  • The timestamp of when the disassociation occurred.

Endpoints: See Amazon Connect endpoints and quotas.

Related operations

" + "documentation":"

Removes the alias association between two email addresses in an Connect Customer instance. After disassociation, emails sent to the former alias email address are no longer forwarded to the primary email address. Both email addresses continue to exist independently and can receive emails directly.

Use cases

Following are common uses cases for this API:

  • Department separation: Remove alias relationships when splitting a consolidated support queue back into separate department-specific queues.

  • Email address retirement: Cleanly remove forwarding relationships before decommissioning old email addresses.

  • Organizational restructuring: Reconfigure email routing when business processes change and aliases are no longer needed.

Important things to know

  • Concurrent operations: This API uses distributed locking, so concurrent operations on the same email addresses may be temporarily blocked.

  • Emails sent to the former alias address are still delivered directly to that address if it exists.

  • You do not need to delete the email addresses after disassociation. Both addresses remain active independently.

  • After a successful disassociation, you can immediately create a new alias relationship with the same addresses.

  • 200 status means alias was successfully disassociated.

DisassociateEmailAddressAlias does not return the following information:

  • Details in the response about the email that was disassociated. The response returns an empty body.

  • The timestamp of when the disassociation occurred.

Endpoints: See Connect Customer endpoints and quotas.

Related operations

" }, "DisassociateFlow":{ "name":"DisassociateFlow", @@ -2647,7 +2647,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Removes the storage type configurations for the specified resource type and association ID.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Removes the storage type configurations for the specified resource type and association ID.

" }, "DisassociateLambdaFunction":{ "name":"DisassociateLambdaFunction", @@ -2663,7 +2663,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Remove the Lambda function from the dropdown options available in the relevant flow blocks.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Remove the Lambda function from the dropdown options available in the relevant flow blocks.

" }, "DisassociateLexBot":{ "name":"DisassociateLexBot", @@ -2679,7 +2679,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex bot.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex bot.

" }, "DisassociatePhoneNumberContactFlow":{ "name":"DisassociatePhoneNumberContactFlow", @@ -2695,7 +2695,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Removes the flow association from a phone number claimed to your Amazon Connect instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" + "documentation":"

Removes the flow association from a phone number claimed to your Connect Customer instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "DisassociateQueueEmailAddresses":{ "name":"DisassociateQueueEmailAddresses", @@ -2760,7 +2760,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Deletes the specified security key.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Deletes the specified security key.

" }, "DisassociateSecurityProfiles":{ "name":"DisassociateSecurityProfiles", @@ -2917,7 +2917,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves contact metric data for a specified contact.

Use cases

Following are common use cases for position in queue and estimated wait time:

  • Customer-Facing Wait Time Announcements - Display or announce the estimated wait time and position in queue to customers before or during their queue experience.

  • Callback Offerings - Offer customers a callback option when the estimated wait time or position in queue exceeds a defined threshold.

  • Queue Routing Decisions - Route incoming contacts to less congested queues by comparing estimated wait time and position in queue across multiple queues.

  • Self-Service Deflection - Redirect customers to self-service options like chatbots or FAQs when estimated wait time is high or position in queue is unfavorable.

Important things to know

  • Metrics are only available while the contact is actively in queue.

  • For more information, see the Position in queue metric in the Amazon Connect Administrator Guide.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Retrieves contact metric data for a specified contact.

Use cases

Following are common use cases for position in queue and estimated wait time:

  • Customer-Facing Wait Time Announcements - Display or announce the estimated wait time and position in queue to customers before or during their queue experience.

  • Callback Offerings - Offer customers a callback option when the estimated wait time or position in queue exceeds a defined threshold.

  • Queue Routing Decisions - Route incoming contacts to less congested queues by comparing estimated wait time and position in queue across multiple queues.

  • Self-Service Deflection - Redirect customers to self-service options like chatbots or FAQs when estimated wait time is high or position in queue is unfavorable.

Important things to know

  • Metrics are only available while the contact is actively in queue.

  • For more information, see the Position in queue metric in the Connect Customer Administrator Guide.

Endpoints: See Connect Customer endpoints and quotas.

" }, "GetCurrentMetricData":{ "name":"GetCurrentMetricData", @@ -2934,7 +2934,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets the real-time metric data from the specified Amazon Connect instance.

For a description of each metric, see Metrics definitions in the Amazon Connect Administrator Guide.

When you make a successful API request, you can expect the following metric values in the response:

  1. Metric value is null: The calculation cannot be performed due to divide by zero or insufficient data

  2. Metric value is a number (including 0) of defined type: The number provided is the calculation result

  3. MetricResult list is empty: The request cannot find any data in the system

The following guidelines can help you work with the API:

  • Each dimension in the metric response must contain a value

  • Each item in MetricResult must include all requested metrics

  • If the response is slow due to large result sets, try these approaches:

    • Add filters to reduce the amount of data returned

" + "documentation":"

Gets the real-time metric data from the specified Connect Customer instance.

For a description of each metric, see Metrics definitions in the Connect Customer Administrator Guide.

When you make a successful API request, you can expect the following metric values in the response:

  1. Metric value is null: The calculation cannot be performed due to divide by zero or insufficient data

  2. Metric value is a number (including 0) of defined type: The number provided is the calculation result

  3. MetricResult list is empty: The request cannot find any data in the system

The following guidelines can help you work with the API:

  • Each dimension in the metric response must contain a value

  • Each item in MetricResult must include all requested metrics

  • If the response is slow due to large result sets, try these approaches:

    • Add filters to reduce the amount of data returned

" }, "GetCurrentUserData":{ "name":"GetCurrentUserData", @@ -2951,7 +2951,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets the real-time active user data from the specified Amazon Connect instance.

" + "documentation":"

Gets the real-time active user data from the specified Connect Customer instance.

" }, "GetEffectiveHoursOfOperations":{ "name":"GetEffectiveHoursOfOperations", @@ -2986,7 +2986,7 @@ {"shape":"InternalServiceException"}, {"shape":"DuplicateResourceException"} ], - "documentation":"

Supports SAML sign-in for Amazon Connect. Retrieves a token for federation. The token is for the Amazon Connect user which corresponds to the IAM credentials that were used to invoke this action.

For more information about how SAML sign-in works in Amazon Connect, see Configure SAML with IAM for Amazon Connect in the Amazon Connect Administrator Guide.

This API doesn't support root users. If you try to invoke GetFederationToken with root credentials, an error message similar to the following one appears:

Provided identity: Principal: .... User: .... cannot be used for federation with Amazon Connect

" + "documentation":"

Supports SAML sign-in for Connect Customer. Retrieves a token for federation. The token is for the Connect Customer user which corresponds to the IAM credentials that were used to invoke this action.

For more information about how SAML sign-in works in Connect Customer, see Configure SAML with IAM for Connect Customer in the Connect Customer Administrator Guide.

This API doesn't support root users. If you try to invoke GetFederationToken with root credentials, an error message similar to the following one appears:

Provided identity: Principal: .... User: .... cannot be used for federation with Connect Customer

" }, "GetFlowAssociation":{ "name":"GetFlowAssociation", @@ -3021,7 +3021,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets historical metric data from the specified Amazon Connect instance.

For a description of each historical metric, see Metrics definitions in the Amazon Connect Administrator Guide.

We recommend using the GetMetricDataV2 API. It provides more flexibility, features, and the ability to query longer time ranges than GetMetricData. Use it to retrieve historical agent and contact metrics for the last 3 months, at varying intervals. You can also use it to build custom dashboards to measure historical queue and agent performance. For example, you can track the number of incoming contacts for the last 7 days, with data split by day, to see how contact volume changed per day of the week.

" + "documentation":"

Gets historical metric data from the specified Connect Customer instance.

For a description of each historical metric, see Metrics definitions in the Connect Customer Administrator Guide.

We recommend using the GetMetricDataV2 API. It provides more flexibility, features, and the ability to query longer time ranges than GetMetricData. Use it to retrieve historical agent and contact metrics for the last 3 months, at varying intervals. You can also use it to build custom dashboards to measure historical queue and agent performance. For example, you can track the number of incoming contacts for the last 7 days, with data split by day, to see how contact volume changed per day of the week.

" }, "GetMetricDataV2":{ "name":"GetMetricDataV2", @@ -3038,7 +3038,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets metric data from the specified Amazon Connect instance.

GetMetricDataV2 offers more features than GetMetricData, the previous version of this API. It has new metrics, offers filtering at a metric level, and offers the ability to filter and group data by channels, queues, routing profiles, agents, and agent hierarchy levels. It can retrieve historical data for the last 3 months, at varying intervals. It does not support agent queues.

For a description of the historical metrics that are supported by GetMetricDataV2 and GetMetricData, see Metrics definitions in the Amazon Connect Administrator Guide.

When you make a successful API request, you can expect the following metric values in the response:

  1. Metric value is null: The calculation cannot be performed due to divide by zero or insufficient data

  2. Metric value is a number (including 0) of defined type: The number provided is the calculation result

  3. MetricResult list is empty: The request cannot find any data in the system

The following guidelines can help you work with the API:

  • Each dimension in the metric response must contain a value

  • Each item in MetricResult must include all requested metrics

  • If the response is slow due to large result sets, try these approaches:

    • Narrow the time range of your request

    • Add filters to reduce the amount of data returned

" + "documentation":"

Gets metric data from the specified Connect Customer instance.

GetMetricDataV2 offers more features than GetMetricData, the previous version of this API. It has new metrics, offers filtering at a metric level, and offers the ability to filter and group data by channels, queues, routing profiles, agents, and agent hierarchy levels. It can retrieve historical data for the last 3 months, at varying intervals. It does not support agent queues.

For a description of the historical metrics that are supported by GetMetricDataV2 and GetMetricData, see Metrics definitions in the Connect Customer Administrator Guide.

When you make a successful API request, you can expect the following metric values in the response:

  1. Metric value is null: The calculation cannot be performed due to divide by zero or insufficient data

  2. Metric value is a number (including 0) of defined type: The number provided is the calculation result

  3. MetricResult list is empty: The request cannot find any data in the system

The following guidelines can help you work with the API:

  • Each dimension in the metric response must contain a value

  • Each item in MetricResult must include all requested metrics

  • If the response is slow due to large result sets, try these approaches:

    • Narrow the time range of your request

    • Add filters to reduce the amount of data returned

" }, "GetPromptFile":{ "name":"GetPromptFile", @@ -3072,7 +3072,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Gets details about a specific task template in the specified Amazon Connect instance.

" + "documentation":"

Gets details about a specific task template in the specified Connect Customer instance.

" }, "GetTestCaseExecutionSummary":{ "name":"GetTestCaseExecutionSummary", @@ -3125,7 +3125,7 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Imports a claimed phone number from an external service, such as Amazon Web Services End User Messaging, into an Amazon Connect instance. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance was created.

Call the DescribePhoneNumber API to verify the status of a previous ImportPhoneNumber operation.

If you plan to claim or import numbers and then release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim or import and then release up to 200% of your maximum number of active phone numbers. If you claim or import and then release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming or importing any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed or imported numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services Support ticket.

" + "documentation":"

Imports a claimed phone number from an external service, such as Amazon Web Services End User Messaging, into an Connect Customer instance. You can call this API only in the same Amazon Web Services Region where the Connect Customer instance was created.

Call the DescribePhoneNumber API to verify the status of a previous ImportPhoneNumber operation.

If you plan to claim or import numbers and then release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim or import and then release up to 200% of your maximum number of active phone numbers. If you claim or import and then release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming or importing any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed or imported numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services Support ticket.

" }, "ImportWorkspaceMedia":{ "name":"ImportWorkspaceMedia", @@ -3176,7 +3176,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists the association status of requested dataset ID for a given Amazon Connect instance.

" + "documentation":"

Lists the association status of requested dataset ID for a given Connect Customer instance.

" }, "ListAnalyticsDataLakeDataSets":{ "name":"ListAnalyticsDataLakeDataSets", @@ -3193,7 +3193,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists the data lake datasets available to associate with for a given Amazon Connect instance.

" + "documentation":"

Lists the data lake datasets available to associate with for a given Connect Customer instance.

" }, "ListApprovedOrigins":{ "name":"ListApprovedOrigins", @@ -3210,7 +3210,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all approved origins associated with the instance.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns a paginated list of all approved origins associated with the instance.

" }, "ListAssociatedContacts":{ "name":"ListAssociatedContacts", @@ -3244,7 +3244,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Provides summary information about the attached files configurations for the specified Amazon Connect instance.

This API returns effective configurations (custom overrides or defaults) for each attachment scope. If no custom configuration exists for a scope, the default configuration values are returned.

" + "documentation":"

Provides summary information about the attached files configurations for the specified Connect Customer instance.

This API returns effective configurations (custom overrides or defaults) for each attachment scope. If no custom configuration exists for a scope, the default configuration values are returned.

" }, "ListAuthenticationProfiles":{ "name":"ListAuthenticationProfiles", @@ -3261,7 +3261,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change. To request access to this API, contact Amazon Web Services Support.

Provides summary information about the authentication profiles in a specified Amazon Connect instance.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change. To request access to this API, contact Amazon Web Services Support.

Provides summary information about the authentication profiles in a specified Connect Customer instance.

" }, "ListBots":{ "name":"ListBots", @@ -3277,7 +3277,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance. Use this API to return both Amazon Lex V1 and V2 bots.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance. Use this API to return both Amazon Lex V1 and V2 bots.

" }, "ListChildHoursOfOperations":{ "name":"ListChildHoursOfOperations", @@ -3310,7 +3310,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists contact evaluations in the specified Amazon Connect instance.

" + "documentation":"

Lists contact evaluations in the specified Connect Customer instance.

" }, "ListContactFlowModuleAliases":{ "name":"ListContactFlowModuleAliases", @@ -3364,7 +3364,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the flow modules for the specified Amazon Connect instance.

" + "documentation":"

Provides information about the flow modules for the specified Connect Customer instance.

" }, "ListContactFlowVersions":{ "name":"ListContactFlowVersions", @@ -3382,7 +3382,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Returns all the available versions for the specified Amazon Connect instance and flow identifier.

" + "documentation":"

Returns all the available versions for the specified Connect Customer instance and flow identifier.

" }, "ListContactFlows":{ "name":"ListContactFlows", @@ -3399,7 +3399,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the flows for the specified Amazon Connect instance.

You can also create and update flows using the Amazon Connect Flow language.

For more information about flows, see Flows in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides information about the flows for the specified Connect Customer instance.

You can also create and update flows using the Connect Customer Flow language.

For more information about flows, see Flows in the Connect Customer Administrator Guide.

" }, "ListContactReferences":{ "name":"ListContactReferences", @@ -3416,7 +3416,7 @@ {"shape":"InternalServiceException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

For the specified referenceTypes, returns a list of references associated with the contact. References are links to documents that are related to a contact, such as emails, attachments, or URLs.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

For the specified referenceTypes, returns a list of references associated with the contact. References are links to documents that are related to a contact, such as emails, attachments, or URLs.

" }, "ListDataTableAttributes":{ "name":"ListDataTableAttributes", @@ -3504,7 +3504,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the default vocabularies for the specified Amazon Connect instance.

" + "documentation":"

Lists the default vocabularies for the specified Connect Customer instance.

" }, "ListEntitySecurityProfiles":{ "name":"ListEntitySecurityProfiles", @@ -3537,7 +3537,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists versions of an evaluation form in the specified Amazon Connect instance.

" + "documentation":"

Lists versions of an evaluation form in the specified Connect Customer instance.

" }, "ListEvaluationForms":{ "name":"ListEvaluationForms", @@ -3553,7 +3553,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists evaluation forms in the specified Amazon Connect instance.

" + "documentation":"

Lists evaluation forms in the specified Connect Customer instance.

" }, "ListFlowAssociations":{ "name":"ListFlowAssociations", @@ -3605,7 +3605,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the hours of operation for the specified Amazon Connect instance.

For more information about hours of operation, see Set the Hours of Operation for a Queue in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides information about the hours of operation for the specified Connect Customer instance.

For more information about hours of operation, see Set the Hours of Operation for a Queue in the Connect Customer Administrator Guide.

" }, "ListInstanceAttributes":{ "name":"ListInstanceAttributes", @@ -3622,7 +3622,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all attribute types for the given instance.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns a paginated list of all attribute types for the given instance.

" }, "ListInstanceStorageConfigs":{ "name":"ListInstanceStorageConfigs", @@ -3639,7 +3639,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of storage configs for the identified instance and resource type.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns a paginated list of storage configs for the identified instance and resource type.

" }, "ListInstances":{ "name":"ListInstances", @@ -3653,7 +3653,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Return a list of instances which are in active state, creation-in-progress state, and failed state. Instances that aren't successfully created (they are in a failed state) are returned only for 24 hours after the CreateInstance API was invoked.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Return a list of instances which are in active state, creation-in-progress state, and failed state. Instances that aren't successfully created (they are in a failed state) are returned only for 24 hours after the CreateInstance API was invoked.

" }, "ListIntegrationAssociations":{ "name":"ListIntegrationAssociations", @@ -3669,7 +3669,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Provides summary information about the Amazon Web Services resource associations for the specified Amazon Connect instance.

" + "documentation":"

Provides summary information about the Amazon Web Services resource associations for the specified Connect Customer instance.

" }, "ListLambdaFunctions":{ "name":"ListLambdaFunctions", @@ -3686,7 +3686,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all Lambda functions that display in the dropdown options in the relevant flow blocks.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns a paginated list of all Lambda functions that display in the dropdown options in the relevant flow blocks.

" }, "ListLexBots":{ "name":"ListLexBots", @@ -3703,7 +3703,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all the Amazon Lex V1 bots currently associated with the instance. To return both Amazon Lex V1 and V2 bots, use the ListBots API.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns a paginated list of all the Amazon Lex V1 bots currently associated with the instance. To return both Amazon Lex V1 and V2 bots, use the ListBots API.

" }, "ListNotifications":{ "name":"ListNotifications", @@ -3738,7 +3738,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the phone numbers for the specified Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

  • We recommend using ListPhoneNumbersV2 to return phone number types. ListPhoneNumbers doesn't support number types UIFN, SHARED, THIRD_PARTY_TF, and THIRD_PARTY_DID. While it returns numbers of those types, it incorrectly lists them as TOLL_FREE or DID.

  • The phone number Arn value that is returned from each of the items in the PhoneNumberSummaryList cannot be used to tag phone number resources. It will fail with a ResourceNotFoundException. Instead, use the ListPhoneNumbersV2 API. It returns the new phone number ARN that can be used to tag phone number resources.

" + "documentation":"

Provides information about the phone numbers for the specified Connect Customer instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Connect Customer Administrator Guide.

  • We recommend using ListPhoneNumbersV2 to return phone number types. ListPhoneNumbers doesn't support number types UIFN, SHARED, THIRD_PARTY_TF, and THIRD_PARTY_DID. While it returns numbers of those types, it incorrectly lists them as TOLL_FREE or DID.

  • The phone number Arn value that is returned from each of the items in the PhoneNumberSummaryList cannot be used to tag phone number resources. It will fail with a ResourceNotFoundException. Instead, use the ListPhoneNumbersV2 API. It returns the new phone number ARN that can be used to tag phone number resources.

" }, "ListPhoneNumbersV2":{ "name":"ListPhoneNumbersV2", @@ -3755,7 +3755,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists phone numbers claimed to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with traffic distribution group.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

  • When given an instance ARN, ListPhoneNumbersV2 returns only the phone numbers claimed to the instance.

  • When given a traffic distribution group ARN ListPhoneNumbersV2 returns only the phone numbers claimed to the traffic distribution group.

" + "documentation":"

Lists phone numbers claimed to your Connect Customer instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with traffic distribution group.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Connect Customer Administrator Guide.

  • When given an instance ARN, ListPhoneNumbersV2 returns only the phone numbers claimed to the instance.

  • When given a traffic distribution group ARN ListPhoneNumbersV2 returns only the phone numbers claimed to the traffic distribution group.

" }, "ListPredefinedAttributes":{ "name":"ListPredefinedAttributes", @@ -3772,7 +3772,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists predefined attributes for the specified Amazon Connect instance. A predefined attribute is made up of a name and a value. You can use predefined attributes for:

For the predefined attributes per instance quota, see Amazon Connect quotas.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Lists predefined attributes for the specified Connect Customer instance. A predefined attribute is made up of a name and a value. You can use predefined attributes for:

For the predefined attributes per instance quota, see Connect Customer quotas.

Endpoints: See Connect Customer endpoints and quotas.

" }, "ListPrompts":{ "name":"ListPrompts", @@ -3789,7 +3789,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the prompts for the specified Amazon Connect instance.

" + "documentation":"

Provides information about the prompts for the specified Connect Customer instance.

" }, "ListQueueEmailAddresses":{ "name":"ListQueueEmailAddresses", @@ -3841,7 +3841,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the queues for the specified Amazon Connect instance.

If you do not specify a QueueTypes parameter, both standard and agent queues are returned. This might cause an unexpected truncation of results if you have more than 1000 agents and you limit the number of results of the API call in code.

For more information about queues, see Queues: Standard and Agent in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides information about the queues for the specified Connect Customer instance.

If you do not specify a QueueTypes parameter, both standard and agent queues are returned. This might cause an unexpected truncation of results if you have more than 1000 agents and you limit the number of results of the API call in code.

For more information about queues, see Queues: Standard and Agent in the Connect Customer Administrator Guide.

" }, "ListQuickConnects":{ "name":"ListQuickConnects", @@ -3858,7 +3858,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the quick connects for the specified Amazon Connect instance.

" + "documentation":"

Provides information about the quick connects for the specified Connect Customer instance.

" }, "ListRealtimeContactAnalysisSegmentsV2":{ "name":"ListRealtimeContactAnalysisSegmentsV2", @@ -3893,7 +3893,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists the manual assignment queues associated with a routing profile.

Use cases

Following are common uses cases for this API:

  • This API returns list of queues where contacts can be manually assigned or picked by an agent who has access to the Worklist app. The user can additionally filter on queues, if they have access to those queues (otherwise a invalid request exception will be thrown).

    For information about how manual contact assignment works in the agent workspace, see the Access the Worklist app in the Amazon Connect agent workspace in the Amazon Connect Administrator Guide.

Important things to know

  • This API only returns the manual assignment queues associated with a routing profile. Use the ListRoutingProfileQueues API to list the auto assignment queues for the routing profile.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Lists the manual assignment queues associated with a routing profile.

Use cases

Following are common uses cases for this API:

  • This API returns list of queues where contacts can be manually assigned or picked by an agent who has access to the Worklist app. The user can additionally filter on queues, if they have access to those queues (otherwise a invalid request exception will be thrown).

    For information about how manual contact assignment works in the agent workspace, see the Access the Worklist app in the Connect Customer agent workspace in the Connect Customer Administrator Guide.

Important things to know

  • This API only returns the manual assignment queues associated with a routing profile. Use the ListRoutingProfileQueues API to list the auto assignment queues for the routing profile.

Endpoints: See Connect Customer endpoints and quotas.

" }, "ListRoutingProfileQueues":{ "name":"ListRoutingProfileQueues", @@ -3927,7 +3927,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides summary information about the routing profiles for the specified Amazon Connect instance.

For more information about routing profiles, see Routing Profiles and Create a Routing Profile in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides summary information about the routing profiles for the specified Connect Customer instance.

For more information about routing profiles, see Routing Profiles and Create a Routing Profile in the Connect Customer Administrator Guide.

" }, "ListRules":{ "name":"ListRules", @@ -3944,7 +3944,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

List all rules for the specified Amazon Connect instance.

" + "documentation":"

List all rules for the specified Connect Customer instance.

" }, "ListSecurityKeys":{ "name":"ListSecurityKeys", @@ -3961,7 +3961,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all security keys associated with the instance.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Returns a paginated list of all security keys associated with the instance.

" }, "ListSecurityProfileApplications":{ "name":"ListSecurityProfileApplications", @@ -4012,7 +4012,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists the permissions granted to a security profile.

For information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" + "documentation":"

Lists the permissions granted to a security profile.

For information about security profiles, see Security Profiles in the Connect Customer Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" }, "ListSecurityProfiles":{ "name":"ListSecurityProfiles", @@ -4029,7 +4029,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides summary information about the security profiles for the specified Amazon Connect instance.

For more information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" + "documentation":"

Provides summary information about the security profiles for the specified Connect Customer instance.

For more information about security profiles, see Security Profiles in the Connect Customer Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -4046,7 +4046,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists the tags for the specified resource.

For sample policies that use tags, see Amazon Connect Identity-Based Policy Examples in the Amazon Connect Administrator Guide.

" + "documentation":"

Lists the tags for the specified resource.

For sample policies that use tags, see Connect Customer Identity-Based Policy Examples in the Connect Customer Administrator Guide.

" }, "ListTaskTemplates":{ "name":"ListTaskTemplates", @@ -4063,7 +4063,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Lists task templates for the specified Amazon Connect instance.

" + "documentation":"

Lists task templates for the specified Connect Customer instance.

" }, "ListTestCaseExecutionRecords":{ "name":"ListTestCaseExecutionRecords", @@ -4183,7 +4183,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides summary information about the hierarchy groups for the specified Amazon Connect instance.

For more information about agent hierarchies, see Set Up Agent Hierarchies in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides summary information about the hierarchy groups for the specified Connect Customer instance.

For more information about agent hierarchies, see Set Up Agent Hierarchies in the Connect Customer Administrator Guide.

" }, "ListUserNotifications":{ "name":"ListUserNotifications", @@ -4235,7 +4235,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides summary information about the users for the specified Amazon Connect instance.

" + "documentation":"

Provides summary information about the users for the specified Connect Customer instance.

" }, "ListViewVersions":{ "name":"ListViewVersions", @@ -4253,7 +4253,7 @@ {"shape":"InternalServiceException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Returns all the available versions for the specified Amazon Connect instance and view identifier.

Results will be sorted from highest to lowest.

" + "documentation":"

Returns all the available versions for the specified Connect Customer instance and view identifier.

Results will be sorted from highest to lowest.

" }, "ListViews":{ "name":"ListViews", @@ -4382,7 +4382,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Changes the current status of a user or agent in Amazon Connect. If the agent is currently handling a contact, this sets the agent's next status.

For more information, see Agent status and Set your next status in the Amazon Connect Administrator Guide.

" + "documentation":"

Changes the current status of a user or agent in Connect Customer. If the agent is currently handling a contact, this sets the agent's next status.

For more information, see Agent status and Set your next status in the Connect Customer Administrator Guide.

" }, "ReleasePhoneNumber":{ "name":"ReleasePhoneNumber", @@ -4400,7 +4400,7 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You can call this API only in the Amazon Web Services Region where the number was claimed.

To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber API, not the Amazon Connect admin website.

After releasing a phone number, the phone number enters into a cooldown period for up to 180 days. It cannot be searched for or claimed again until the period has ended. If you accidentally release a phone number, contact Amazon Web Services Support.

If you plan to claim and release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers. If you claim and release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

" + "documentation":"

Releases a phone number previously claimed to an Connect Customer instance or traffic distribution group. You can call this API only in the Amazon Web Services Region where the number was claimed.

To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber API, not the Connect Customer admin website.

After releasing a phone number, the phone number enters into a cooldown period for up to 180 days. It cannot be searched for or claimed again until the period has ended. If you accidentally release a phone number, contact Amazon Web Services Support.

If you plan to claim and release numbers frequently, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until up to 180 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers. If you claim and release phone numbers using the UI or API during a rolling 180 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 180 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 180 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

" }, "ReplicateInstance":{ "name":"ReplicateInstance", @@ -4420,7 +4420,7 @@ {"shape":"ResourceNotReadyException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Replicates an Amazon Connect instance in the specified Amazon Web Services Region and copies configuration information for Amazon Connect resources across Amazon Web Services Regions.

For more information about replicating an Amazon Connect instance, see Create a replica of your existing Amazon Connect instance in the Amazon Connect Administrator Guide.

" + "documentation":"

Replicates an Connect Customer instance in the specified Amazon Web Services Region and copies configuration information for Connect Customer resources across Amazon Web Services Regions.

For more information about replicating an Connect Customer instance, see Create a replica of your existing Connect Customer instance in the Connect Customer Administrator Guide.

" }, "ResumeContact":{ "name":"ResumeContact", @@ -4472,7 +4472,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches AgentStatuses in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches AgentStatuses in an Connect Customer instance, with optional filtering.

" }, "SearchAvailablePhoneNumbers":{ "name":"SearchAvailablePhoneNumbers", @@ -4488,7 +4488,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Searches for available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with the traffic distribution group.

" + "documentation":"

Searches for available phone numbers that you can claim to your Connect Customer instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with the traffic distribution group.

" }, "SearchContactEvaluations":{ "name":"SearchContactEvaluations", @@ -4505,7 +4505,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches contact evaluations in an Amazon Connect instance, with optional filtering.

Use cases

Following are common uses cases for this API:

  • Find contact evaluations by using specific search criteria.

  • Find contact evaluations that are tagged with a specific set of tags.

Important things to know

  • A Search operation, unlike a List operation, takes time to index changes to resource (create, update or delete). If you don't see updated information for recently changed contact evaluations, try calling the API again in a few seconds.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Searches contact evaluations in an Connect Customer instance, with optional filtering.

Use cases

Following are common uses cases for this API:

  • Find contact evaluations by using specific search criteria.

  • Find contact evaluations that are tagged with a specific set of tags.

Important things to know

  • A Search operation, unlike a List operation, takes time to index changes to resource (create, update or delete). If you don't see updated information for recently changed contact evaluations, try calling the API again in a few seconds.

Endpoints: See Connect Customer endpoints and quotas.

" }, "SearchContactFlowModules":{ "name":"SearchContactFlowModules", @@ -4522,7 +4522,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches the flow modules in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches the flow modules in an Connect Customer instance, with optional filtering.

" }, "SearchContactFlows":{ "name":"SearchContactFlows", @@ -4539,7 +4539,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches the flows in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches the flows in an Connect Customer instance, with optional filtering.

" }, "SearchContacts":{ "name":"SearchContacts", @@ -4556,7 +4556,7 @@ {"shape":"InternalServiceException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Searches contacts in an Amazon Connect instance.

" + "documentation":"

Searches contacts in an Connect Customer instance.

" }, "SearchDataTables":{ "name":"SearchDataTables", @@ -4608,7 +4608,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches evaluation forms in an Amazon Connect instance, with optional filtering.

Use cases

Following are common uses cases for this API:

  • List all evaluation forms in an instance.

  • Find all evaluation forms that meet specific criteria, such as Title, Description, Status, and more.

  • Find all evaluation forms that are tagged with a specific set of tags.

Important things to know

  • A Search operation, unlike a List operation, takes time to index changes to resource (create, update or delete). If you don't see updated information for recently changed contact evaluations, try calling the API again in a few seconds.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Searches evaluation forms in an Connect Customer instance, with optional filtering.

Use cases

Following are common uses cases for this API:

  • List all evaluation forms in an instance.

  • Find all evaluation forms that meet specific criteria, such as Title, Description, Status, and more.

  • Find all evaluation forms that are tagged with a specific set of tags.

Important things to know

  • A Search operation, unlike a List operation, takes time to index changes to resource (create, update or delete). If you don't see updated information for recently changed contact evaluations, try calling the API again in a few seconds.

Endpoints: See Connect Customer endpoints and quotas.

" }, "SearchHoursOfOperationOverrides":{ "name":"SearchHoursOfOperationOverrides", @@ -4642,7 +4642,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches the hours of operation in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches the hours of operation in an Connect Customer instance, with optional filtering.

" }, "SearchNotifications":{ "name":"SearchNotifications", @@ -4677,7 +4677,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches predefined attributes that meet certain criteria. A predefined attribute is made up of a name and a value. You can use predefined attributes for:

For the predefined attributes per instance quota, see Amazon Connect quotas.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Searches predefined attributes that meet certain criteria. A predefined attribute is made up of a name and a value. You can use predefined attributes for:

For the predefined attributes per instance quota, see Connect Customer quotas.

Endpoints: See Connect Customer endpoints and quotas.

" }, "SearchPrompts":{ "name":"SearchPrompts", @@ -4694,7 +4694,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches prompts in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches prompts in an Connect Customer instance, with optional filtering.

" }, "SearchQueues":{ "name":"SearchQueues", @@ -4711,7 +4711,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches queues in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches queues in an Connect Customer instance, with optional filtering.

" }, "SearchQuickConnects":{ "name":"SearchQuickConnects", @@ -4728,7 +4728,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches quick connects in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches quick connects in an Connect Customer instance, with optional filtering.

" }, "SearchResourceTags":{ "name":"SearchResourceTags", @@ -4746,7 +4746,7 @@ {"shape":"InternalServiceException"}, {"shape":"MaximumResultReturnedException"} ], - "documentation":"

Searches tags used in an Amazon Connect instance using optional search criteria.

" + "documentation":"

Searches tags used in an Connect Customer instance using optional search criteria.

" }, "SearchRoutingProfiles":{ "name":"SearchRoutingProfiles", @@ -4763,7 +4763,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches routing profiles in an Amazon Connect instance, with optional filtering.

SearchRoutingProfiles does not populate LastModifiedRegion, LastModifiedTime, MediaConcurrencies.CrossChannelBehavior, and AgentAvailabilityTimer in its response, but DescribeRoutingProfile does.

" + "documentation":"

Searches routing profiles in an Connect Customer instance, with optional filtering.

SearchRoutingProfiles does not populate LastModifiedRegion, LastModifiedTime, MediaConcurrencies.CrossChannelBehavior, and AgentAvailabilityTimer in its response, but DescribeRoutingProfile does.

" }, "SearchSecurityProfiles":{ "name":"SearchSecurityProfiles", @@ -4780,7 +4780,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches security profiles in an Amazon Connect instance, with optional filtering.

For information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" + "documentation":"

Searches security profiles in an Connect Customer instance, with optional filtering.

For information about security profiles, see Security Profiles in the Connect Customer Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" }, "SearchTestCases":{ "name":"SearchTestCases", @@ -4815,7 +4815,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches UserHierarchyGroups in an Amazon Connect instance, with optional filtering.

The UserHierarchyGroup with \"LevelId\": \"0\" is the foundation for building levels on top of an instance. It is not user-definable, nor is it visible in the UI.

" + "documentation":"

Searches UserHierarchyGroups in an Connect Customer instance, with optional filtering.

The UserHierarchyGroup with \"LevelId\": \"0\" is the foundation for building levels on top of an instance. It is not user-definable, nor is it visible in the UI.

" }, "SearchUsers":{ "name":"SearchUsers", @@ -4832,7 +4832,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches users in an Amazon Connect instance, with optional filtering.

AfterContactWorkTimeLimit is returned in milliseconds.

" + "documentation":"

Searches users in an Connect Customer instance, with optional filtering.

AfterContactWorkTimeLimit is returned in milliseconds.

" }, "SearchViews":{ "name":"SearchViews", @@ -4866,7 +4866,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Searches for vocabularies within a specific Amazon Connect instance using State, NameStartsWith, and LanguageCode.

" + "documentation":"

Searches for vocabularies within a specific Connect Customer instance using State, NameStartsWith, and LanguageCode.

" }, "SearchWorkspaceAssociations":{ "name":"SearchWorkspaceAssociations", @@ -4919,7 +4919,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Processes chat integration events from Amazon Web Services or external integrations to Amazon Connect. A chat integration event includes:

  • SourceId, DestinationId, and Subtype: a set of identifiers, uniquely representing a chat

  • ChatEvent: details of the chat action to perform such as sending a message, event, or disconnecting from a chat

When a chat integration event is sent with chat identifiers that do not map to an active chat contact, a new chat contact is also created before handling chat action.

Access to this API is currently restricted to Amazon Web Services End User Messaging for supporting SMS integration.

" + "documentation":"

Processes chat integration events from Amazon Web Services or external integrations to Connect Customer. A chat integration event includes:

  • SourceId, DestinationId, and Subtype: a set of identifiers, uniquely representing a chat

  • ChatEvent: details of the chat action to perform such as sending a message, event, or disconnecting from a chat

When a chat integration event is sent with chat identifiers that do not map to an active chat contact, a new chat contact is also created before handling chat action.

Access to this API is currently restricted to Amazon Web Services End User Messaging for supporting SMS integration.

" }, "SendOutboundEmail":{ "name":"SendOutboundEmail", @@ -4938,7 +4938,7 @@ {"shape":"InternalServiceException"}, {"shape":"IdempotencyException"} ], - "documentation":"

Send outbound email for outbound campaigns. For more information about outbound campaigns, see Set up Amazon Connect outbound campaigns.

Only the Amazon Connect outbound campaigns service principal is allowed to assume a role in your account and call this API.

" + "documentation":"

Send outbound email for outbound campaigns. For more information about outbound campaigns, see Set up Connect Customer outbound campaigns.

Only the Connect Customer outbound campaigns service principal is allowed to assume a role in your account and call this API.

" }, "StartAttachedFileUpload":{ "name":"StartAttachedFileUpload", @@ -4956,7 +4956,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Provides a pre-signed Amazon S3 URL in response for uploading your content.

You may only use this API to upload attachments to an Amazon Connect Case or Amazon Connect Email.

" + "documentation":"

Provides a pre-signed Amazon S3 URL in response for uploading your content.

You may only use this API to upload attachments to an Connect Customer Case or Connect Customer Email.

" }, "StartChatContact":{ "name":"StartChatContact", @@ -4973,7 +4973,7 @@ {"shape":"InternalServiceException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Amazon Connect Participant Service.

When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

A 429 error occurs in the following situations:

  • API rate limit is exceeded. API TPS throttling returns a TooManyRequests exception.

  • The quota for concurrent active chats is exceeded. Active chat throttling returns a LimitExceededException.

If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.

For more information about chat, see the following topics in the Amazon Connect Administrator Guide:

" + "documentation":"

Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Connect Customer Participant Service.

When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

A 429 error occurs in the following situations:

  • API rate limit is exceeded. API TPS throttling returns a TooManyRequests exception.

  • The quota for concurrent active chats is exceeded. Active chat throttling returns a LimitExceededException.

If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.

For more information about chat, see the following topics in the Connect Customer Administrator Guide:

" }, "StartContactEvaluation":{ "name":"StartContactEvaluation", @@ -4991,7 +4991,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Starts 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.

Evaluations created through the public API do not contain answer values suggested from automation.

", + "documentation":"

Starts an empty evaluation in the specified Connect Customer 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.

Evaluations created through the public API do not contain answer values suggested from automation.

", "idempotent":true }, "StartContactMediaProcessing":{ @@ -5045,7 +5045,7 @@ {"shape":"InternalServiceException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Initiates real-time message streaming for a new chat contact.

For more information about message streaming, see Enable real-time chat message streaming in the Amazon Connect Administrator Guide.

For more information about chat, see the following topics in the Amazon Connect Administrator Guide:

" + "documentation":"

Initiates real-time message streaming for a new chat contact.

For more information about message streaming, see Enable real-time chat message streaming in the Connect Customer Administrator Guide.

For more information about chat, see the following topics in the Connect Customer Administrator Guide:

" }, "StartEmailContact":{ "name":"StartEmailContact", @@ -5083,7 +5083,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Initiates a new outbound SMS or WhatsApp contact to a customer. Response of this API provides the ContactId of the outbound SMS or WhatsApp contact created.

SourceEndpoint only supports Endpoints with CONNECT_PHONENUMBER_ARN as Type and DestinationEndpoint only supports Endpoints with TELEPHONE_NUMBER as Type. ContactFlowId initiates the flow to manage the new contact created.

This API can be used to initiate outbound SMS or WhatsApp contacts for an agent, or it can also deflect an ongoing contact to an outbound SMS or WhatsApp contact by using the StartOutboundChatContact Flow Action.

For more information about using SMS or WhatsApp in Amazon Connect, see the following topics in the Amazon Connect Administrator Guide:

" + "documentation":"

Initiates a new outbound SMS or WhatsApp contact to a customer. Response of this API provides the ContactId of the outbound SMS or WhatsApp contact created.

SourceEndpoint only supports Endpoints with CONNECT_PHONENUMBER_ARN as Type and DestinationEndpoint only supports Endpoints with TELEPHONE_NUMBER as Type. ContactFlowId initiates the flow to manage the new contact created.

This API can be used to initiate outbound SMS or WhatsApp contacts for an agent, or it can also deflect an ongoing contact to an outbound SMS or WhatsApp contact by using the StartOutboundChatContact Flow Action.

For more information about using SMS or WhatsApp in Connect Customer, see the following topics in the Connect Customer Administrator Guide:

" }, "StartOutboundEmailContact":{ "name":"StartOutboundEmailContact", @@ -5121,7 +5121,7 @@ {"shape":"DestinationNotAllowedException"}, {"shape":"OutboundContactNotPermittedException"} ], - "documentation":"

Places an outbound call to a contact, and then initiates the flow. It performs the actions in the flow that's specified (in ContactFlowId).

Agents do not initiate the outbound API, which means that they do not dial the contact. If the flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case.

Dialing timeout for this operation can be configured with the “RingTimeoutInSeconds” parameter. If not specified, the default dialing timeout will be 60 seconds which means if the call is not connected within 60 seconds, it fails.

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

Campaign calls are not allowed by default. Before you can make a call with TrafficType = CAMPAIGN, you must submit a service quota increase request to the quota Amazon Connect campaigns.

For Preview dialing mode, only the Amazon Connect outbound campaigns service principal is allowed to assume a role in your account and call this API with OutboundStrategy.

" + "documentation":"

Places an outbound call to a contact, and then initiates the flow. It performs the actions in the flow that's specified (in ContactFlowId).

Agents do not initiate the outbound API, which means that they do not dial the contact. If the flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case.

Dialing timeout for this operation can be configured with the “RingTimeoutInSeconds” parameter. If not specified, the default dialing timeout will be 60 seconds which means if the call is not connected within 60 seconds, it fails.

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see Connect Customer Service Quotas in the Connect Customer Administrator Guide.

Campaign calls are not allowed by default. Before you can make a call with TrafficType = CAMPAIGN, you must submit a service quota increase request to the quota Connect Customer campaigns.

For Preview dialing mode, only the Amazon Connect outbound campaigns service principal is allowed to assume a role in your account and call this API with OutboundStrategy.

" }, "StartScreenSharing":{ "name":"StartScreenSharing", @@ -5139,7 +5139,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Starts screen sharing for a contact. For more information about screen sharing, see Set up in-app, web, video calling, and screen sharing capabilities in the Amazon Connect Administrator Guide.

" + "documentation":"

Starts screen sharing for a contact. For more information about screen sharing, see Set up in-app, web, video calling, and screen sharing capabilities in the Connect Customer Administrator Guide.

" }, "StartTaskContact":{ "name":"StartTaskContact", @@ -5157,7 +5157,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Initiates a flow to start a new task contact. For more information about task contacts, see Concepts: Tasks in Amazon Connect in the Amazon Connect Administrator Guide.

When using PreviousContactId and RelatedContactId input parameters, note the following:

  • PreviousContactId

    • Any updates to user-defined task contact attributes on any contact linked through the same PreviousContactId will affect every contact in the chain.

    • There can be a maximum of 12 linked task contacts in a chain. That is, 12 task contacts can be created that share the same PreviousContactId.

  • RelatedContactId

    • Copies contact attributes from the related task contact to the new contact.

    • Any update on attributes in a new task contact does not update attributes on previous contact.

    • There’s no limit on the number of task contacts that can be created that use the same RelatedContactId.

In addition, when calling StartTaskContact include only one of these parameters: ContactFlowID, QuickConnectID, or TaskTemplateID. Only one parameter is required as long as the task template has a flow configured to run it. If more than one parameter is specified, or only the TaskTemplateID is specified but it does not have a flow configured, the request returns an error because Amazon Connect cannot identify the unique flow to run when the task is created.

A ServiceQuotaExceededException occurs when the number of open tasks exceeds the active tasks quota or there are already 12 tasks referencing the same PreviousContactId. For more information about service quotas for task contacts, see Amazon Connect service quotas in the Amazon Connect Administrator Guide.

" + "documentation":"

Initiates a flow to start a new task contact. For more information about task contacts, see Concepts: Tasks in Connect Customer in the Connect Customer Administrator Guide.

When using PreviousContactId and RelatedContactId input parameters, note the following:

  • PreviousContactId

    • Any updates to user-defined task contact attributes on any contact linked through the same PreviousContactId will affect every contact in the chain.

    • There can be a maximum of 12 linked task contacts in a chain. That is, 12 task contacts can be created that share the same PreviousContactId.

  • RelatedContactId

    • Copies contact attributes from the related task contact to the new contact.

    • Any update on attributes in a new task contact does not update attributes on previous contact.

    • There’s no limit on the number of task contacts that can be created that use the same RelatedContactId.

In addition, when calling StartTaskContact include only one of these parameters: ContactFlowID, QuickConnectID, or TaskTemplateID. Only one parameter is required as long as the task template has a flow configured to run it. If more than one parameter is specified, or only the TaskTemplateID is specified but it does not have a flow configured, the request returns an error because Connect Customer cannot identify the unique flow to run when the task is created.

A ServiceQuotaExceededException occurs when the number of open tasks exceeds the active tasks quota or there are already 12 tasks referencing the same PreviousContactId. For more information about service quotas for task contacts, see Connect Customer service quotas in the Connect Customer Administrator Guide.

" }, "StartTestCaseExecution":{ "name":"StartTestCaseExecution", @@ -5193,7 +5193,7 @@ {"shape":"LimitExceededException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Places an inbound in-app, web, or video call to a contact, and then initiates the flow. It performs the actions in the flow that are specified (in ContactFlowId) and present in the Amazon Connect instance (specified as InstanceId).

" + "documentation":"

Places an inbound in-app, web, or video call to a contact, and then initiates the flow. It performs the actions in the flow that are specified (in ContactFlowId) and present in the Connect Customer instance (specified as InstanceId).

" }, "StopContact":{ "name":"StopContact", @@ -5296,7 +5296,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Submits 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.

If a contact evaluation is already in submitted state, this operation will trigger a resubmission.

" + "documentation":"

Submits a contact evaluation in the specified Connect Customer 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.

If a contact evaluation is already in submitted state, this operation will trigger a resubmission.

" }, "SuspendContactRecording":{ "name":"SuspendContactRecording", @@ -5330,7 +5330,7 @@ {"shape":"ThrottlingException"}, {"shape":"InvalidActiveRegionException"} ], - "documentation":"

Adds the specified tags to the contact resource. For more information about this API is used, see Set up granular billing for a detailed view of your Amazon Connect usage.

", + "documentation":"

Adds the specified tags to the contact resource. For more information about this API is used, see Set up granular billing for a detailed view of your Connect Customer usage.

", "idempotent":true }, "TagResource":{ @@ -5347,7 +5347,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Adds the specified tags to the specified resource.

Some of the supported resource types are agents, routing profiles, queues, quick connects, flows, agent statuses, hours of operation, phone numbers, security profiles, and task templates. For a complete list, see Tagging resources in Amazon Connect.

For sample policies that use tags, see Amazon Connect Identity-Based Policy Examples in the Amazon Connect Administrator Guide.

" + "documentation":"

Adds the specified tags to the specified resource.

Some of the supported resource types are agents, routing profiles, queues, quick connects, flows, agent statuses, hours of operation, phone numbers, security profiles, and task templates. For a complete list, see Tagging resources in Connect Customer.

For sample policies that use tags, see Connect Customer Identity-Based Policy Examples in the Connect Customer Administrator Guide.

" }, "TransferContact":{ "name":"TransferContact", @@ -5384,7 +5384,7 @@ {"shape":"ThrottlingException"}, {"shape":"InvalidActiveRegionException"} ], - "documentation":"

Removes the specified tags from the contact resource. For more information about this API is used, see Set up granular billing for a detailed view of your Amazon Connect usage.

", + "documentation":"

Removes the specified tags from the contact resource. For more information about this API is used, see Set up granular billing for a detailed view of your Connect Customer usage.

", "idempotent":true }, "UntagResource":{ @@ -5436,7 +5436,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Updates the attached files configuration for the specified Amazon Connect instance and attachment scope.

If no instance-specific configuration exists, this operation creates one. Partial updates are supported—only specified fields are updated, while unspecified fields retain their current values.

" + "documentation":"

Updates the attached files configuration for the specified Connect Customer instance and attachment scope.

If no instance-specific configuration exists, this operation creates one. Partial updates are supported—only specified fields are updated, while unspecified fields retain their current values.

" }, "UpdateAuthenticationProfile":{ "name":"UpdateAuthenticationProfile", @@ -5452,7 +5452,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change. To request access to this API, contact Amazon Web Services Support.

Updates the selected authentication profile.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change. To request access to this API, contact Amazon Web Services Support.

Updates the selected authentication profile.

" }, "UpdateContact":{ "name":"UpdateContact", @@ -5472,7 +5472,7 @@ {"shape":"ConflictException"}, {"shape":"InvalidActiveRegionException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Adds or updates user-defined contact information associated with the specified contact. At least one field to be updated must be present in the request.

You can add or update user-defined contact information for both ongoing and completed contacts.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Adds or updates user-defined contact information associated with the specified contact. At least one field to be updated must be present in the request.

You can add or update user-defined contact information for both ongoing and completed contacts.

" }, "UpdateContactAttributes":{ "name":"UpdateContactAttributes", @@ -5489,7 +5489,7 @@ {"shape":"InternalServiceException"}, {"shape":"InvalidActiveRegionException"} ], - "documentation":"

Creates or updates user-defined contact attributes associated with the specified contact.

You can create or update user-defined attributes for both ongoing and completed contacts. For example, while the call is active, you can update the customer's name or the reason the customer called. You can add notes about steps that the agent took during the call that display to the next agent that takes the call. You can also update attributes for a contact using data from your CRM application and save the data with the contact in Amazon Connect. You could also flag calls for additional analysis, such as legal review or to identify abusive callers.

Contact attributes are available in Amazon Connect for 24 months, and are then deleted. For information about contact record retention and the maximum size of the contact record attributes section, see Feature specifications in the Amazon Connect Administrator Guide.

" + "documentation":"

Creates or updates user-defined contact attributes associated with the specified contact.

You can create or update user-defined attributes for both ongoing and completed contacts. For example, while the call is active, you can update the customer's name or the reason the customer called. You can add notes about steps that the agent took during the call that display to the next agent that takes the call. You can also update attributes for a contact using data from your CRM application and save the data with the contact in Connect Customer. You could also flag calls for additional analysis, such as legal review or to identify abusive callers.

Contact attributes are available in Connect Customer for 24 months, and are then deleted. For information about contact record retention and the maximum size of the contact record attributes section, see Feature specifications in the Connect Customer Administrator Guide.

" }, "UpdateContactEvaluation":{ "name":"UpdateContactEvaluation", @@ -5506,7 +5506,7 @@ {"shape":"InternalServiceException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Updates details about a contact evaluation in the specified Amazon Connect instance. A contact evaluation must be in 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.

" + "documentation":"

Updates details about a contact evaluation in the specified Connect Customer instance. A contact evaluation must be in 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.

" }, "UpdateContactFlowContent":{ "name":"UpdateContactFlowContent", @@ -5524,7 +5524,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates the specified flow.

You can also create and update flows using the Amazon Connect Flow language.

Use the $SAVED alias in the request to describe the SAVED content of a Flow. For example, arn:aws:.../contact-flow/{id}:$SAVED. After a flow is published, $SAVED needs to be supplied to view saved content that has not been published.

" + "documentation":"

Updates the specified flow.

You can also create and update flows using the Connect Customer Flow language.

Use the $SAVED alias in the request to describe the SAVED content of a Flow. For example, arn:aws:.../contact-flow/{id}:$SAVED. After a flow is published, $SAVED needs to be supplied to view saved content that has not been published.

" }, "UpdateContactFlowMetadata":{ "name":"UpdateContactFlowMetadata", @@ -5580,7 +5580,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates specified flow module for the specified Amazon Connect instance.

Use the $SAVED alias in the request to describe the SAVED content of a Flow. For example, arn:aws:.../contact-flow/{id}:$SAVED. After a flow is published, $SAVED needs to be supplied to view saved content that has not been published.

" + "documentation":"

Updates specified flow module for the specified Connect Customer instance.

Use the $SAVED alias in the request to describe the SAVED content of a Flow. For example, arn:aws:.../contact-flow/{id}:$SAVED. After a flow is published, $SAVED needs to be supplied to view saved content that has not been published.

" }, "UpdateContactFlowModuleMetadata":{ "name":"UpdateContactFlowModuleMetadata", @@ -5617,7 +5617,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

The name of the flow.

You can also create and update flows using the Amazon Connect Flow language.

" + "documentation":"

The name of the flow.

You can also create and update flows using the Connect Customer Flow language.

" }, "UpdateContactRoutingData":{ "name":"UpdateContactRoutingData", @@ -5733,7 +5733,7 @@ {"shape":"InternalServiceException"}, {"shape":"IdempotencyException"} ], - "documentation":"

Updates an email address metadata. For more information about email addresses, see Create email addresses in the Amazon Connect Administrator Guide.

" + "documentation":"

Updates an email address metadata. For more information about email addresses, see Create email addresses in the Connect Customer Administrator Guide.

" }, "UpdateEvaluationForm":{ "name":"UpdateEvaluationForm", @@ -5751,7 +5751,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Updates 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.

This operation does not support partial updates. Instead it does a full update of evaluation form content.

", + "documentation":"

Updates details about a specific evaluation form version in the specified Connect Customer instance. Question and section identifiers cannot be duplicated within the same evaluation form.

This operation does not support partial updates. Instead it does a full update of evaluation form content.

", "idempotent":true }, "UpdateHoursOfOperation":{ @@ -5803,7 +5803,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Updates the value for the specified attribute type.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Updates the value for the specified attribute type.

" }, "UpdateInstanceStorageConfig":{ "name":"UpdateInstanceStorageConfig", @@ -5819,7 +5819,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Updates an existing configuration for a resource type. This API is idempotent.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Updates an existing configuration for a resource type. This API is idempotent.

" }, "UpdateNotificationContent":{ "name":"UpdateNotificationContent", @@ -5855,7 +5855,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Instructs Amazon Connect to resume the authentication process. The subsequent actions depend on the request body contents:

  • If a code is provided: Connect retrieves the identity information from Amazon Cognito and imports it into Connect Customer Profiles.

  • If an error is provided: The error branch of the Authenticate Customer block is executed.

The API returns a success response to acknowledge the request. However, the interaction and exchange of identity information occur asynchronously after the response is returned.

" + "documentation":"

Instructs Connect Customer to resume the authentication process. The subsequent actions depend on the request body contents:

  • If a code is provided: Connect retrieves the identity information from Amazon Cognito and imports it into Connect Customer Profiles.

  • If an error is provided: The error branch of the Authenticate Customer block is executed.

The API returns a success response to acknowledge the request. However, the interaction and exchange of identity information occur asynchronously after the response is returned.

" }, "UpdateParticipantRoleConfig":{ "name":"UpdateParticipantRoleConfig", @@ -5892,7 +5892,7 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Updates your claimed phone number from its current Amazon Connect instance or traffic distribution group to another Amazon Connect instance or traffic distribution group in the same Amazon Web Services Region.

After using this API, you must verify that the phone number is attached to the correct flow in the target instance or traffic distribution group. You need to do this because the API switches only the phone number to a new instance or traffic distribution group. It doesn't migrate the flow configuration of the phone number, too.

You can call DescribePhoneNumber API to verify the status of a previous UpdatePhoneNumber operation.

" + "documentation":"

Updates your claimed phone number from its current Connect Customer instance or traffic distribution group to another Connect Customer instance or traffic distribution group in the same Amazon Web Services Region.

After using this API, you must verify that the phone number is attached to the correct flow in the target instance or traffic distribution group. You need to do this because the API switches only the phone number to a new instance or traffic distribution group. It doesn't migrate the flow configuration of the phone number, too.

You can call DescribePhoneNumber API to verify the status of a previous UpdatePhoneNumber operation.

" }, "UpdatePhoneNumberMetadata":{ "name":"UpdatePhoneNumberMetadata", @@ -5927,7 +5927,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates a predefined attribute for the specified Amazon Connect instance. A predefined attribute is made up of a name and a value.

For the predefined attributes per instance quota, see Amazon Connect quotas.

Use cases

Following are common uses cases for this API:

  • Update routing proficiency (for example, agent certification) that has predefined values (for example, a list of possible certifications). For more information, see Create predefined attributes for routing contacts to agents.

  • Update an attribute for business unit name that has a list of predefined business unit names used in your organization. This is a use case where information for a contact varies between transfers or conferences. For more information, see Use contact segment attributes.

Endpoints: See Amazon Connect endpoints and quotas.

" + "documentation":"

Updates a predefined attribute for the specified Connect Customer instance. A predefined attribute is made up of a name and a value.

For the predefined attributes per instance quota, see Connect Customer quotas.

Use cases

Following are common uses cases for this API:

  • Update routing proficiency (for example, agent certification) that has predefined values (for example, a list of possible certifications). For more information, see Create predefined attributes for routing contacts to agents.

  • Update an attribute for business unit name that has a list of predefined business unit names used in your organization. This is a use case where information for a contact varies between transfers or conferences. For more information, see Use contact segment attributes.

Endpoints: See Connect Customer endpoints and quotas.

" }, "UpdatePrompt":{ "name":"UpdatePrompt", @@ -6009,7 +6009,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

  • If the phone number is claimed to a traffic distribution group that was created in the same Region as the Amazon Connect instance where you are calling this API, then you can use a full phone number ARN or a UUID for OutboundCallerIdNumberId. However, if the phone number is claimed to a traffic distribution group that is in one Region, and you are calling this API from an instance in another Amazon Web Services Region that is associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

  • Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the ListPhoneNumbersV2 API.

  • If you plan to use IAM policies to allow/deny access to this API for phone number resources claimed to a traffic distribution group, see Allow or Deny queue API actions for phone numbers in a replica Region.

" + "documentation":"

Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

  • If the phone number is claimed to a traffic distribution group that was created in the same Region as the Connect Customer instance where you are calling this API, then you can use a full phone number ARN or a UUID for OutboundCallerIdNumberId. However, if the phone number is claimed to a traffic distribution group that is in one Region, and you are calling this API from an instance in another Amazon Web Services Region that is associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

  • Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the ListPhoneNumbersV2 API.

  • If you plan to use IAM policies to allow/deny access to this API for phone number resources claimed to a traffic distribution group, see Allow or Deny queue API actions for phone numbers in a replica Region.

" }, "UpdateQueueOutboundEmailConfig":{ "name":"UpdateQueueOutboundEmailConfig", @@ -6173,7 +6173,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Updates a rule for the specified Amazon Connect instance.

Use the Rules Function language to code conditions for the rule.

" + "documentation":"

Updates a rule for the specified Connect Customer instance.

Use the Rules Function language to code conditions for the rule.

" }, "UpdateSecurityProfile":{ "name":"UpdateSecurityProfile", @@ -6189,7 +6189,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates a security profile.

For information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" + "documentation":"

Updates a security profile.

For information about security profiles, see Security Profiles in the Connect Customer Administrator Guide. For a mapping of the API name and user interface name of the security profile permissions, see List of security profile permissions.

" }, "UpdateTaskTemplate":{ "name":"UpdateTaskTemplate", @@ -6207,7 +6207,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates details about a specific task template in the specified Amazon Connect instance. This operation does not support partial updates. Instead it does a full update of template content.

" + "documentation":"

Updates details about a specific task template in the specified Connect Customer instance. This operation does not support partial updates. Instead it does a full update of template content.

" }, "UpdateTestCase":{ "name":"UpdateTestCase", @@ -6245,7 +6245,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates the traffic distribution for a given traffic distribution group.

When you shift telephony traffic, also shift agents and/or agent sign-ins to ensure they can handle the calls in the other Region. If you don't shift the agents, voice calls will go to the shifted Region but there won't be any agents available to receive the calls.

The SignInConfig distribution is available only on a default TrafficDistributionGroup (see the IsDefault parameter in the TrafficDistributionGroup data type). If you call UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, an InvalidRequestException is returned.

For more information about updating a traffic distribution group, see Update telephony traffic distribution across Amazon Web Services Regions in the Amazon Connect Administrator Guide.

Important things to know

  • Invoke the UpdateTrafficDistribution API in the region that should handle traffic.

" + "documentation":"

Updates the traffic distribution for a given traffic distribution group.

When you shift telephony traffic, also shift agents and/or agent sign-ins to ensure they can handle the calls in the other Region. If you don't shift the agents, voice calls will go to the shifted Region but there won't be any agents available to receive the calls.

The SignInConfig distribution is available only on a default TrafficDistributionGroup (see the IsDefault parameter in the TrafficDistributionGroup data type). If you call UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, an InvalidRequestException is returned.

For more information about updating a traffic distribution group, see Update telephony traffic distribution across Amazon Web Services Regions in the Connect Customer Administrator Guide.

Important things to know

  • Invoke the UpdateTrafficDistribution API in the region that should handle traffic.

" }, "UpdateUserConfig":{ "name":"UpdateUserConfig", @@ -6328,7 +6328,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates the identity information for the specified user.

We strongly recommend limiting who has the ability to invoke UpdateUserIdentityInfo. Someone with that ability can change the login credentials of other users by changing their email address. This poses a security risk to your organization. They can change the email address of a user to the attacker's email address, and then reset the password through email. For more information, see Best Practices for Security Profiles in the Amazon Connect Administrator Guide.

" + "documentation":"

Updates the identity information for the specified user.

We strongly recommend limiting who has the ability to invoke UpdateUserIdentityInfo. Someone with that ability can change the login credentials of other users by changing their email address. This poses a security risk to your organization. They can change the email address of a user to the attacker's email address, and then reset the password through email. For more information, see Best Practices for Security Profiles in the Connect Customer Administrator Guide.

" }, "UpdateUserNotificationStatus":{ "name":"UpdateUserNotificationStatus", @@ -6429,7 +6429,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Updates the view content of the given view identifier in the specified Amazon Connect instance.

It performs content validation if Status is set to SAVED and performs full content validation if Status is PUBLISHED. Note that the $SAVED alias' content will always be updated, but the $LATEST alias' content will only be updated if Status is PUBLISHED.

" + "documentation":"

Updates the view content of the given view identifier in the specified Connect Customer instance.

It performs content validation if Status is set to SAVED and performs full content validation if Status is PUBLISHED. Note that the $SAVED alias' content will always be updated, but the $LATEST alias' content will only be updated if Status is PUBLISHED.

" }, "UpdateViewMetadata":{ "name":"UpdateViewMetadata", @@ -6588,7 +6588,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6713,7 +6713,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "Channel":{ "shape":"Channel", @@ -6794,7 +6794,7 @@ "documentation":"

The identifiers for level 5 hierarchy groups.

" } }, - "documentation":"

A structure that defines search criteria for contacts using agent hierarchy group levels. For more information about agent hierarchies, see Set Up Agent Hierarchies in the Amazon Connect Administrator Guide.

" + "documentation":"

A structure that defines search criteria for contacts using agent hierarchy group levels. For more information about agent hierarchies, see Set Up Agent Hierarchies in the Connect Customer Administrator Guide.

" }, "AgentId":{ "type":"string", @@ -7239,7 +7239,7 @@ "documentation":"

The Amazon Web Services Resource Access Manager status of association.

" } }, - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Information about associations that are successfully created: DataSetId, TargetAccountId, ResourceShareId, ResourceShareArn.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

Information about associations that are successfully created: DataSetId, TargetAccountId, ResourceShareId, ResourceShareArn.

" }, "AnalyticsDataAssociationResults":{ "type":"list", @@ -7312,7 +7312,7 @@ "documentation":"

Type of Application.

" } }, - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

A third-party application's metadata.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

A third-party application's metadata.

" }, "ApplicationPermissions":{ "type":"list", @@ -7375,7 +7375,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7385,7 +7385,7 @@ }, "TargetAccountId":{ "shape":"AWSAccountId", - "documentation":"

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

" + "documentation":"

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Connect Customer instance. If not specified, by default this value is the Amazon Web Services account that has the Connect Customer instance.

" } } }, @@ -7419,7 +7419,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7440,7 +7440,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7466,13 +7466,13 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"uri", "locationName":"ContactId" }, @@ -7495,7 +7495,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7531,13 +7531,13 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "AliasConfiguration":{ "shape":"AliasConfiguration", - "documentation":"

Configuration object that specifies which email address will serve as the alias. The specified email address must already exist in the Amazon Connect instance and cannot already be configured as an alias or have an alias of its own.

" + "documentation":"

Configuration object that specifies which email address will serve as the alias. The specified email address must already exist in the Connect Customer instance and cannot already be configured as an alias or have an alias of its own.

" }, "ClientToken":{ "shape":"ClientToken", @@ -7561,7 +7561,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7619,7 +7619,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7656,7 +7656,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7680,7 +7680,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7711,7 +7711,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactFlowId":{ "shape":"ContactFlowId", @@ -7729,7 +7729,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7760,7 +7760,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7785,7 +7785,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7814,7 +7814,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7887,7 +7887,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" } } }, @@ -7905,7 +7905,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN of the instance).

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN of the instance).

", "location":"uri", "locationName":"InstanceId" }, @@ -7965,7 +7965,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "ContactArn":{ "shape":"ARN", @@ -8116,7 +8116,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

" + "documentation":"

The identifier of the Connect Customer instance.

" }, "AttachmentScope":{ "shape":"AttachmentScope", @@ -8146,7 +8146,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

" + "documentation":"

The identifier of the Connect Customer instance.

" }, "AttachmentScope":{ "shape":"AttachmentScope", @@ -8371,15 +8371,15 @@ }, "AllowedIps":{ "shape":"IpCidrList", - "documentation":"

A list of IP address range strings that are allowed to access the Amazon Connect instance. For more information about how to configure IP addresses, see Configure IP address based access control in the Amazon Connect Administrator Guide.

" + "documentation":"

A list of IP address range strings that are allowed to access the Connect Customer instance. For more information about how to configure IP addresses, see Configure IP address based access control in the Connect Customer Administrator Guide.

" }, "BlockedIps":{ "shape":"IpCidrList", - "documentation":"

A list of IP address range strings that are blocked from accessing the Amazon Connect instance. For more information about how to configure IP addresses, see Configure IP address based access control in the Amazon Connect Administrator Guide.

" + "documentation":"

A list of IP address range strings that are blocked from accessing the Connect Customer instance. For more information about how to configure IP addresses, see Configure IP address based access control in the Connect Customer Administrator Guide.

" }, "IsDefault":{ "shape":"Boolean", - "documentation":"

Shows whether the authentication profile is the default authentication profile for the Amazon Connect instance. The default authentication profile applies to all agents in an Amazon Connect instance, unless overridden by another authentication profile.

" + "documentation":"

Shows whether the authentication profile is the default authentication profile for the Connect Customer instance. The default authentication profile applies to all agents in an Connect Customer instance, unless overridden by another authentication profile.

" }, "CreatedTime":{ "shape":"Timestamp", @@ -8395,14 +8395,14 @@ }, "PeriodicSessionDuration":{ "shape":"AccessTokenDuration", - "documentation":"

The short lived session duration configuration for users logged in to Amazon Connect, in minutes. This value determines the maximum possible time before an agent is authenticated. For more information, see Configure the session duration in the Amazon Connect Administrator Guide.

", + "documentation":"

The short lived session duration configuration for users logged in to Connect Customer, in minutes. This value determines the maximum possible time before an agent is authenticated. For more information, see Configure the session duration in the Connect Customer Administrator Guide.

", "deprecated":true, "deprecatedMessage":"PeriodicSessionDuration is deprecated. Use SessionInactivityDuration instead.", "deprecatedSince":"10/31/2025" }, "MaxSessionDuration":{ "shape":"RefreshTokenDuration", - "documentation":"

The long lived session duration for users logged in to Amazon Connect, in minutes. After this time period, users must log in again. For more information, see Configure the session duration in the Amazon Connect Administrator Guide.

" + "documentation":"

The long lived session duration for users logged in to Connect Customer, in minutes. After this time period, users must log in again. For more information, see Configure the session duration in the Connect Customer Administrator Guide.

" }, "SessionInactivityDuration":{ "shape":"InactivityDuration", @@ -8415,7 +8415,7 @@ "box":true } }, - "documentation":"

This API is in preview release for Amazon Connect and is subject to change. To request access to this API, contact Amazon Web Services Support.

Information about an authentication profile. An authentication profile is a resource that stores the authentication settings for users in your contact center. You use authentication profiles to set up IP address range restrictions and session timeouts. For more information, see Set IP address restrictions or session timeouts.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change. To request access to this API, contact Amazon Web Services Support.

Information about an authentication profile. An authentication profile is a resource that stores the authentication settings for users in your contact center. You use authentication profiles to set up IP address range restrictions and session timeouts. For more information, see Set IP address restrictions or session timeouts.

" }, "AuthenticationProfileDescription":{ "type":"string", @@ -8449,7 +8449,7 @@ }, "IsDefault":{ "shape":"Boolean", - "documentation":"

Shows whether the authentication profile is the default authentication profile for the Amazon Connect instance. The default authentication profile applies to all agents in an Amazon Connect instance, unless overridden by another authentication profile.

" + "documentation":"

Shows whether the authentication profile is the default authentication profile for the Connect Customer instance. The default authentication profile applies to all agents in an Connect Customer instance, unless overridden by another authentication profile.

" }, "LastModifiedTime":{ "shape":"Timestamp", @@ -8460,7 +8460,7 @@ "documentation":"

The Amazon Web Services Region when the authentication profile summary was last modified.

" } }, - "documentation":"

This API is in preview release for Amazon Connect and is subject to change. To request access to this API, contact Amazon Web Services Support.

A summary of a given authentication profile.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change. To request access to this API, contact Amazon Web Services Support.

A summary of a given authentication profile.

" }, "AuthenticationProfileSummaryList":{ "type":"list", @@ -8581,7 +8581,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8591,7 +8591,7 @@ }, "TargetAccountId":{ "shape":"AWSAccountId", - "documentation":"

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

" + "documentation":"

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Connect Customer instance. If not specified, by default this value is the Amazon Web Services account that has the Connect Customer instance.

" } } }, @@ -8935,7 +8935,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8945,7 +8945,7 @@ }, "TargetAccountId":{ "shape":"AWSAccountId", - "documentation":"

The identifier of the target account. Use to disassociate a dataset from a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

" + "documentation":"

The identifier of the target account. Use to disassociate a dataset from a different account than the one containing the Connect Customer instance. If not specified, by default this value is the Amazon Web Services account that has the Connect Customer instance.

" } } }, @@ -9010,7 +9010,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -9047,7 +9047,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -9354,11 +9354,11 @@ }, "ContentType":{ "shape":"ChatContentType", - "documentation":"

Type of content. This is required when Type is MESSAGE or EVENT.

  • For allowed message content types, see the ContentType parameter in the SendMessage topic in the Amazon Connect Participant Service API Reference.

  • For allowed event content types, see the ContentType parameter in the SendEvent topic in the Amazon Connect Participant Service API Reference.

" + "documentation":"

Type of content. This is required when Type is MESSAGE or EVENT.

  • For allowed message content types, see the ContentType parameter in the SendMessage topic in the Connect Customer Participant Service API Reference.

  • For allowed event content types, see the ContentType parameter in the SendEvent topic in the Connect Customer Participant Service API Reference.

" }, "Content":{ "shape":"ChatContent", - "documentation":"

Content of the message or event. This is required when Type is MESSAGE and for certain ContentTypes when Type is EVENT.

  • For allowed message content, see the Content parameter in the SendMessage topic in the Amazon Connect Participant Service API Reference.

  • For allowed event content, see the Content parameter in the SendEvent topic in the Amazon Connect Participant Service API Reference.

" + "documentation":"

Content of the message or event. This is required when Type is MESSAGE and for certain ContentTypes when Type is EVENT.

  • For allowed message content, see the Content parameter in the SendMessage topic in the Connect Customer Participant Service API Reference.

  • For allowed event content, see the Content parameter in the SendEvent topic in the Connect Customer Participant Service API Reference.

" } }, "documentation":"

Chat integration event containing payload to perform different chat actions such as:

  • Sending a chat message

  • Sending a chat event, such as typing

  • Disconnecting from a chat

" @@ -9444,11 +9444,11 @@ "members":{ "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

" + "documentation":"

The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

" + "documentation":"

The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

" }, "PhoneNumber":{ "shape":"PhoneNumber", @@ -9511,11 +9511,11 @@ }, "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through.

" + "documentation":"

The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Tags":{ "shape":"TagMap", @@ -9530,7 +9530,7 @@ "documentation":"

The claimed phone number ARN that was previously imported from the external service, such as Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it looks like the ARN of the phone number that was imported from Amazon Web Services End User Messaging.

" } }, - "documentation":"

Information about a phone number that has been claimed to your Amazon Connect instance or traffic distribution group.

" + "documentation":"

Information about a phone number that has been claimed to your Connect Customer instance or traffic distribution group.

" }, "ClientToken":{ "type":"string", @@ -9582,7 +9582,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The unique identifier of the Amazon Connect instance.

", + "documentation":"

The unique identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -9758,11 +9758,11 @@ }, "WisdomInfo":{ "shape":"WisdomInfo", - "documentation":"

Information about Amazon Connect Wisdom.

" + "documentation":"

Information about Connect Customer Wisdom.

" }, "CustomerId":{ "shape":"CustomerId", - "documentation":"

The customer's identification number. For example, the CustomerId may be a customer number from your CRM. You can create a Lambda function to pull the unique customer ID of the caller from your CRM system. If you enable Amazon Connect Voice ID capability, this attribute is populated with the CustomerSpeakerId of the caller.

" + "documentation":"

The customer's identification number. For example, the CustomerId may be a customer number from your CRM. You can create a Lambda function to pull the unique customer ID of the caller from your CRM system. If you enable Connect Customer Voice ID capability, this attribute is populated with the CustomerSpeakerId of the caller.

" }, "CustomerEndpoint":{ "shape":"EndpointInfo", @@ -9786,7 +9786,7 @@ }, "ConnectedToSystemTimestamp":{ "shape":"timestamp", - "documentation":"

The timestamp when customer endpoint connected to Amazon Connect.

" + "documentation":"

The timestamp when customer endpoint connected to Connect Customer.

" }, "RoutingCriteria":{ "shape":"RoutingCriteria", @@ -9799,7 +9799,7 @@ "Campaign":{"shape":"Campaign"}, "AnsweringMachineDetectionStatus":{ "shape":"AnsweringMachineDetectionStatus", - "documentation":"

Indicates how an outbound campaign call is actually disposed if the contact is connected to Amazon Connect.

" + "documentation":"

Indicates how an outbound campaign call is actually disposed if the contact is connected to Connect Customer.

" }, "CustomerVoiceActivity":{ "shape":"CustomerVoiceActivity", @@ -9823,7 +9823,7 @@ }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes and can be accessed in flows. Attribute keys can include only alphanumeric, -, and _ characters. This field can be used to show channel subtype. For example, connect:Guide or connect:SMS.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Connect Customer attributes and can be accessed in flows. Attribute keys can include only alphanumeric, -, and _ characters. This field can be used to show channel subtype. For example, connect:Guide or connect:SMS.

" }, "Recordings":{ "shape":"Recordings", @@ -9831,7 +9831,7 @@ }, "DisconnectReason":{ "shape":"String", - "documentation":"

The disconnect reason for the contact. For a list and description of all the possible disconnect reasons by channel, see DisconnectReason under ContactTraceRecord in the Amazon Connect Administrator Guide.

" + "documentation":"

The disconnect reason for the contact. For a list and description of all the possible disconnect reasons by channel, see DisconnectReason under ContactTraceRecord in the Connect Customer Administrator Guide.

" }, "ContactEvaluations":{ "shape":"ContactEvaluations", @@ -9869,10 +9869,10 @@ "members":{ "Transcript":{ "shape":"Transcript", - "documentation":"

Search criteria based on transcript analyzed by Amazon Connect Contact Lens.

" + "documentation":"

Search criteria based on transcript analyzed by Connect Customer Contact Lens.

" } }, - "documentation":"

A structure that defines search criteria for contacts using analysis outputs from Amazon Connect Contact Lens.

" + "documentation":"

A structure that defines search criteria for contacts using analysis outputs from Connect Customer Contact Lens.

" }, "ContactConfiguration":{ "type":"structure", @@ -9898,7 +9898,7 @@ "members":{ "SystemEndpoint":{ "shape":"Endpoint", - "documentation":"

Endpoint associated with the Amazon Connect instance from which outbound contact will be initiated for the campaign.

" + "documentation":"

Endpoint associated with the Connect Customer instance from which outbound contact will be initiated for the campaign.

" }, "CustomerEndpoint":{ "shape":"Endpoint", @@ -9910,7 +9910,7 @@ }, "QueueId":{ "shape":"QueueId", - "documentation":"

The identifier of the queue associated with the Amazon Connect instance in which contacts that are created will be queued.

" + "documentation":"

The identifier of the queue associated with the Connect Customer instance in which contacts that are created will be queued.

" }, "Attributes":{ "shape":"Attributes", @@ -10023,7 +10023,7 @@ }, "Type":{ "shape":"ContactFlowType", - "documentation":"

The type of the flow. For descriptions of the available types, see Choose a flow type in the Amazon Connect Administrator Guide.

" + "documentation":"

The type of the flow. For descriptions of the available types, see Choose a flow type in the Connect Customer Administrator Guide.

" }, "State":{ "shape":"ContactFlowState", @@ -10039,7 +10039,7 @@ }, "Content":{ "shape":"ContactFlowContent", - "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Amazon Connect Flow language.

Length Constraints: Minimum length of 1. Maximum length of 256000.

" + "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Connect Customer Flow language.

Length Constraints: Minimum length of 1. Maximum length of 256000.

" }, "Tags":{ "shape":"TagMap", @@ -10128,7 +10128,7 @@ }, "Content":{ "shape":"ContactFlowModuleContent", - "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Amazon Connect Flow language.

" + "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Connect Customer Flow language.

" }, "Description":{ "shape":"ContactFlowModuleDescription", @@ -10470,7 +10470,7 @@ "documentation":"

The status of the flow.

" } }, - "documentation":"

Contains summary information about a flow.

You can also create and update flows using the Amazon Connect Flow language.

" + "documentation":"

Contains summary information about a flow.

You can also create and update flows using the Connect Customer Flow language.

" }, "ContactFlowSummaryList":{ "type":"list", @@ -10696,7 +10696,7 @@ }, "DisconnectTimestamp":{ "shape":"timestamp", - "documentation":"

The timestamp when the customer endpoint disconnected from Amazon Connect.

" + "documentation":"

The timestamp when the customer endpoint disconnected from Connect Customer.

" }, "ScheduledTimestamp":{ "shape":"timestamp", @@ -10886,7 +10886,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -10955,7 +10955,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11002,7 +11002,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11016,7 +11016,7 @@ }, "Content":{ "shape":"ContactFlowModuleContent", - "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Amazon Connect Flow language.

" + "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Connect Customer Flow language.

" }, "Tags":{ "shape":"TagMap", @@ -11059,7 +11059,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11103,7 +11103,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11113,7 +11113,7 @@ }, "Type":{ "shape":"ContactFlowType", - "documentation":"

The type of the flow. For descriptions of the available types, see Choose a flow type in the Amazon Connect Administrator Guide.

" + "documentation":"

The type of the flow. For descriptions of the available types, see Choose a flow type in the Connect Customer Administrator Guide.

" }, "Description":{ "shape":"ContactFlowDescription", @@ -11121,7 +11121,7 @@ }, "Content":{ "shape":"ContactFlowContent", - "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Amazon Connect Flow language.

Length Constraints: Minimum length of 1. Maximum length of 256000.

" + "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Connect Customer Flow language.

Length Constraints: Minimum length of 1. Maximum length of 256000.

" }, "Status":{ "shape":"ContactFlowStatus", @@ -11159,7 +11159,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11214,7 +11214,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ClientToken":{ "shape":"ClientToken", @@ -11223,11 +11223,11 @@ }, "RelatedContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "References":{ "shape":"ContactReferences", @@ -11263,11 +11263,11 @@ }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to set Segment Contact Expiry as a duration in minutes.

To set contact expiry, a ValueMap must be specified containing the integer number of minutes the contact will be active for before expiring, with SegmentAttributes like { \"connect:ContactExpiry\": {\"ValueMap\" : { \"ExpiryDuration\": { \"ValueInteger\": 135}}}}.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to set Segment Contact Expiry as a duration in minutes.

To set contact expiry, a ValueMap must be specified containing the integer number of minutes the contact will be active for before expiring, with SegmentAttributes like { \"connect:ContactExpiry\": {\"ValueMap\" : { \"ExpiryDuration\": { \"ValueInteger\": 135}}}}.

" }, "PreviousContactId":{ "shape":"ContactId", - "documentation":"

The ID of the previous contact when creating a transfer contact. This value can be provided only for external audio contacts. For more information, see Integrate Amazon Connect Contact Lens with external voice systems in the Amazon Connect Administrator Guide.

" + "documentation":"

The ID of the previous contact when creating a transfer contact. This value can be provided only for external audio contacts. For more information, see Integrate Connect Customer Contact Lens with external voice systems in the Connect Customer Administrator Guide.

" } } }, @@ -11276,7 +11276,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "ContactArn":{ "shape":"ARN", @@ -11425,7 +11425,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11470,7 +11470,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11551,7 +11551,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11611,7 +11611,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11669,7 +11669,7 @@ }, "IdentityManagementType":{ "shape":"DirectoryType", - "documentation":"

The type of identity management for your Amazon Connect users.

" + "documentation":"

The type of identity management for your Connect Customer users.

" }, "InstanceAlias":{ "shape":"DirectoryAlias", @@ -11716,7 +11716,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11726,7 +11726,7 @@ }, "IntegrationArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the integration.

When integrating with Amazon Web Services End User Messaging, the Amazon Connect and Amazon Web Services End User Messaging instances must be in the same account.

" + "documentation":"

The Amazon Resource Name (ARN) of the integration.

When integrating with Amazon Web Services End User Messaging, the Connect Customer and Amazon Web Services End User Messaging instances must be in the same account.

" }, "SourceApplicationUrl":{ "shape":"URI", @@ -11833,11 +11833,11 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect. Supports contacts in the CHAT channel and VOICE (WebRTC) channels. For WebRTC calls, this should be the initial contact ID that was generated when the contact was first created (from the StartWebRTCContact API) in the VOICE channel

" + "documentation":"

The identifier of the contact in this instance of Connect Customer. Supports contacts in the CHAT channel and VOICE (WebRTC) channels. For WebRTC calls, this should be the initial contact ID that was generated when the contact was first created (from the StartWebRTCContact API) in the VOICE channel

" }, "ClientToken":{ "shape":"ClientToken", @@ -11874,7 +11874,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11886,7 +11886,7 @@ }, "RehydrationType":{ "shape":"RehydrationType", - "documentation":"

The contactId chosen for rehydration depends on the type chosen.

  • ENTIRE_PAST_SESSION: Rehydrates a chat from the most recently terminated past chat contact of the specified past ended chat session. To use this type, provide the initialContactId of the past ended chat session in the sourceContactId field. In this type, Amazon Connect determines what the most recent chat contact on the past ended chat session and uses it to start a persistent chat.

  • FROM_SEGMENT: Rehydrates a chat from the specified past chat contact provided in the sourceContactId field.

The actual contactId used for rehydration is provided in the response of this API.

To illustrate how to use rehydration type, consider the following example: A customer starts a chat session. Agent a1 accepts the chat and a conversation starts between the customer and Agent a1. This first contact creates a contact ID C1. Agent a1 then transfers the chat to Agent a2. This creates another contact ID C2. At this point Agent a2 ends the chat. The customer is forwarded to the disconnect flow for a post chat survey that creates another contact ID C3. After the chat survey, the chat session ends. Later, the customer returns and wants to resume their past chat session. At this point, the customer can have following use cases:

  • Use Case 1: The customer wants to continue the past chat session but they want to hide the post chat survey. For this they will use the following configuration:

    • Configuration

      • SourceContactId = \"C2\"

      • RehydrationType = \"FROM_SEGMENT\"

    • Expected behavior

      • This starts a persistent chat session from the specified past ended contact (C2). Transcripts of past chat sessions C2 and C1 are accessible in the current persistent chat session. Note that chat segment C3 is dropped from the persistent chat session.

  • Use Case 2: The customer wants to continue the past chat session and see the transcript of the entire past engagement, including the post chat survey. For this they will use the following configuration:

    • Configuration

      • SourceContactId = \"C1\"

      • RehydrationType = \"ENTIRE_PAST_SESSION\"

    • Expected behavior

      • This starts a persistent chat session from the most recently ended chat contact (C3). Transcripts of past chat sessions C3, C2 and C1 are accessible in the current persistent chat session.

" + "documentation":"

The contactId chosen for rehydration depends on the type chosen.

  • ENTIRE_PAST_SESSION: Rehydrates a chat from the most recently terminated past chat contact of the specified past ended chat session. To use this type, provide the initialContactId of the past ended chat session in the sourceContactId field. In this type, Connect Customer determines what the most recent chat contact on the past ended chat session and uses it to start a persistent chat.

  • FROM_SEGMENT: Rehydrates a chat from the specified past chat contact provided in the sourceContactId field.

The actual contactId used for rehydration is provided in the response of this API.

To illustrate how to use rehydration type, consider the following example: A customer starts a chat session. Agent a1 accepts the chat and a conversation starts between the customer and Agent a1. This first contact creates a contact ID C1. Agent a1 then transfers the chat to Agent a2. This creates another contact ID C2. At this point Agent a2 ends the chat. The customer is forwarded to the disconnect flow for a post chat survey that creates another contact ID C3. After the chat survey, the chat session ends. Later, the customer returns and wants to resume their past chat session. At this point, the customer can have following use cases:

  • Use Case 1: The customer wants to continue the past chat session but they want to hide the post chat survey. For this they will use the following configuration:

    • Configuration

      • SourceContactId = \"C2\"

      • RehydrationType = \"FROM_SEGMENT\"

    • Expected behavior

      • This starts a persistent chat session from the specified past ended contact (C2). Transcripts of past chat sessions C2 and C1 are accessible in the current persistent chat session. Note that chat segment C3 is dropped from the persistent chat session.

  • Use Case 2: The customer wants to continue the past chat session and see the transcript of the entire past engagement, including the post chat survey. For this they will use the following configuration:

    • Configuration

      • SourceContactId = \"C1\"

      • RehydrationType = \"ENTIRE_PAST_SESSION\"

    • Expected behavior

      • This starts a persistent chat session from the most recently ended chat contact (C3). Transcripts of past chat sessions C3, C2 and C1 are accessible in the current persistent chat session.

" }, "SourceContactId":{ "shape":"ContactId", @@ -11916,7 +11916,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11930,11 +11930,11 @@ }, "Purposes":{ "shape":"PredefinedAttributePurposeNameList", - "documentation":"

Values that enable you to categorize your predefined attributes. You can use them in custom UI elements across the Amazon Connect admin website.

" + "documentation":"

Values that enable you to categorize your predefined attributes. You can use them in custom UI elements across the Connect Customer admin website.

" }, "AttributeConfiguration":{ "shape":"InputPredefinedAttributeConfiguration", - "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Amazon Connect admin website.

" + "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Connect Customer admin website.

" } } }, @@ -11948,7 +11948,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12042,7 +12042,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12108,7 +12108,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12155,7 +12155,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12173,11 +12173,11 @@ }, "QueueConfigs":{ "shape":"RoutingProfileQueueConfigList", - "documentation":"

The inbound queues associated with the routing profile. If no queue is added, the agent can make only outbound calls.

The limit of 10 array members applies to the maximum number of RoutingProfileQueueConfig objects that can be passed during a CreateRoutingProfile API request. It is different from the quota of 50 queues per routing profile per instance that is listed in Amazon Connect service quotas.

" + "documentation":"

The inbound queues associated with the routing profile. If no queue is added, the agent can make only outbound calls.

The limit of 10 array members applies to the maximum number of RoutingProfileQueueConfig objects that can be passed during a CreateRoutingProfile API request. It is different from the quota of 50 queues per routing profile per instance that is listed in Connect Customer service quotas.

" }, "ManualAssignmentQueueConfigs":{ "shape":"RoutingProfileManualAssignmentQueueConfigList", - "documentation":"

The manual assignment queues associated with the routing profile. If no queue is added, agents and supervisors can't pick or assign any contacts from this routing profile. The limit of 10 array members applies to the maximum number of RoutingProfileManualAssignmentQueueConfig objects that can be passed during a CreateRoutingProfile API request. It is different from the quota of 50 queues per routing profile per instance that is listed in Amazon Connect service quotas.

Note: Use this config for chat, email, and task contacts. It does not support voice contacts.

" + "documentation":"

The manual assignment queues associated with the routing profile. If no queue is added, agents and supervisors can't pick or assign any contacts from this routing profile. The limit of 10 array members applies to the maximum number of RoutingProfileManualAssignmentQueueConfig objects that can be passed during a CreateRoutingProfile API request. It is different from the quota of 50 queues per routing profile per instance that is listed in Connect Customer service quotas.

Note: Use this config for chat, email, and task contacts. It does not support voice contacts.

" }, "MediaConcurrencies":{ "shape":"MediaConcurrencies", @@ -12219,7 +12219,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12294,7 +12294,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12304,11 +12304,11 @@ }, "AllowedAccessControlTags":{ "shape":"AllowedAccessControlTags", - "documentation":"

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" + "documentation":"

The list of tags that a security profile uses to restrict access to resources in Connect Customer.

" }, "TagRestrictedResources":{ "shape":"TagRestrictedResourceList", - "documentation":"

The list of resources that a security profile applies tag restrictions to in Amazon Connect. For a list of Amazon Connect resources that you can tag, see Add tags to resources in Amazon Connect in the Amazon Connect Administrator Guide.

" + "documentation":"

The list of resources that a security profile applies tag restrictions to in Connect Customer. For a list of Connect Customer resources that you can tag, see Add tags to resources in Connect Customer in the Connect Customer Administrator Guide.

" }, "Applications":{ "shape":"Applications", @@ -12316,11 +12316,11 @@ }, "HierarchyRestrictedResources":{ "shape":"HierarchyRestrictedResourceList", - "documentation":"

The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: User.

" + "documentation":"

The list of resources that a security profile applies hierarchy restrictions to in Connect Customer. Following are acceptable ResourceNames: User.

" }, "AllowedAccessControlHierarchyGroupId":{ "shape":"HierarchyGroupId", - "documentation":"

The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.

" + "documentation":"

The identifier of the hierarchy group that a security profile uses to restrict access to resources in Connect Customer.

" }, "AllowedFlowModules":{ "shape":"AllowedFlowModules", @@ -12355,7 +12355,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12507,7 +12507,7 @@ }, "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance that has been replicated. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Connect Customer instance that has been replicated. You can find the instanceId in the ARN of the instance.

" }, "ClientToken":{ "shape":"ClientToken", @@ -12543,7 +12543,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12593,7 +12593,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12631,7 +12631,7 @@ }, "Password":{ "shape":"Password", - "documentation":"

The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.

" + "documentation":"

The password for the user account. A password is required if you are using Connect Customer for identity management. Otherwise, it is an error to include a password.

" }, "IdentityInfo":{ "shape":"UserIdentityInfo", @@ -12643,7 +12643,7 @@ }, "DirectoryUserId":{ "shape":"DirectoryUserId", - "documentation":"

The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you include the identifier, we assume that Amazon Connect cannot access the directory. Otherwise, the identity information is used to authenticate users from your directory.

This parameter is required if you are using an existing directory for identity management in Amazon Connect when Amazon Connect cannot access your directory to authenticate users. If you are using SAML for identity management and include this parameter, an error is returned.

" + "documentation":"

The identifier of the user account in the directory used for identity management. If Connect Customer cannot access the directory, you can specify this identifier to authenticate users. If you include the identifier, we assume that Connect Customer cannot access the directory. Otherwise, the identity information is used to authenticate users from your directory.

This parameter is required if you are using an existing directory for identity management in Connect Customer when Connect Customer cannot access your directory to authenticate users. If you are using SAML for identity management and include this parameter, an error is returned.

" }, "SecurityProfileIds":{ "shape":"SecurityProfileIds", @@ -12659,7 +12659,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12713,7 +12713,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12761,7 +12761,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12806,7 +12806,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12965,15 +12965,15 @@ "members":{ "AccessToken":{ "shape":"SecurityToken", - "documentation":"

An access token generated for a federated user to access Amazon Connect.

" + "documentation":"

An access token generated for a federated user to access Connect Customer.

" }, "AccessTokenExpiration":{ "shape":"timestamp", - "documentation":"

A token generated with an expiration time for the session a user is logged in to Amazon Connect.

" + "documentation":"

A token generated with an expiration time for the session a user is logged in to Connect Customer.

" }, "RefreshToken":{ "shape":"SecurityToken", - "documentation":"

Renews a token generated for a user to access the Amazon Connect instance.

" + "documentation":"

Renews a token generated for a user to access the Connect Customer instance.

" }, "RefreshTokenExpiration":{ "shape":"timestamp", @@ -13010,7 +13010,7 @@ "documentation":"

The Unit parameter is not supported for custom metrics.

The unit for the metric.

" } }, - "documentation":"

Contains information about a real-time metric. For a description of each metric, see Metrics definitions in the Amazon Connect Administrator Guide.

Only one of either the Name or MetricId is required.

" + "documentation":"

Contains information about a real-time metric. For a description of each metric, see Metrics definitions in the Connect Customer Administrator Guide.

Only one of either the Name or MetricId is required.

" }, "CurrentMetricData":{ "type":"structure", @@ -13710,7 +13710,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13793,7 +13793,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "LanguageCode":{ "shape":"VocabularyLanguageCode", @@ -13862,7 +13862,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13884,7 +13884,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13915,7 +13915,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13941,7 +13941,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13972,7 +13972,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13998,7 +13998,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14092,7 +14092,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14117,7 +14117,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14146,7 +14146,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14173,7 +14173,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14191,7 +14191,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14213,7 +14213,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14260,7 +14260,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14281,7 +14281,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14315,7 +14315,7 @@ }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact within the Amazon Connect instance.

", + "documentation":"

The identifier of the contact within the Connect Customer instance.

", "location":"querystring", "locationName":"contactId" } @@ -14334,7 +14334,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14355,7 +14355,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14376,7 +14376,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14397,7 +14397,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14418,7 +14418,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14439,7 +14439,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14506,7 +14506,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14539,7 +14539,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -14554,7 +14554,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14575,7 +14575,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14601,7 +14601,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14632,7 +14632,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14765,7 +14765,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14795,7 +14795,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14832,7 +14832,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -14856,7 +14856,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14895,7 +14895,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14931,7 +14931,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14961,7 +14961,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -14991,7 +14991,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15090,7 +15090,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15152,7 +15152,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15191,7 +15191,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15227,7 +15227,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15257,7 +15257,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15284,7 +15284,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -15299,7 +15299,7 @@ }, "ReplicationConfiguration":{ "shape":"ReplicationConfiguration", - "documentation":"

Status information about the replication process. This field is included only when you are using the ReplicateInstance API to replicate an Amazon Connect instance across Amazon Web Services Regions. For information about replicating Amazon Connect instances, see Create a replica of your existing Amazon Connect instance in the Amazon Connect Administrator Guide.

" + "documentation":"

Status information about the replication process. This field is included only when you are using the ReplicateInstance API to replicate an Connect Customer instance across Amazon Web Services Regions. For information about replicating Connect Customer instances, see Create a replica of your existing Connect Customer instance in the Connect Customer Administrator Guide.

" } } }, @@ -15313,7 +15313,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15388,7 +15388,7 @@ "members":{ "ClaimedPhoneNumberSummary":{ "shape":"ClaimedPhoneNumberSummary", - "documentation":"

Information about a phone number that's been claimed to your Amazon Connect instance or traffic distribution group.

" + "documentation":"

Information about a phone number that's been claimed to your Connect Customer instance or traffic distribution group.

" } } }, @@ -15401,7 +15401,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15431,7 +15431,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15461,7 +15461,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15491,7 +15491,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15521,7 +15521,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15551,7 +15551,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15588,7 +15588,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -15675,7 +15675,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -15696,7 +15696,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -15726,7 +15726,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -15750,7 +15750,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15780,7 +15780,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15798,7 +15798,7 @@ "members":{ "Vocabulary":{ "shape":"Vocabulary", - "documentation":"

A list of specific words that you want Contact Lens for Amazon Connect to recognize in your audio input. They are generally domain-specific words and phrases, words that Contact Lens is not recognizing, or proper nouns.

" + "documentation":"

A list of specific words that you want Contact Lens for Connect Customer to recognize in your audio input. They are generally domain-specific words and phrases, words that Contact Lens is not recognizing, or proper nouns.

" } } }, @@ -15962,7 +15962,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -15972,7 +15972,7 @@ }, "TargetAccountId":{ "shape":"AWSAccountId", - "documentation":"

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

" + "documentation":"

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Connect Customer instance. If not specified, by default this value is the Amazon Web Services account that has the Connect Customer instance.

" } } }, @@ -15985,7 +15985,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16010,7 +16010,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16042,7 +16042,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16071,7 +16071,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16129,7 +16129,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16163,7 +16163,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance..

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance..

", "location":"uri", "locationName":"InstanceId" }, @@ -16192,7 +16192,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16232,7 +16232,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"querystring", "locationName":"instanceId" } @@ -16248,7 +16248,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16279,7 +16279,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16304,7 +16304,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16333,7 +16333,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16403,7 +16403,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"querystring", "locationName":"InstanceId" } @@ -16423,7 +16423,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16506,7 +16506,7 @@ "documentation":"

A code that indicates how the contact was terminated.

" } }, - "documentation":"

Contains details about why a contact was disconnected. Only Amazon Connect outbound campaigns can provide this field.

" + "documentation":"

Contains details about why a contact was disconnected. Only Connect Customer outbound campaigns can provide this field.

" }, "DisconnectReasonCode":{"type":"string"}, "DismissUserContactRequest":{ @@ -16525,7 +16525,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -16657,7 +16657,7 @@ "members":{ "EmailAddressId":{ "shape":"EmailAddressId", - "documentation":"

The identifier of the email address that should be associated with the queue. This email address must already exist in the Amazon Connect instance and will be used to route incoming email contacts to the specified queue.

" + "documentation":"

The identifier of the email address that should be associated with the queue. This email address must already exist in the Connect Customer instance and will be used to route incoming email contacts to the specified queue.

" } }, "documentation":"

Configuration object that specifies an email address to be associated with a queue. This configuration contains the identifier of the email address that should be linked to the queue for routing email contacts.

" @@ -16903,7 +16903,7 @@ }, "KeyId":{ "shape":"KeyId", - "documentation":"

The full ARN of the encryption key.

Be sure to provide the full ARN of the encryption key, not just the ID.

Amazon Connect supports only KMS keys with the default key spec of SYMMETRIC_DEFAULT .

" + "documentation":"

The full ARN of the encryption key.

Be sure to provide the full ARN of the encryption key, not just the ID.

Connect Customer supports only KMS keys with the default key spec of SYMMETRIC_DEFAULT .

" } }, "documentation":"

The encryption configuration.

" @@ -16998,7 +16998,7 @@ "documentation":"

The corresponding error message for the error code.

" } }, - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

List of errors for dataset association failures.

" + "documentation":"

This API is in preview release for Connect Customer and is subject to change.

List of errors for dataset association failures.

" }, "ErrorResults":{ "type":"list", @@ -18372,7 +18372,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "EvaluatorArn":{ "shape":"ARN", @@ -18663,7 +18663,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "EvaluatorArn":{ "shape":"ARN", @@ -18979,7 +18979,7 @@ "members":{ "ConnectUserArn":{ "shape":"ARN", - "documentation":"

Represents the Amazon Connect ARN of the user.

" + "documentation":"

Represents the Connect Customer ARN of the user.

" } }, "documentation":"

Represents the entity that performed the action on the evaluation.

", @@ -19474,7 +19474,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The unique identifier of the Amazon Connect instance.

", + "documentation":"

The unique identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19560,7 +19560,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19591,11 +19591,11 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "Metrics":{ "shape":"ContactMetrics", @@ -19630,7 +19630,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19644,7 +19644,7 @@ }, "CurrentMetrics":{ "shape":"CurrentMetrics", - "documentation":"

The metrics to retrieve. Specify the name or metricId, and unit for each metric. The following metrics are available. For a description of all the metrics, see Metrics definitions in the Amazon Connect Administrator Guide.

MetricId should be used to reference custom metrics or out of the box metrics as Arn. If using MetricId, the limit is 10 MetricId per request.

AGENTS_AFTER_CONTACT_WORK

Unit: COUNT

Name in real-time metrics report: ACW

AGENTS_AVAILABLE

Unit: COUNT

Name in real-time metrics report: Available

AGENTS_ERROR

Unit: COUNT

Name in real-time metrics report: Error

AGENTS_NON_PRODUCTIVE

Unit: COUNT

Name in real-time metrics report: NPT (Non-Productive Time)

AGENTS_ON_CALL

Unit: COUNT

Name in real-time metrics report: On contact

AGENTS_ON_CONTACT

Unit: COUNT

Name in real-time metrics report: On contact

AGENTS_ONLINE

Unit: COUNT

Name in real-time metrics report: Online

AGENTS_STAFFED

Unit: COUNT

Name in real-time metrics report: Staffed

CONTACTS_IN_QUEUE

Unit: COUNT

Name in real-time metrics report: In queue

CONTACTS_SCHEDULED

Unit: COUNT

Name in real-time metrics report: Scheduled

ESTIMATED_WAIT_TIME

Unit: SECONDS

This metric supports filter and grouping combination only used for core routing purpose. Valid filter and grouping use cases:

  • Filter by a list of [Queues] and a list of [Channels], group by [“QUEUE”, “CHANNEL”]

  • Filter by a singleton list of [Queue], a singleton list of [Channel], a list of [RoutingStepExpression], group by [“ROUTING_STEP_EXPRESSION”].

OLDEST_CONTACT_AGE

Unit: SECONDS

When you use groupings, Unit says SECONDS and the Value is returned in SECONDS.

When you do not use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS. For example, if you get a response like this:

{ \"Metric\": { \"Name\": \"OLDEST_CONTACT_AGE\", \"Unit\": \"SECONDS\" }, \"Value\": 24113.0 }

The actual OLDEST_CONTACT_AGE is 24 seconds.

When the filter RoutingStepExpression is used, this metric is still calculated from enqueue time. For example, if a contact that has been queued under <Expression 1> for 10 seconds has expired and <Expression 2> becomes active, then OLDEST_CONTACT_AGE for this queue will be counted starting from 10, not 0.

Name in real-time metrics report: Oldest

SLOTS_ACTIVE

Unit: COUNT

Name in real-time metrics report: Active

SLOTS_AVAILABLE

Unit: COUNT

Name in real-time metrics report: Availability

" + "documentation":"

The metrics to retrieve. Specify the name or metricId, and unit for each metric. The following metrics are available. For a description of all the metrics, see Metrics definitions in the Connect Customer Administrator Guide.

MetricId should be used to reference custom metrics or out of the box metrics as Arn. If using MetricId, the limit is 10 MetricId per request.

AGENTS_AFTER_CONTACT_WORK

Unit: COUNT

Name in real-time metrics report: ACW

AGENTS_AVAILABLE

Unit: COUNT

Name in real-time metrics report: Available

AGENTS_ERROR

Unit: COUNT

Name in real-time metrics report: Error

AGENTS_NON_PRODUCTIVE

Unit: COUNT

Name in real-time metrics report: NPT (Non-Productive Time)

AGENTS_ON_CALL

Unit: COUNT

Name in real-time metrics report: On contact

AGENTS_ON_CONTACT

Unit: COUNT

Name in real-time metrics report: On contact

AGENTS_ONLINE

Unit: COUNT

Name in real-time metrics report: Online

AGENTS_STAFFED

Unit: COUNT

Name in real-time metrics report: Staffed

CONTACTS_IN_QUEUE

Unit: COUNT

Name in real-time metrics report: In queue

CONTACTS_SCHEDULED

Unit: COUNT

Name in real-time metrics report: Scheduled

ESTIMATED_WAIT_TIME

Unit: SECONDS

This metric supports filter and grouping combination only used for core routing purpose. Valid filter and grouping use cases:

  • Filter by a list of [Queues] and a list of [Channels], group by [“QUEUE”, “CHANNEL”]

  • Filter by a singleton list of [Queue], a singleton list of [Channel], a list of [RoutingStepExpression], group by [“ROUTING_STEP_EXPRESSION”].

OLDEST_CONTACT_AGE

Unit: SECONDS

When you use groupings, Unit says SECONDS and the Value is returned in SECONDS.

When you do not use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS. For example, if you get a response like this:

{ \"Metric\": { \"Name\": \"OLDEST_CONTACT_AGE\", \"Unit\": \"SECONDS\" }, \"Value\": 24113.0 }

The actual OLDEST_CONTACT_AGE is 24 seconds.

When the filter RoutingStepExpression is used, this metric is still calculated from enqueue time. For example, if a contact that has been queued under <Expression 1> for 10 seconds has expired and <Expression 2> becomes active, then OLDEST_CONTACT_AGE for this queue will be counted starting from 10, not 0.

Name in real-time metrics report: Oldest

SLOTS_ACTIVE

Unit: COUNT

Name in real-time metrics report: Active

SLOTS_AVAILABLE

Unit: COUNT

Name in real-time metrics report: Availability

" }, "NextToken":{ "shape":"NextToken", @@ -19691,7 +19691,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19738,7 +19738,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19785,7 +19785,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -19822,7 +19822,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19869,7 +19869,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -19891,7 +19891,7 @@ }, "HistoricalMetrics":{ "shape":"HistoricalMetrics", - "documentation":"

The metrics to retrieve. Specify the name, unit, and statistic for each metric. The following historical metrics are available. For a description of each metric, see Metrics definition in the Amazon Connect Administrator Guide.

This API does not support a contacts incoming metric (there's no CONTACTS_INCOMING metric missing from the documented list).

ABANDON_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue abandon time

AFTER_CONTACT_WORK_TIME

Unit: SECONDS

Statistic: AVG

UI name: After contact work time

API_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: API contacts handled

AVG_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average customer hold time

CALLBACK_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Callback contacts handled

CONTACTS_ABANDONED

Unit: COUNT

Statistic: SUM

UI name: Contacts abandoned

CONTACTS_AGENT_HUNG_UP_FIRST

Unit: COUNT

Statistic: SUM

UI name: Contacts agent hung up first

CONTACTS_CONSULTED

Unit: COUNT

Statistic: SUM

UI name: Contacts consulted

CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Contacts handled

CONTACTS_HANDLED_INCOMING

Unit: COUNT

Statistic: SUM

UI name: Contacts handled incoming

CONTACTS_HANDLED_OUTBOUND

Unit: COUNT

Statistic: SUM

UI name: Contacts handled outbound

CONTACTS_HOLD_ABANDONS

Unit: COUNT

Statistic: SUM

UI name: Contacts hold disconnect

CONTACTS_MISSED

Unit: COUNT

Statistic: SUM

UI name: AGENT_NON_RESPONSE

CONTACTS_QUEUED

Unit: COUNT

Statistic: SUM

UI name: Contacts queued

CONTACTS_TRANSFERRED_IN

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred in

CONTACTS_TRANSFERRED_IN_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

CONTACTS_TRANSFERRED_OUT

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

HANDLE_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average handle time

INTERACTION_AND_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction and customer hold time

INTERACTION_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction time

OCCUPANCY

Unit: PERCENT

Statistic: AVG

UI name: Occupancy

QUEUE_ANSWER_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue answer time

QUEUED_TIME

Unit: SECONDS

Statistic: MAX

UI name: Minimum flow time

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: PERCENT

Statistic: AVG

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

UI name: Average queue abandon time

" + "documentation":"

The metrics to retrieve. Specify the name, unit, and statistic for each metric. The following historical metrics are available. For a description of each metric, see Metrics definition in the Connect Customer Administrator Guide.

This API does not support a contacts incoming metric (there's no CONTACTS_INCOMING metric missing from the documented list).

ABANDON_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue abandon time

AFTER_CONTACT_WORK_TIME

Unit: SECONDS

Statistic: AVG

UI name: After contact work time

API_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: API contacts handled

AVG_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average customer hold time

CALLBACK_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Callback contacts handled

CONTACTS_ABANDONED

Unit: COUNT

Statistic: SUM

UI name: Contacts abandoned

CONTACTS_AGENT_HUNG_UP_FIRST

Unit: COUNT

Statistic: SUM

UI name: Contacts agent hung up first

CONTACTS_CONSULTED

Unit: COUNT

Statistic: SUM

UI name: Contacts consulted

CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Contacts handled

CONTACTS_HANDLED_INCOMING

Unit: COUNT

Statistic: SUM

UI name: Contacts handled incoming

CONTACTS_HANDLED_OUTBOUND

Unit: COUNT

Statistic: SUM

UI name: Contacts handled outbound

CONTACTS_HOLD_ABANDONS

Unit: COUNT

Statistic: SUM

UI name: Contacts hold disconnect

CONTACTS_MISSED

Unit: COUNT

Statistic: SUM

UI name: AGENT_NON_RESPONSE

CONTACTS_QUEUED

Unit: COUNT

Statistic: SUM

UI name: Contacts queued

CONTACTS_TRANSFERRED_IN

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred in

CONTACTS_TRANSFERRED_IN_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

CONTACTS_TRANSFERRED_OUT

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

HANDLE_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average handle time

INTERACTION_AND_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction and customer hold time

INTERACTION_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction time

OCCUPANCY

Unit: PERCENT

Statistic: AVG

UI name: Occupancy

QUEUE_ANSWER_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue answer time

QUEUED_TIME

Unit: SECONDS

Statistic: MAX

UI name: Minimum flow time

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: PERCENT

Statistic: AVG

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

UI name: Average queue abandon time

" }, "NextToken":{ "shape":"NextToken", @@ -19929,7 +19929,7 @@ "members":{ "ResourceArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the resource. This includes the instanceId an Amazon Connect instance.

" + "documentation":"

The Amazon Resource Name (ARN) of the resource. This includes the instanceId an Connect Customer instance.

" }, "StartTime":{ "shape":"Timestamp", @@ -19941,11 +19941,11 @@ }, "Interval":{ "shape":"IntervalDetails", - "documentation":"

The interval period and timezone to apply to returned metrics.

  • IntervalPeriod: An aggregated grouping applied to request metrics. Valid IntervalPeriod values are: FIFTEEN_MIN | THIRTY_MIN | HOUR | DAY | WEEK | TOTAL.

    For example, if IntervalPeriod is selected THIRTY_MIN, StartTime and EndTime differs by 1 day, then Amazon Connect returns 48 results in the response. Each result is aggregated by the THIRTY_MIN period. By default Amazon Connect aggregates results based on the TOTAL interval period.

    The following list describes restrictions on StartTime and EndTime based on which IntervalPeriod is requested.

    • FIFTEEN_MIN: The difference between StartTime and EndTime must be less than 3 days.

    • THIRTY_MIN: The difference between StartTime and EndTime must be less than 3 days.

    • HOUR: The difference between StartTime and EndTime must be less than 3 days.

    • DAY: The difference between StartTime and EndTime must be less than 35 days.

    • WEEK: The difference between StartTime and EndTime must be less than 35 days.

    • TOTAL: The difference between StartTime and EndTime must be less than 35 days.

  • TimeZone: The timezone applied to requested metrics.

" + "documentation":"

The interval period and timezone to apply to returned metrics.

  • IntervalPeriod: An aggregated grouping applied to request metrics. Valid IntervalPeriod values are: FIFTEEN_MIN | THIRTY_MIN | HOUR | DAY | WEEK | TOTAL.

    For example, if IntervalPeriod is selected THIRTY_MIN, StartTime and EndTime differs by 1 day, then Connect Customer returns 48 results in the response. Each result is aggregated by the THIRTY_MIN period. By default Connect Customer aggregates results based on the TOTAL interval period.

    The following list describes restrictions on StartTime and EndTime based on which IntervalPeriod is requested.

    • FIFTEEN_MIN: The difference between StartTime and EndTime must be less than 3 days.

    • THIRTY_MIN: The difference between StartTime and EndTime must be less than 3 days.

    • HOUR: The difference between StartTime and EndTime must be less than 3 days.

    • DAY: The difference between StartTime and EndTime must be less than 35 days.

    • WEEK: The difference between StartTime and EndTime must be less than 35 days.

    • TOTAL: The difference between StartTime and EndTime must be less than 35 days.

  • TimeZone: The timezone applied to requested metrics.

" }, "Filters":{ "shape":"FiltersV2List", - "documentation":"

Filtering is an operation that selects records that match a set of specified criteria. By narrowing the dataset before aggregation, filters ensure that only relevant records are included in the computation.

Filter keys

The following are valid filter keys for a GetMetricDataV2 request:

AGENT | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE | ANSWERING_MACHINE_DETECTION_STATUS | BOT_ALIAS | BOT_ID | BOT_INTENT_NAME | BOT_LOCALE | BOT_VERSION | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE | CAMPAIGN_EXCLUDED_EVENT_TYPE | CASE_STATUS | CASE_TEMPLATE_ARN | CHANNEL | contact/segmentAttributes/connect:Subtype | contact/segmentAttributes/connect:ValidationTestType | DISCONNECT_REASON | EVALUATION_FORM | EVALUATION_QUESTION | EVALUATION_SECTION | EVALUATION_SOURCE | EVALUATOR_ID | FEATURE | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_MODULE_RESOURCE_ID | FLOWS_NEXT_RESOURCE_ID | FLOWS_NEXT_RESOURCE_QUEUE_ID | FLOWS_OUTCOME_TYPE | FLOWS_RESOURCE_ID | FORM_VERSION | INITIATING_FLOW | INITIATION_METHOD | INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE | PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | TEST_CASE | TEST_CASE_EXECUTION_FAILURE_REASON | TEST_CASE_EXECUTION_RESULT | TEST_CASE_EXECUTION_STATE

The following filter keys correspond to Amazon Connect resources and are used for authorizing requests. A GetMetricDataV2 request requires at least one of these filters:

QUEUE, ROUTING_PROFILE, AGENT, AGENT_HIERARCHY_LEVEL_ONE, AGENT_HIERARCHY_LEVEL_TWO, AGENT_HIERARCHY_LEVEL_THREE, AGENT_HIERARCHY_LEVEL_FOUR, AGENT_HIERARCHY_LEVEL_FIVE, CAMPAIGN, EVALUATION_FORM, EVALUATOR_ID

You can use up to 5 filter keys in a single request, and up to 100 filter values across all filter keys.

Filter values

  • VOICE, CHAT, TASK, and EMAIL are valid filter values for the CHANNEL filter key. They do not count towards the limit of 100 filter values. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values, along with 4 channel filters.

  • contact_lens_conversational_analytics is a valid filter value for the FEATURE filter key. It is available only for contacts analyzed by Contact Lens conversational analytics.

  • connect:Chat, connect:SMS, connect:Telephony, and connect:WebRTC are valid filter value examples (not exhaustive) for the contact/segmentAttributes/connect:Subtype filter key.

  • ROUTING_STEP_EXPRESSION accepts a filter value up to 3,000 characters in length. This filter is case-sensitive and order-sensitive. JSON string fields must be sorted in ascending order, and JSON array order must be preserved.

  • TRUE and FALSE are the only valid filter values for the Q_CONNECT_ENABLED filter key.

    • TRUE includes all contacts that had Connect AI Agents enabled as part of the flow.

    • FALSE includes all contacts that did not have Connect AI Agents enabled as part of the flow.

  • EXPERIENCE_VALIDATION and FLOW_VALIDATION are the only valid filter values for the contact/segmentAttributes/connect:ValidationTestType filter key. This filter is available only for contact record-driven metrics.

  • Campaign ARNs are valid filter values for the CAMPAIGN filter key.

  • To filter by phone number, see Create a historical metrics report in the Amazon Connect Administrator Guide.

" + "documentation":"

Filtering is an operation that selects records that match a set of specified criteria. By narrowing the dataset before aggregation, filters ensure that only relevant records are included in the computation.

Filter keys

The following are valid filter keys for a GetMetricDataV2 request:

AGENT | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE | ANSWERING_MACHINE_DETECTION_STATUS | BOT_ALIAS | BOT_ID | BOT_INTENT_NAME | BOT_LOCALE | BOT_VERSION | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE | CAMPAIGN_EXCLUDED_EVENT_TYPE | CASE_STATUS | CASE_TEMPLATE_ARN | CHANNEL | contact/segmentAttributes/connect:Subtype | contact/segmentAttributes/connect:ValidationTestType | DISCONNECT_REASON | EVALUATION_FORM | EVALUATION_QUESTION | EVALUATION_SECTION | EVALUATION_SOURCE | EVALUATOR_ID | FEATURE | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_MODULE_RESOURCE_ID | FLOWS_NEXT_RESOURCE_ID | FLOWS_NEXT_RESOURCE_QUEUE_ID | FLOWS_OUTCOME_TYPE | FLOWS_RESOURCE_ID | FORM_VERSION | INITIATING_FLOW | INITIATION_METHOD | INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE | PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | TEST_CASE | TEST_CASE_EXECUTION_FAILURE_REASON | TEST_CASE_EXECUTION_RESULT | TEST_CASE_EXECUTION_STATE

The following filter keys correspond to Connect Customer resources and are used for authorizing requests. A GetMetricDataV2 request requires at least one of these filters:

QUEUE, ROUTING_PROFILE, AGENT, AGENT_HIERARCHY_LEVEL_ONE, AGENT_HIERARCHY_LEVEL_TWO, AGENT_HIERARCHY_LEVEL_THREE, AGENT_HIERARCHY_LEVEL_FOUR, AGENT_HIERARCHY_LEVEL_FIVE, CAMPAIGN, EVALUATION_FORM, EVALUATOR_ID

You can use up to 5 filter keys in a single request, and up to 100 filter values across all filter keys.

Filter values

  • VOICE, CHAT, TASK, and EMAIL are valid filter values for the CHANNEL filter key. They do not count towards the limit of 100 filter values. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values, along with 4 channel filters.

  • contact_lens_conversational_analytics is a valid filter value for the FEATURE filter key. It is available only for contacts analyzed by Contact Lens conversational analytics.

  • connect:Chat, connect:SMS, connect:Telephony, and connect:WebRTC are valid filter value examples (not exhaustive) for the contact/segmentAttributes/connect:Subtype filter key.

  • ROUTING_STEP_EXPRESSION accepts a filter value up to 3,000 characters in length. This filter is case-sensitive and order-sensitive. JSON string fields must be sorted in ascending order, and JSON array order must be preserved.

  • TRUE and FALSE are the only valid filter values for the Q_CONNECT_ENABLED filter key.

    • TRUE includes all contacts that had Connect AI Agents enabled as part of the flow.

    • FALSE includes all contacts that did not have Connect AI Agents enabled as part of the flow.

  • EXPERIENCE_VALIDATION and FLOW_VALIDATION are the only valid filter values for the contact/segmentAttributes/connect:ValidationTestType filter key. This filter is available only for contact record-driven metrics.

  • Campaign ARNs are valid filter values for the CAMPAIGN filter key.

  • To filter by phone number, see Create a historical metrics report in the Connect Customer Administrator Guide.

" }, "Groupings":{ "shape":"GroupingsV2", @@ -19953,7 +19953,7 @@ }, "Metrics":{ "shape":"MetricsV2", - "documentation":"

The metrics to retrieve. Specify the name or metricId, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Metrics definition in the Amazon Connect Administrator Guide.

MetricId should be used to reference custom metrics or out of the box metrics as Arn. If using MetricId, the limit is 20 MetricId per request.

ABANDONMENT_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Abandonment rate

AGENT_ADHERENT_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Adherent time

AGENT_ANSWER_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent answer rate

AGENT_NON_ADHERENT_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Non-adherent time

AGENT_NON_RESPONSE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent non-response

AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

UI name: Agent non-response without customer abandons

AGENT_OCCUPANCY

Unit: Percentage

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Occupancy

AGENT_SCHEDULE_ADHERENCE

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Adherence

AGENT_SCHEDULED_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Scheduled time

AVG_ABANDON_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

Valid metric filter key: INITIATION_METHOD

UI name: Average queue abandon time

AVG_ACTIVE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Average active time

AVG_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average after contact work time

Feature is a valid filter but not a valid grouping.

AVG_AGENT_CONCURRENCY

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Average agent concurrency

AVG_AGENT_CONNECTING_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Average agent API connecting time

The Negate key in metric-level filters is not applicable for this metric.

AVG_AGENT_PAUSE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Average agent pause time

AVG_BOT_CONVERSATION_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Average bot conversation time

AVG_BOT_CONVERSATION_TURNS

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Average bot conversation turns

AVG_CASE_RELATED_CONTACTS

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Average contacts per case

AVG_CASE_RESOLUTION_TIME

Unit: Seconds

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Average case resolution time

AVG_CONTACT_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average contact duration

Feature is a valid filter but not a valid grouping.

AVG_CONTACT_FIRST_RESPONSE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Agent average contact first response wait time

AVG_CONVERSATION_CLOSE_TIME

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average conversation close time

AVG_CONVERSATION_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average conversation duration

AVG_DIALS_PER_MINUTE

This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

Unit: Count

Valid groupings and filters: Agent, Campaign, Queue, Routing Profile

UI name: Average dials per minute

AVG_EVALUATION_SCORE

Unit: Percent

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Average evaluation score

AVG_FIRST_RESPONSE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent first response time

AVG_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Average flow time

AVG_GREETING_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent greeting time

AVG_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression

UI name: Average handle time

Feature is a valid filter but not a valid grouping.

ACTIVE_AI_AGENTS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Active AI Agents

AI_HANDOFF_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Handoff Rate

AI_HANDOFFS

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Handoffs

AI_AGENT_INVOCATION_SUCCESS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Agent Invocation Success

AI Agent Name Version is not a valid filter but a valid grouping.

AI_AGENT_INVOCATION_SUCCESS_RATE

Unit: Percent

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Agent Invocation Success Rate

AI Agent Name Version is not a valid filter but a valid grouping.

AI_AGENT_INVOCATIONS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Agent Name Version, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Agent Invocations

AI Agent Name Version is not a valid filter but a valid grouping.

AI_RESPONSE_COMPLETION_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Response Completion Rate

AI_INVOLVED_CONTACTS

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Involved Contacts

AI_PROMPT_INVOCATION_SUCCESS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Prompt Invocation Success

AI Agent Name Version is not a valid filter but a valid grouping.

AI_PROMPT_INVOCATION_SUCCESS_RATE

Unit: Percent

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Prompt Invocation Success Rate

AI Agent Name Version is not a valid filter but a valid grouping.

AI_PROMPT_INVOCATIONS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Prompt Invocations

AI Agent Name Version is not a valid filter but a valid grouping.

AI_TOOL_INVOCATION_SUCCESS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Tool Invocation Success

AI Agent Name Version is not a valid filter but a valid grouping.

AI_TOOL_INVOCATION_SUCCESS_RATE

Unit: Percent

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Tool Invocation Success Rate

AI Agent Name Version is not a valid filter but a valid grouping.

AI_TOOL_INVOCATIONS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Tool Invocations

AI Agent Name Version is not a valid filter but a valid grouping.

AVG_AI_AGENT_CONVERSATION_TURNS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Agent Conversation Turns

AI Agent Name Version is not a valid filter but a valid grouping.

AVG_AI_CONVERSATION_TURNS

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Conversation Turns

AVG_AI_PROMPT_INVOCATION_LATENCY

Unit: Milliseconds

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Prompt Invocation Latency

AI Agent Name Version is not a valid filter but a valid grouping.

AVG_AI_TOOL_INVOCATION_LATENCY

Unit: Milliseconds

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Tool Invocation Latency

AI Agent Name Version is not a valid filter but a valid grouping.

KNOWLEDGE_CONTENT_REFERENCES

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Knowledge Base Name, Queue, Routing Profile

UI name: Knowledge Content References

PROACTIVE_INTENT_ENGAGEMENT_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intent Engagement Rate

PROACTIVE_INTENT_RESPONSE_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intent Response Rate

PROACTIVE_INTENTS_ANSWERED

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intents Answered

PROACTIVE_INTENTS_DETECTED

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intents Detected

PROACTIVE_INTENTS_ENGAGED

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intents Engaged

AVG_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average customer hold time

Feature is a valid filter but not a valid grouping.

AVG_HOLD_TIME_ALL_CONTACTS

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average customer hold time all contacts

AVG_HOLDS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average holds

Feature is a valid filter but not a valid grouping.

AVG_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interaction and customer hold time

AVG_INTERACTION_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interaction time

Feature is a valid filter but not a valid grouping.

AVG_INTERRUPTIONS_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interruptions

AVG_INTERRUPTION_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interruption time

AVG_MESSAGE_LENGTH_AGENT

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent message length

AVG_MESSAGE_LENGTH_CUSTOMER

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average customer message length

AVG_MESSAGES

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average messages

AVG_MESSAGES_AGENT

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent messages

AVG_MESSAGES_BOT

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average bot messages

AVG_MESSAGES_CUSTOMER

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average customer messages

AVG_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average non-talk time

AVG_QUEUE_ANSWER_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average queue answer time

Valid metric level filters: INITIATION_METHOD, FEATURE, DISCONNECT_REASON

Feature is a valid filter but not a valid grouping.

AVG_QUEUE_ANSWER_TIME_CUSTOMER_FIRST_CALLBACK

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

UI name: Avg. queue answer time - customer first callback

AVG_RESPONSE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent response time

AVG_RESPONSE_TIME_CUSTOMER

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average customer response time

AVG_RESOLUTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average resolution time

AVG_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average talk time

AVG_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent talk time

AVG_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average customer talk time

AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION

This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

Unit: Seconds

Valid groupings and filters: Campaign

UI name: Average wait time after customer connection

AVG_WAIT_TIME_AFTER_CUSTOMER_FIRST_CALLBACK_CONNECTION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

UI name: Avg. wait time after customer connection - customer first callback

AVG_WEIGHTED_EVALUATION_SCORE

Unit: Percent

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form Id, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Average weighted evaluation score

BOT_CONVERSATIONS_COMPLETED

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Bot conversations completed

BOT_INTENTS_COMPLETED

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Bot intents completed

CAMPAIGN_CONTACTS_ABANDONED_AFTER_X

This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

Unit: Count

Valid groupings and filters: Agent, Campaign

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

UI name: Campaign contacts abandoned after X

CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE

This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

Unit: Percent

Valid groupings and filters: Agent, Campaign

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

UI name: Campaign contacts abandoned after X rate

CAMPAIGN_INTERACTIONS

This metric is available only for outbound campaigns using the email delivery mode.

Unit: Count

Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

Valid groupings and filters: Campaign

UI name: Campaign interactions

CAMPAIGN_PROGRESS_RATE

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Unit: Percent

Valid groupings and filters: Campaign, Campaign Execution Timestamp

UI name: Campaign progress rate

CAMPAIGN_SEND_ATTEMPTS

This metric is available only for outbound campaigns.

Unit: Count

Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype

UI name: Campaign send attempts

CAMPAIGN_SEND_EXCLUSIONS

This metric is available only for outbound campaigns.

Valid metric filter key: CAMPAIGN_EXCLUDED_EVENT_TYPE

Unit: Count

Valid groupings and filters: Campaign, Campaign Excluded Event Type, Campaign Execution Timestamp

UI name: Campaign send exclusions

CASES_CREATED

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases created

CONTACTS_CREATED

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts created

Feature is a valid filter but not a valid grouping.

CONTACTS_HANDLED

Unit: Count

Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

UI name: Contacts handled

Feature is a valid filter but not a valid grouping.

CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts handled (connected to agent timestamp)

CONTACTS_HOLD_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts hold disconnect

CONTACTS_ON_HOLD_AGENT_DISCONNECT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts hold agent disconnect

CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts hold customer disconnect

CONTACTS_PUT_ON_HOLD

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts put on hold

CONTACTS_TRANSFERRED_OUT_EXTERNAL

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts transferred out external

CONTACTS_TRANSFERRED_OUT_INTERNAL

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts transferred out internal

CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts queued

CONTACTS_QUEUED_BY_ENQUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

UI name: Contacts queued (enqueue timestamp)

CONTACTS_REMOVED_FROM_QUEUE_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts removed from queue in X seconds

CONTACTS_RESOLVED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts resolved in X

CONTACTS_TRANSFERRED_OUT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts transferred out

Feature is a valid filter but not a valid grouping.

CONTACTS_TRANSFERRED_OUT_BY_AGENT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts transferred out by agent

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts transferred out queue

CURRENT_CASES

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Current cases

CONVERSATIONS_ABANDONED

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Conversations abandoned

DELIVERY_ATTEMPTS

This metric is available only for outbound campaigns.

Unit: Count

Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Campaign Delivery EventType, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

UI name: Delivery attempts

Campaign Delivery EventType filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

DELIVERY_ATTEMPT_DISPOSITION_RATE

This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

Unit: Percent

Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

UI name: Delivery attempt disposition rate

Campaign Delivery Event Type filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

EVALUATIONS_PERFORMED

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Evaluations performed

FLOWS_OUTCOME

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Flows outcome

FLOWS_STARTED

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows resource ID, Initiation method, Resource published timestamp

UI name: Flows started

HUMAN_ANSWERED_CALLS

This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

Unit: Count

Valid groupings and filters: Agent, Campaign

UI name: Human answered

MAX_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Maximum flow time

MAX_QUEUED_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Maximum queued time

MIN_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Minimum flow time

PERCENT_AUTOMATIC_FAILS

Unit: Percent

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Automatic fails percent

PERCENT_BOT_CONVERSATIONS_OUTCOME

Unit: Percent

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Percent bot conversations outcome

PERCENT_BOT_INTENTS_OUTCOME

Unit: Percent

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Percent bot intents outcome

PERCENT_CASES_FIRST_CONTACT_RESOLVED

Unit: Percent

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases resolved on first contact

PERCENT_CONTACTS_STEP_EXPIRED

Unit: Percent

Valid groupings and filters: Queue, RoutingStepExpression

UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

PERCENT_CONTACTS_STEP_JOINED

Unit: Percent

Valid groupings and filters: Queue, RoutingStepExpression

UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

PERCENT_FLOWS_OUTCOME

Unit: Percent

Valid metric filter key: FLOWS_OUTCOME_TYPE

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Flows outcome percentage.

The FLOWS_OUTCOME_TYPE is not a valid grouping.

PERCENT_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Non-talk time percent

PERCENT_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Talk time percent

PERCENT_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Agent talk time percent

PERCENT_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Customer talk time percent

RECIPIENTS_ATTEMPTED

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Unit: Count

Valid groupings and filters: Campaign, Campaign Execution Timestamp

UI name: Recipients attempted

RECIPIENTS_INTERACTED

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

Unit: Count

Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype, Campaign Execution Timestamp

UI name: Recipients interacted

RECIPIENTS_TARGETED

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Unit: Count

Valid groupings and filters: Campaign, Campaign Execution Timestamp

UI name: Recipients targeted

REOPENED_CASE_ACTIONS

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases reopened

RESOLVED_CASE_ACTIONS

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases resolved

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Service level X

STEP_CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, RoutingStepExpression

UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

SUM_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: After contact work time

SUM_CONNECTING_TIME_AGENT

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API | CALLBACK_CUSTOMER_FIRST_DIALED

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent API connecting time

The Negate key in metric-level filters is not applicable for this metric.

CONTACTS_ABANDONED

Unit: Count

Metric filter:

  • Valid values: API| INCOMING | OUTBOUND | TRANSFER | CALLBACK | QUEUE_TRANSFER| Disconnect | CALLBACK_CUSTOMER_FIRST_DIALED

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

UI name: Contact abandoned

SUM_CONTACTS_ABANDONED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts abandoned in X seconds

SUM_CONTACTS_ANSWERED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts answered in X seconds

SUM_CONTACT_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contact flow time

SUM_CONTACT_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Agent on contact time

SUM_CONTACTS_DISCONNECTED

Valid metric filter key: DISCONNECT_REASON

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contact disconnected

SUM_ERROR_STATUS_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Error status time

SUM_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contact handle time

SUM_HOLD_TIME

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Customer hold time

SUM_IDLE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Agent idle time

SUM_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Agent interaction and hold time

SUM_INTERACTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent interaction time

SUM_NON_PRODUCTIVE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Agent non-productive time

SUM_ONLINE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Online time

SUM_RETRY_CALLBACK_ATTEMPTS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Callback attempts

" + "documentation":"

The metrics to retrieve. Specify the name or metricId, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Metrics definition in the Connect Customer Administrator Guide.

MetricId should be used to reference custom metrics or out of the box metrics as Arn. If using MetricId, the limit is 20 MetricId per request.

ABANDONMENT_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Abandonment rate

AGENT_ADHERENT_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Adherent time

AGENT_ANSWER_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent answer rate

AGENT_NON_ADHERENT_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Non-adherent time

AGENT_NON_RESPONSE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent non-response

AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

UI name: Agent non-response without customer abandons

AGENT_OCCUPANCY

Unit: Percentage

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Occupancy

AGENT_SCHEDULE_ADHERENCE

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Adherence

AGENT_SCHEDULED_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Scheduled time

AVG_ABANDON_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

Valid metric filter key: INITIATION_METHOD

UI name: Average queue abandon time

AVG_ACTIVE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Average active time

AVG_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average after contact work time

Feature is a valid filter but not a valid grouping.

AVG_AGENT_CONCURRENCY

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Average agent concurrency

AVG_AGENT_CONNECTING_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Average agent API connecting time

The Negate key in metric-level filters is not applicable for this metric.

AVG_AGENT_PAUSE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Average agent pause time

AVG_BOT_CONVERSATION_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Average bot conversation time

AVG_BOT_CONVERSATION_TURNS

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Average bot conversation turns

AVG_CASE_RELATED_CONTACTS

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Average contacts per case

AVG_CASE_RESOLUTION_TIME

Unit: Seconds

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Average case resolution time

AVG_CONTACT_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average contact duration

Feature is a valid filter but not a valid grouping.

AVG_CONTACT_FIRST_RESPONSE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Agent average contact first response wait time

AVG_CONVERSATION_CLOSE_TIME

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average conversation close time

AVG_CONVERSATION_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average conversation duration

AVG_DIALS_PER_MINUTE

This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

Unit: Count

Valid groupings and filters: Agent, Campaign, Queue, Routing Profile

UI name: Average dials per minute

AVG_EVALUATION_SCORE

Unit: Percent

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Average evaluation score

AVG_FIRST_RESPONSE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent first response time

AVG_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Average flow time

AVG_GREETING_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent greeting time

AVG_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression

UI name: Average handle time

Feature is a valid filter but not a valid grouping.

ACTIVE_AI_AGENTS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Active AI Agents

AI_HANDOFF_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Handoff Rate

AI_HANDOFFS

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Handoffs

AI_AGENT_INVOCATION_SUCCESS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Agent Invocation Success

AI Agent Name Version is not a valid filter but a valid grouping.

AI_AGENT_INVOCATION_SUCCESS_RATE

Unit: Percent

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Agent Invocation Success Rate

AI Agent Name Version is not a valid filter but a valid grouping.

AI_AGENT_INVOCATIONS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Agent Name Version, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Agent Invocations

AI Agent Name Version is not a valid filter but a valid grouping.

AI_RESPONSE_COMPLETION_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Response Completion Rate

AI_INVOLVED_CONTACTS

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: AI Involved Contacts

AI_PROMPT_INVOCATION_SUCCESS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Prompt Invocation Success

AI Agent Name Version is not a valid filter but a valid grouping.

AI_PROMPT_INVOCATION_SUCCESS_RATE

Unit: Percent

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Prompt Invocation Success Rate

AI Agent Name Version is not a valid filter but a valid grouping.

AI_PROMPT_INVOCATIONS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Prompt Invocations

AI Agent Name Version is not a valid filter but a valid grouping.

AI_TOOL_INVOCATION_SUCCESS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Tool Invocation Success

AI Agent Name Version is not a valid filter but a valid grouping.

AI_TOOL_INVOCATION_SUCCESS_RATE

Unit: Percent

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Tool Invocation Success Rate

AI Agent Name Version is not a valid filter but a valid grouping.

AI_TOOL_INVOCATIONS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: AI Tool Invocations

AI Agent Name Version is not a valid filter but a valid grouping.

AVG_AI_AGENT_CONVERSATION_TURNS

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Agent Conversation Turns

AI Agent Name Version is not a valid filter but a valid grouping.

AVG_AI_CONVERSATION_TURNS

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Conversation Turns

AVG_AI_PROMPT_INVOCATION_LATENCY

Unit: Milliseconds

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Prompt Invocation Latency

AI Agent Name Version is not a valid filter but a valid grouping.

AVG_AI_TOOL_INVOCATION_LATENCY

Unit: Milliseconds

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

UI name: Average AI Tool Invocation Latency

AI Agent Name Version is not a valid filter but a valid grouping.

KNOWLEDGE_CONTENT_REFERENCES

Unit: Count

Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Knowledge Base Name, Queue, Routing Profile

UI name: Knowledge Content References

PROACTIVE_INTENT_ENGAGEMENT_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intent Engagement Rate

PROACTIVE_INTENT_RESPONSE_RATE

Unit: Percent

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intent Response Rate

PROACTIVE_INTENTS_ANSWERED

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intents Answered

PROACTIVE_INTENTS_DETECTED

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intents Detected

PROACTIVE_INTENTS_ENGAGED

Unit: Count

Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

UI name: Proactive Intents Engaged

AVG_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average customer hold time

Feature is a valid filter but not a valid grouping.

AVG_HOLD_TIME_ALL_CONTACTS

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average customer hold time all contacts

AVG_HOLDS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average holds

Feature is a valid filter but not a valid grouping.

AVG_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interaction and customer hold time

AVG_INTERACTION_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interaction time

Feature is a valid filter but not a valid grouping.

AVG_INTERRUPTIONS_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interruptions

AVG_INTERRUPTION_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent interruption time

AVG_MESSAGE_LENGTH_AGENT

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent message length

AVG_MESSAGE_LENGTH_CUSTOMER

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average customer message length

AVG_MESSAGES

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average messages

AVG_MESSAGES_AGENT

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent messages

AVG_MESSAGES_BOT

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average bot messages

AVG_MESSAGES_CUSTOMER

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average customer messages

AVG_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average non-talk time

AVG_QUEUE_ANSWER_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average queue answer time

Valid metric level filters: INITIATION_METHOD, FEATURE, DISCONNECT_REASON

Feature is a valid filter but not a valid grouping.

AVG_QUEUE_ANSWER_TIME_CUSTOMER_FIRST_CALLBACK

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

UI name: Avg. queue answer time - customer first callback

AVG_RESPONSE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average agent response time

AVG_RESPONSE_TIME_CUSTOMER

Unit: Seconds

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Average customer response time

AVG_RESOLUTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average resolution time

AVG_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average talk time

AVG_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average agent talk time

AVG_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Average customer talk time

AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION

This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

Unit: Seconds

Valid groupings and filters: Campaign

UI name: Average wait time after customer connection

AVG_WAIT_TIME_AFTER_CUSTOMER_FIRST_CALLBACK_CONNECTION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

UI name: Avg. wait time after customer connection - customer first callback

AVG_WEIGHTED_EVALUATION_SCORE

Unit: Percent

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form Id, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Average weighted evaluation score

BOT_CONVERSATIONS_COMPLETED

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Bot conversations completed

BOT_INTENTS_COMPLETED

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Bot intents completed

CAMPAIGN_CONTACTS_ABANDONED_AFTER_X

This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

Unit: Count

Valid groupings and filters: Agent, Campaign

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

UI name: Campaign contacts abandoned after X

CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE

This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

Unit: Percent

Valid groupings and filters: Agent, Campaign

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

UI name: Campaign contacts abandoned after X rate

CAMPAIGN_INTERACTIONS

This metric is available only for outbound campaigns using the email delivery mode.

Unit: Count

Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

Valid groupings and filters: Campaign

UI name: Campaign interactions

CAMPAIGN_PROGRESS_RATE

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Unit: Percent

Valid groupings and filters: Campaign, Campaign Execution Timestamp

UI name: Campaign progress rate

CAMPAIGN_SEND_ATTEMPTS

This metric is available only for outbound campaigns.

Unit: Count

Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype

UI name: Campaign send attempts

CAMPAIGN_SEND_EXCLUSIONS

This metric is available only for outbound campaigns.

Valid metric filter key: CAMPAIGN_EXCLUDED_EVENT_TYPE

Unit: Count

Valid groupings and filters: Campaign, Campaign Excluded Event Type, Campaign Execution Timestamp

UI name: Campaign send exclusions

CASES_CREATED

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases created

CONTACTS_CREATED

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts created

Feature is a valid filter but not a valid grouping.

CONTACTS_HANDLED

Unit: Count

Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

UI name: Contacts handled

Feature is a valid filter but not a valid grouping.

CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts handled (connected to agent timestamp)

CONTACTS_HOLD_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts hold disconnect

CONTACTS_ON_HOLD_AGENT_DISCONNECT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts hold agent disconnect

CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts hold customer disconnect

CONTACTS_PUT_ON_HOLD

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts put on hold

CONTACTS_TRANSFERRED_OUT_EXTERNAL

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts transferred out external

CONTACTS_TRANSFERRED_OUT_INTERNAL

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contacts transferred out internal

CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts queued

CONTACTS_QUEUED_BY_ENQUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

UI name: Contacts queued (enqueue timestamp)

CONTACTS_REMOVED_FROM_QUEUE_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts removed from queue in X seconds

CONTACTS_RESOLVED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts resolved in X

CONTACTS_TRANSFERRED_OUT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts transferred out

Feature is a valid filter but not a valid grouping.

CONTACTS_TRANSFERRED_OUT_BY_AGENT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts transferred out by agent

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contacts transferred out queue

CURRENT_CASES

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Current cases

CONVERSATIONS_ABANDONED

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

UI name: Conversations abandoned

DELIVERY_ATTEMPTS

This metric is available only for outbound campaigns.

Unit: Count

Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Campaign Delivery EventType, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

UI name: Delivery attempts

Campaign Delivery EventType filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

DELIVERY_ATTEMPT_DISPOSITION_RATE

This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

Unit: Percent

Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

UI name: Delivery attempt disposition rate

Campaign Delivery Event Type filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

EVALUATIONS_PERFORMED

Unit: Count

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Evaluations performed

FLOWS_OUTCOME

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Flows outcome

FLOWS_STARTED

Unit: Count

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows resource ID, Initiation method, Resource published timestamp

UI name: Flows started

HUMAN_ANSWERED_CALLS

This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

Unit: Count

Valid groupings and filters: Agent, Campaign

UI name: Human answered

MAX_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Maximum flow time

MAX_QUEUED_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Maximum queued time

MIN_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Minimum flow time

PERCENT_AUTOMATIC_FAILS

Unit: Percent

Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

UI name: Automatic fails percent

PERCENT_BOT_CONVERSATIONS_OUTCOME

Unit: Percent

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Percent bot conversations outcome

PERCENT_BOT_INTENTS_OUTCOME

Unit: Percent

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

UI name: Percent bot intents outcome

PERCENT_CASES_FIRST_CONTACT_RESOLVED

Unit: Percent

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases resolved on first contact

PERCENT_CONTACTS_STEP_EXPIRED

Unit: Percent

Valid groupings and filters: Queue, RoutingStepExpression

UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

PERCENT_CONTACTS_STEP_JOINED

Unit: Percent

Valid groupings and filters: Queue, RoutingStepExpression

UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

PERCENT_FLOWS_OUTCOME

Unit: Percent

Valid metric filter key: FLOWS_OUTCOME_TYPE

Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

UI name: Flows outcome percentage.

The FLOWS_OUTCOME_TYPE is not a valid grouping.

PERCENT_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Non-talk time percent

PERCENT_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Talk time percent

PERCENT_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Agent talk time percent

PERCENT_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Customer talk time percent

RECIPIENTS_ATTEMPTED

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Unit: Count

Valid groupings and filters: Campaign, Campaign Execution Timestamp

UI name: Recipients attempted

RECIPIENTS_INTERACTED

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

Unit: Count

Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype, Campaign Execution Timestamp

UI name: Recipients interacted

RECIPIENTS_TARGETED

This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

Unit: Count

Valid groupings and filters: Campaign, Campaign Execution Timestamp

UI name: Recipients targeted

REOPENED_CASE_ACTIONS

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases reopened

RESOLVED_CASE_ACTIONS

Unit: Count

Required filter key: CASE_TEMPLATE_ARN

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

UI name: Cases resolved

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Service level X

STEP_CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, RoutingStepExpression

UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

SUM_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: After contact work time

SUM_CONNECTING_TIME_AGENT

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API | CALLBACK_CUSTOMER_FIRST_DIALED

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent API connecting time

The Negate key in metric-level filters is not applicable for this metric.

CONTACTS_ABANDONED

Unit: Count

Metric filter:

  • Valid values: API| INCOMING | OUTBOUND | TRANSFER | CALLBACK | QUEUE_TRANSFER| Disconnect | CALLBACK_CUSTOMER_FIRST_DIALED

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

UI name: Contact abandoned

SUM_CONTACTS_ABANDONED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts abandoned in X seconds

SUM_CONTACTS_ANSWERED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

UI name: Contacts answered in X seconds

SUM_CONTACT_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contact flow time

SUM_CONTACT_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Agent on contact time

SUM_CONTACTS_DISCONNECTED

Valid metric filter key: DISCONNECT_REASON

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Contact disconnected

SUM_ERROR_STATUS_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Error status time

SUM_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Contact handle time

SUM_HOLD_TIME

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Customer hold time

SUM_IDLE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Agent idle time

SUM_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

UI name: Agent interaction and hold time

SUM_INTERACTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

UI name: Agent interaction time

SUM_NON_PRODUCTIVE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Agent non-productive time

SUM_ONLINE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

UI name: Online time

SUM_RETRY_CALLBACK_ATTEMPTS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

UI name: Callback attempts

" }, "NextToken":{ "shape":"NextToken2500", @@ -19988,7 +19988,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -20026,7 +20026,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -20054,7 +20054,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Id":{ "shape":"TaskTemplateId", @@ -20546,7 +20546,7 @@ "members":{ "Name":{ "shape":"HistoricalMetricName", - "documentation":"

The name of the metric. Following is a list of each supported metric mapped to the UI name, linked to a detailed description in the Amazon Connect Administrator Guide.

ABANDON_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue abandon time

AFTER_CONTACT_WORK_TIME

Unit: SECONDS

Statistic: AVG

UI name: After contact work time

API_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: API contacts handled

AVG_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average customer hold time

CALLBACK_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Callback contacts handled

CONTACTS_ABANDONED

Unit: COUNT

Statistic: SUM

UI name: Contacts abandoned

CONTACTS_AGENT_HUNG_UP_FIRST

Unit: COUNT

Statistic: SUM

UI name: Contacts agent hung up first

CONTACTS_CONSULTED

Unit: COUNT

Statistic: SUM

UI name: Contacts consulted

CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Contacts handled

CONTACTS_HANDLED_INCOMING

Unit: COUNT

Statistic: SUM

UI name: Contacts handled incoming

CONTACTS_HANDLED_OUTBOUND

Unit: COUNT

Statistic: SUM

UI name: Contacts handled outbound

CONTACTS_HOLD_ABANDONS

Unit: COUNT

Statistic: SUM

UI name: Contacts hold disconnect

CONTACTS_MISSED

Unit: COUNT

Statistic: SUM

UI name: AGENT_NON_RESPONSE

CONTACTS_QUEUED

Unit: COUNT

Statistic: SUM

UI name: Contacts queued

CONTACTS_TRANSFERRED_IN

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred in

CONTACTS_TRANSFERRED_IN_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

CONTACTS_TRANSFERRED_OUT

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

HANDLE_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average handle time

INTERACTION_AND_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction and customer hold time

INTERACTION_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction time

OCCUPANCY

Unit: PERCENT

Statistic: AVG

UI name: Occupancy

QUEUE_ANSWER_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue answer time

QUEUED_TIME

Unit: SECONDS

Statistic: MAX

UI name: Minimum flow time

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: PERCENT

Statistic: AVG

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

UI name: Service level X

" + "documentation":"

The name of the metric. Following is a list of each supported metric mapped to the UI name, linked to a detailed description in the Connect Customer Administrator Guide.

ABANDON_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue abandon time

AFTER_CONTACT_WORK_TIME

Unit: SECONDS

Statistic: AVG

UI name: After contact work time

API_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: API contacts handled

AVG_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average customer hold time

CALLBACK_CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Callback contacts handled

CONTACTS_ABANDONED

Unit: COUNT

Statistic: SUM

UI name: Contacts abandoned

CONTACTS_AGENT_HUNG_UP_FIRST

Unit: COUNT

Statistic: SUM

UI name: Contacts agent hung up first

CONTACTS_CONSULTED

Unit: COUNT

Statistic: SUM

UI name: Contacts consulted

CONTACTS_HANDLED

Unit: COUNT

Statistic: SUM

UI name: Contacts handled

CONTACTS_HANDLED_INCOMING

Unit: COUNT

Statistic: SUM

UI name: Contacts handled incoming

CONTACTS_HANDLED_OUTBOUND

Unit: COUNT

Statistic: SUM

UI name: Contacts handled outbound

CONTACTS_HOLD_ABANDONS

Unit: COUNT

Statistic: SUM

UI name: Contacts hold disconnect

CONTACTS_MISSED

Unit: COUNT

Statistic: SUM

UI name: AGENT_NON_RESPONSE

CONTACTS_QUEUED

Unit: COUNT

Statistic: SUM

UI name: Contacts queued

CONTACTS_TRANSFERRED_IN

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred in

CONTACTS_TRANSFERRED_IN_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

CONTACTS_TRANSFERRED_OUT

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: COUNT

Statistic: SUM

UI name: Contacts transferred out queue

HANDLE_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average handle time

INTERACTION_AND_HOLD_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction and customer hold time

INTERACTION_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average agent interaction time

OCCUPANCY

Unit: PERCENT

Statistic: AVG

UI name: Occupancy

QUEUE_ANSWER_TIME

Unit: SECONDS

Statistic: AVG

UI name: Average queue answer time

QUEUED_TIME

Unit: SECONDS

Statistic: MAX

UI name: Minimum flow time

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: PERCENT

Statistic: AVG

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

UI name: Service level X

" }, "Threshold":{ "shape":"Threshold", @@ -20988,7 +20988,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "SourcePhoneNumberArn":{ "shape":"ARN", @@ -21153,17 +21153,17 @@ "members":{ "EnableValueValidationOnAssociation":{ "shape":"EnableValueValidationOnAssociation", - "documentation":"

When this parameter is set to true, Amazon Connect enforces strict validation on the specific values, if the values are predefined in attributes. The contact will store only valid and predefined values for the predefined attribute key.

" + "documentation":"

When this parameter is set to true, Connect Customer enforces strict validation on the specific values, if the values are predefined in attributes. The contact will store only valid and predefined values for the predefined attribute key.

" } }, - "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Amazon Connect admin website.

" + "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Connect Customer admin website.

" }, "Instance":{ "type":"structure", "members":{ "Id":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Arn":{ "shape":"ARN", @@ -21203,14 +21203,14 @@ }, "InstanceAccessUrl":{ "shape":"Url", - "documentation":"

This URL allows contact center users to access the Amazon Connect admin website.

" + "documentation":"

This URL allows contact center users to access the Connect Customer admin website.

" }, "Tags":{ "shape":"TagMap", "documentation":"

The tags of an instance.

" } }, - "documentation":"

The Amazon Connect instance.

" + "documentation":"

The Connect Customer instance.

" }, "InstanceArn":{ "type":"string", @@ -21373,7 +21373,7 @@ }, "InstanceAccessUrl":{ "shape":"Url", - "documentation":"

This URL allows contact center users to access the Amazon Connect admin website.

" + "documentation":"

This URL allows contact center users to access the Connect Customer admin website.

" } }, "documentation":"

Information about the instance.

" @@ -21405,7 +21405,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "IntegrationType":{ "shape":"IntegrationType", @@ -21475,7 +21475,7 @@ }, "IntervalPeriod":{ "shape":"IntervalPeriod", - "documentation":"

IntervalPeriod: An aggregated grouping applied to request metrics. Valid IntervalPeriod values are: FIFTEEN_MIN | THIRTY_MIN | HOUR | DAY | WEEK | TOTAL.

For example, if IntervalPeriod is selected THIRTY_MIN, StartTime and EndTime differs by 1 day, then Amazon Connect returns 48 results in the response. Each result is aggregated by the THIRTY_MIN period. By default Amazon Connect aggregates results based on the TOTAL interval period.

The following list describes restrictions on StartTime and EndTime based on what IntervalPeriod is requested.

  • FIFTEEN_MIN: The difference between StartTime and EndTime must be less than 3 days.

  • THIRTY_MIN: The difference between StartTime and EndTime must be less than 3 days.

  • HOUR: The difference between StartTime and EndTime must be less than 3 days.

  • DAY: The difference between StartTime and EndTime must be less than 35 days.

  • WEEK: The difference between StartTime and EndTime must be less than 35 days.

  • TOTAL: The difference between StartTime and EndTime must be less than 35 days.

" + "documentation":"

IntervalPeriod: An aggregated grouping applied to request metrics. Valid IntervalPeriod values are: FIFTEEN_MIN | THIRTY_MIN | HOUR | DAY | WEEK | TOTAL.

For example, if IntervalPeriod is selected THIRTY_MIN, StartTime and EndTime differs by 1 day, then Connect Customer returns 48 results in the response. Each result is aggregated by the THIRTY_MIN period. By default Connect Customer aggregates results based on the TOTAL interval period.

The following list describes restrictions on StartTime and EndTime based on what IntervalPeriod is requested.

  • FIFTEEN_MIN: The difference between StartTime and EndTime must be less than 3 days.

  • THIRTY_MIN: The difference between StartTime and EndTime must be less than 3 days.

  • HOUR: The difference between StartTime and EndTime must be less than 3 days.

  • DAY: The difference between StartTime and EndTime must be less than 35 days.

  • WEEK: The difference between StartTime and EndTime must be less than 35 days.

  • TOTAL: The difference between StartTime and EndTime must be less than 35 days.

" } }, "documentation":"

Information about the interval period to use for returning results.

" @@ -21744,7 +21744,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -21788,7 +21788,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -21831,7 +21831,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -21868,7 +21868,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -21909,13 +21909,13 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"querystring", "locationName":"contactId" }, @@ -21957,7 +21957,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -21994,7 +21994,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22035,7 +22035,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22151,13 +22151,13 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"querystring", "locationName":"contactId" }, @@ -22192,7 +22192,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22239,7 +22239,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22283,7 +22283,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22330,7 +22330,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22374,7 +22374,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22421,7 +22421,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22667,7 +22667,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22753,7 +22753,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22798,7 +22798,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22847,7 +22847,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22894,7 +22894,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22946,7 +22946,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -22983,7 +22983,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23024,7 +23024,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23099,7 +23099,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23149,7 +23149,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23187,7 +23187,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23264,7 +23264,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23332,11 +23332,11 @@ }, "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through.

" + "documentation":"

The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "PhoneNumberDescription":{ "shape":"PhoneNumberDescription", @@ -23347,7 +23347,7 @@ "documentation":"

The claimed phone number ARN that was previously imported from the external service, such as Amazon Web Services End User Messaging. If it is from Amazon Web Services End User Messaging, it looks like the ARN of the phone number that was imported from Amazon Web Services End User Messaging.

" } }, - "documentation":"

Information about phone numbers that have been claimed to your Amazon Connect instance or traffic distribution group.

" + "documentation":"

Information about phone numbers that have been claimed to your Connect Customer instance or traffic distribution group.

" }, "ListPhoneNumbersSummaryList":{ "type":"list", @@ -23358,11 +23358,11 @@ "members":{ "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. If both TargetArn and InstanceId input are not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account in the same Amazon Web Services Region as the request.

" + "documentation":"

The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through. If both TargetArn and InstanceId input are not provided, this API lists numbers claimed to all the Connect Customer instances belonging to your account in the same Amazon Web Services Region as the request.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. If both TargetArn and InstanceId are not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account in the same Amazon Web Services Region as the request.

" + "documentation":"

The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. If both TargetArn and InstanceId are not provided, this API lists numbers claimed to all the Connect Customer instances belonging to your account in the same Amazon Web Services Region as the request.

" }, "MaxResults":{ "shape":"MaxResult1000", @@ -23396,7 +23396,7 @@ }, "ListPhoneNumbersSummaryList":{ "shape":"ListPhoneNumbersSummaryList", - "documentation":"

Information about phone numbers that have been claimed to your Amazon Connect instances or traffic distribution groups.

" + "documentation":"

Information about phone numbers that have been claimed to your Connect Customer instances or traffic distribution groups.

" } } }, @@ -23406,7 +23406,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23444,7 +23444,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23485,7 +23485,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23540,7 +23540,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23592,7 +23592,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23635,7 +23635,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. Both Instance ID and Instance ARN are supported input formats.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. Both Instance ID and Instance ARN are supported input formats.

", "location":"uri", "locationName":"InstanceId" }, @@ -23654,7 +23654,7 @@ }, "QuickConnectTypes":{ "shape":"QuickConnectTypes", - "documentation":"

The type of quick connect. In the Amazon Connect admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

", + "documentation":"

The type of quick connect. In the Connect Customer admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

", "location":"querystring", "locationName":"QuickConnectTypes" } @@ -23684,13 +23684,13 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"uri", "locationName":"ContactId" }, @@ -23747,7 +23747,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23802,7 +23802,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23854,7 +23854,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23892,7 +23892,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23943,7 +23943,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -23990,7 +23990,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24044,7 +24044,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24098,7 +24098,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24144,7 +24144,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24182,7 +24182,7 @@ "members":{ "resourceArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the resource. All Amazon Connect resources (instances, queues, flows, routing profiles, etc) have an ARN. To locate the ARN for an instance, for example, see Find your Amazon Connect instance ID/ARN.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource. All Connect Customer resources (instances, queues, flows, routing profiles, etc) have an ARN. To locate the ARN for an instance, for example, see Find your Connect Customer instance ID/ARN.

", "location":"uri", "locationName":"resourceArn" } @@ -24203,7 +24203,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24468,7 +24468,7 @@ }, "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"querystring", "locationName":"instanceId" } @@ -24496,7 +24496,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24541,7 +24541,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24629,7 +24629,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24681,7 +24681,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24722,7 +24722,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -24766,7 +24766,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -25193,7 +25193,7 @@ }, "MetricFilterValues":{ "shape":"MetricFilterValueList", - "documentation":"

The values to use for filtering data. Values for metric-level filters can be either a fixed set of values or a customized list, depending on the use case.

For valid values of metric-level filters INITIATION_METHOD, DISCONNECT_REASON, and ANSWERING_MACHINE_DETECTION_STATUS, see ContactTraceRecord in the Amazon Connect Administrator Guide.

For valid values of the metric-level filter FLOWS_OUTCOME_TYPE, see the description for the Flow outcome metric in the Amazon Connect Administrator Guide.

For valid values of the metric-level filter BOT_CONVERSATION_OUTCOME_TYPE, see the description for the Bot conversations completed in the Amazon Connect Administrator Guide.

For valid values of the metric-level filter BOT_INTENT_OUTCOME_TYPE, see the description for the Bot intents completed metric in the Amazon Connect Administrator Guide.

" + "documentation":"

The values to use for filtering data. Values for metric-level filters can be either a fixed set of values or a customized list, depending on the use case.

For valid values of metric-level filters INITIATION_METHOD, DISCONNECT_REASON, and ANSWERING_MACHINE_DETECTION_STATUS, see ContactTraceRecord in the Connect Customer Administrator Guide.

For valid values of the metric-level filter FLOWS_OUTCOME_TYPE, see the description for the Flow outcome metric in the Connect Customer Administrator Guide.

For valid values of the metric-level filter BOT_CONVERSATION_OUTCOME_TYPE, see the description for the Bot conversations completed in the Connect Customer Administrator Guide.

For valid values of the metric-level filter BOT_INTENT_OUTCOME_TYPE, see the description for the Bot intents completed metric in the Connect Customer Administrator Guide.

" }, "Negate":{ "shape":"Boolean", @@ -25272,7 +25272,7 @@ }, "MetricId":{ "shape":"MetricId", - "documentation":"

Historical metrics or custom metrics can be referenced via this field. This field is a valid Amazon Connect Arn or a UUID

" + "documentation":"

Historical metrics or custom metrics can be referenced via this field. This field is a valid Connect Customer Arn or a UUID

" }, "MetricFilters":{ "shape":"MetricFiltersV2List", @@ -25307,7 +25307,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -25442,7 +25442,7 @@ "ParticipantDetails":{"shape":"ParticipantDetails"}, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "StreamingConfiguration":{"shape":"ChatStreamingConfiguration"} }, @@ -25573,7 +25573,7 @@ "members":{ "UserTags":{ "shape":"UserTagMap", - "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }. Amazon Connect users with the specified tags will be notified.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }. Connect Customer users with the specified tags will be notified.

" }, "UserIds":{ "shape":"UserIdList", @@ -26190,7 +26190,7 @@ "documentation":"

The screen sharing capability that is enabled for the participant. SEND indicates the participant can share their screen.

" } }, - "documentation":"

The configuration for the allowed video and screen sharing capabilities for participants present over the call. For more information, see Set up in-app, web, video calling, and screen sharing capabilities in the Amazon Connect Administrator Guide.

" + "documentation":"

The configuration for the allowed video and screen sharing capabilities for participants present over the call. For more information, see Set up in-app, web, video calling, and screen sharing capabilities in the Connect Customer Administrator Guide.

" }, "ParticipantConfiguration":{ "type":"structure", @@ -26401,7 +26401,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

" }, "ContactFlowId":{ "shape":"ContactFlowId", @@ -26433,7 +26433,7 @@ "members":{ "RehydrationType":{ "shape":"RehydrationType", - "documentation":"

The contactId that is used for rehydration depends on the rehydration type. RehydrationType is required for persistent chat.

  • ENTIRE_PAST_SESSION: Rehydrates a chat from the most recently terminated past chat contact of the specified past ended chat session. To use this type, provide the initialContactId of the past ended chat session in the sourceContactId field. In this type, Amazon Connect determines the most recent chat contact on the specified chat session that has ended, and uses it to start a persistent chat.

  • FROM_SEGMENT: Rehydrates a chat from the past chat contact that is specified in the sourceContactId field.

The actual contactId used for rehydration is provided in the response of this API.

" + "documentation":"

The contactId that is used for rehydration depends on the rehydration type. RehydrationType is required for persistent chat.

  • ENTIRE_PAST_SESSION: Rehydrates a chat from the most recently terminated past chat contact of the specified past ended chat session. To use this type, provide the initialContactId of the past ended chat session in the sourceContactId field. In this type, Connect Customer determines the most recent chat contact on the specified chat session that has ended, and uses it to start a persistent chat.

  • FROM_SEGMENT: Rehydrates a chat from the past chat contact that is specified in the sourceContactId field.

The actual contactId used for rehydration is provided in the response of this API.

" }, "SourceContactId":{ "shape":"ContactId", @@ -26913,11 +26913,11 @@ }, "Purposes":{ "shape":"PredefinedAttributePurposeNameList", - "documentation":"

Values that enable you to categorize your predefined attributes. You can use them in custom UI elements across the Amazon Connect admin website.

" + "documentation":"

Values that enable you to categorize your predefined attributes. You can use them in custom UI elements across the Connect Customer admin website.

" }, "AttributeConfiguration":{ "shape":"PredefinedAttributeConfiguration", - "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Amazon Connect admin website.

" + "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Connect Customer admin website.

" }, "LastModifiedTime":{ "shape":"Timestamp", @@ -26935,14 +26935,14 @@ "members":{ "EnableValueValidationOnAssociation":{ "shape":"EnableValueValidationOnAssociation", - "documentation":"

When this parameter is set to true, Amazon Connect enforces strict validation on the specific values, if the values are predefined in attributes. The contact will store only valid and predefined values for teh predefined attribute key.

" + "documentation":"

When this parameter is set to true, Connect Customer enforces strict validation on the specific values, if the values are predefined in attributes. The contact will store only valid and predefined values for teh predefined attribute key.

" }, "IsReadOnly":{ "shape":"IsReadOnly", - "documentation":"

A boolean flag used to indicate whether a predefined attribute should be displayed in the Amazon Connect admin website.

" + "documentation":"

A boolean flag used to indicate whether a predefined attribute should be displayed in the Connect Customer admin website.

" } }, - "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Amazon Connect admin website.

" + "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Connect Customer admin website.

" }, "PredefinedAttributeName":{ "type":"string", @@ -27383,7 +27383,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -27697,7 +27697,7 @@ "members":{ "QuickConnectType":{ "shape":"QuickConnectType", - "documentation":"

The type of quick connect. In the Amazon Connect admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

" + "documentation":"

The type of quick connect. In the Connect Customer admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

" }, "UserConfig":{ "shape":"UserQuickConnectConfig", @@ -27805,7 +27805,7 @@ }, "QuickConnectType":{ "shape":"QuickConnectType", - "documentation":"

The type of quick connect. In the Amazon Connect admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

" + "documentation":"

The type of quick connect. In the Connect Customer admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

" }, "LastModifiedTime":{ "shape":"Timestamp", @@ -27883,7 +27883,7 @@ }, "ContentType":{ "shape":"ContentType", - "documentation":"

Describes the MIME file type of the attachment. For a list of supported file types, see Feature specifications in the Amazon Connect Administrator Guide.

" + "documentation":"

Describes the MIME file type of the attachment. For a list of supported file types, see Feature specifications in the Connect Customer Administrator Guide.

" }, "AttachmentId":{ "shape":"ArtifactId", @@ -28649,13 +28649,13 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You can provide the InstanceId, or the entire ARN.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You can provide the InstanceId, or the entire ARN.

", "location":"uri", "locationName":"InstanceId" }, "ReplicaRegion":{ "shape":"AwsRegion", - "documentation":"

The Amazon Web Services Region where to replicate the Amazon Connect instance.

" + "documentation":"

The Amazon Web Services Region where to replicate the Connect Customer instance.

" }, "ClientToken":{ "shape":"ClientToken", @@ -28686,18 +28686,18 @@ "members":{ "ReplicationStatusSummaryList":{ "shape":"ReplicationStatusSummaryList", - "documentation":"

A list of replication status summaries. The summaries contain details about the replication of configuration information for Amazon Connect resources, for each Amazon Web Services Region.

" + "documentation":"

A list of replication status summaries. The summaries contain details about the replication of configuration information for Connect Customer resources, for each Amazon Web Services Region.

" }, "SourceRegion":{ "shape":"AwsRegion", - "documentation":"

The Amazon Web Services Region where the source Amazon Connect instance was created. This is the Region where the ReplicateInstance API was called to start the replication process.

" + "documentation":"

The Amazon Web Services Region where the source Connect Customer instance was created. This is the Region where the ReplicateInstance API was called to start the replication process.

" }, "GlobalSignInEndpoint":{ "shape":"GlobalSignInEndpoint", - "documentation":"

The URL that is used to sign-in to your Amazon Connect instance according to your traffic distribution group configuration. For more information about sign-in and traffic distribution groups, see Important things to know in the Create traffic distribution groups topic in the Amazon Connect Administrator Guide.

" + "documentation":"

The URL that is used to sign-in to your Connect Customer instance according to your traffic distribution group configuration. For more information about sign-in and traffic distribution groups, see Important things to know in the Create traffic distribution groups topic in the Connect Customer Administrator Guide.

" } }, - "documentation":"

Details about the status of the replication of a source Amazon Connect instance across Amazon Web Services Regions. Use these details to understand the general status of a given replication. For information about why a replication process may fail, see Why a ReplicateInstance call fails in the Create a replica of your existing Amazon Connect instance topic in the Amazon Connect Administrator Guide.

" + "documentation":"

Details about the status of the replication of a source Connect Customer instance across Amazon Web Services Regions. Use these details to understand the general status of a given replication. For information about why a replication process may fail, see Why a ReplicateInstance call fails in the Create a replica of your existing Connect Customer instance topic in the Connect Customer Administrator Guide.

" }, "ReplicationStatusReason":{ "type":"string", @@ -28717,10 +28717,10 @@ }, "ReplicationStatusReason":{ "shape":"ReplicationStatusReason", - "documentation":"

A description of the replication status. Use this information to resolve any issues that are preventing the successful replication of your Amazon Connect instance to another Region.

" + "documentation":"

A description of the replication status. Use this information to resolve any issues that are preventing the successful replication of your Connect Customer instance to another Region.

" } }, - "documentation":"

Status information about the replication process, where you use the ReplicateInstance API to create a replica of your Amazon Connect instance in another Amazon Web Services Region. For more information, see Set up Amazon Connect Global Resiliency in the Amazon Connect Administrator Guide.

" + "documentation":"

Status information about the replication process, where you use the ReplicateInstance API to create a replica of your Connect Customer instance in another Amazon Web Services Region. For more information, see Set up Connect Customer Global Resiliency in the Connect Customer Administrator Guide.

" }, "ReplicationStatusSummaryList":{ "type":"list", @@ -28851,7 +28851,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -28884,7 +28884,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

" }, "ContactFlowId":{ "shape":"ContactFlowId", @@ -28906,7 +28906,7 @@ "members":{ "Steps":{ "shape":"Steps", - "documentation":"

List of routing steps. When Amazon Connect does not find an available agent meeting the requirements in a step for a given step duration, the routing criteria will move on to the next step sequentially until a join is completed with an agent. When all steps are exhausted, the contact will be offered to any agent in the queue.

" + "documentation":"

List of routing steps. When Connect Customer does not find an available agent meeting the requirements in a step for a given step duration, the routing criteria will move on to the next step sequentially until a join is completed with an agent. When all steps are exhausted, the contact will be offered to any agent in the queue.

" }, "ActivationTimestamp":{ "shape":"timestamp", @@ -28924,7 +28924,7 @@ "members":{ "Steps":{ "shape":"RoutingCriteriaInputSteps", - "documentation":"

When Amazon Connect does not find an available agent meeting the requirements in a step for a given step duration, the routing criteria will move on to the next step sequentially until a join is completed with an agent. When all steps are exhausted, the contact will be offered to any agent in the queue.

" + "documentation":"

When Connect Customer does not find an available agent meeting the requirements in a step for a given step duration, the routing criteria will move on to the next step sequentially until a join is completed with an agent. When all steps are exhausted, the contact will be offered to any agent in the queue.

" } }, "documentation":"

An object to define the RoutingCriteria.

" @@ -28981,7 +28981,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Name":{ "shape":"RoutingProfileName", @@ -29130,7 +29130,7 @@ }, "Delay":{ "shape":"Delay", - "documentation":"

The delay, in seconds, a contact should be in the queue before they are routed to an available agent. For more information, see Queues: priority and delay in the Amazon Connect Administrator Guide.

", + "documentation":"

The delay, in seconds, a contact should be in the queue before they are routed to an available agent. For more information, see Queues: priority and delay in the Connect Customer Administrator Guide.

", "box":true } }, @@ -29171,7 +29171,7 @@ }, "Delay":{ "shape":"Delay", - "documentation":"

The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see Queues: priority and delay in the Amazon Connect Administrator Guide.

" + "documentation":"

The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see Queues: priority and delay in the Connect Customer Administrator Guide.

" }, "Channel":{ "shape":"Channel", @@ -29522,7 +29522,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -29569,11 +29569,11 @@ "members":{ "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

" + "documentation":"

The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

" + "documentation":"

The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

" }, "PhoneNumberCountryCode":{ "shape":"PhoneNumberCountryCode", @@ -29607,7 +29607,7 @@ }, "AvailableNumbersList":{ "shape":"AvailableNumbersList", - "documentation":"

A list of available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group.

" + "documentation":"

A list of available phone numbers that you can claim to your Connect Customer instance or traffic distribution group.

" } } }, @@ -29617,7 +29617,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken", @@ -29661,7 +29661,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -29705,7 +29705,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -29794,7 +29794,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "TimeRange":{ "shape":"SearchContactsTimeRange", @@ -29913,7 +29913,7 @@ }, "ContactAnalysis":{ "shape":"ContactAnalysis", - "documentation":"

Search criteria based on analysis outputs from Amazon Connect Contact Lens.

" + "documentation":"

Search criteria based on analysis outputs from Connect Customer Contact Lens.

" }, "InitiationMethods":{ "shape":"InitiationMethodList", @@ -29933,7 +29933,7 @@ }, "SearchableContactAttributes":{ "shape":"SearchableContactAttributes", - "documentation":"

The search criteria based on user-defined contact attributes that have been configured for contact search. For more information, see Search by custom contact attributes in the Amazon Connect Administrator Guide.

To use SearchableContactAttributes in a search request, the GetContactAttributes action is required to perform an API request. For more information, see https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html#amazonconnect-actions-as-permissionsActions defined by Amazon Connect.

" + "documentation":"

The search criteria based on user-defined contact attributes that have been configured for contact search. For more information, see Search by custom contact attributes in the Connect Customer Administrator Guide.

To use SearchableContactAttributes in a search request, the GetContactAttributes action is required to perform an API request. For more information, see https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html#amazonconnect-actions-as-permissionsActions defined by Connect Customer.

" }, "SearchableSegmentAttributes":{ "shape":"SearchableSegmentAttributes", @@ -29997,7 +29997,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "MaxResults":{ "shape":"MaxResult100", @@ -30040,7 +30040,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken", @@ -30084,7 +30084,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

" + "documentation":"

The identifier of the Connect Customer instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30125,7 +30125,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30213,7 +30213,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30253,7 +30253,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30297,7 +30297,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30341,7 +30341,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30385,7 +30385,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the Amazon Resource Name (ARN) of the instance.

" }, "ResourceTypes":{ "shape":"ResourceTypeList", @@ -30411,7 +30411,7 @@ "members":{ "Tags":{ "shape":"TagsList", - "documentation":"

A list of tags used in the Amazon Connect instance.

" + "documentation":"

A list of tags used in the Connect Customer instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30425,7 +30425,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30469,7 +30469,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30568,7 +30568,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30612,7 +30612,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -30697,7 +30697,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -31032,11 +31032,11 @@ }, "AllowedAccessControlTags":{ "shape":"AllowedAccessControlTags", - "documentation":"

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" + "documentation":"

The list of tags that a security profile uses to restrict access to resources in Connect Customer.

" }, "TagRestrictedResources":{ "shape":"TagRestrictedResourceList", - "documentation":"

The list of resources that a security profile applies tag restrictions to in Amazon Connect.

" + "documentation":"

The list of resources that a security profile applies tag restrictions to in Connect Customer.

" }, "LastModifiedTime":{ "shape":"Timestamp", @@ -31048,11 +31048,11 @@ }, "HierarchyRestrictedResources":{ "shape":"HierarchyRestrictedResourceList", - "documentation":"

The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: User.

" + "documentation":"

The list of resources that a security profile applies hierarchy restrictions to in Connect Customer. Following are acceptable ResourceNames: User.

" }, "AllowedAccessControlHierarchyGroupId":{ "shape":"HierarchyGroupId", - "documentation":"

The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.

" + "documentation":"

The identifier of the hierarchy group that a security profile uses to restrict access to resources in Connect Customer.

" }, "GranularAccessControlConfiguration":{ "shape":"GranularAccessControlConfiguration", @@ -31267,7 +31267,7 @@ }, "DestinationId":{ "shape":"DestinationId", - "documentation":"

Chat system identifier, used in part to uniquely identify chat. This is associated with the Amazon Connect instance and flow to be used to start chats. For Server Migration Service, this is the phone number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number ARN.

" + "documentation":"

Chat system identifier, used in part to uniquely identify chat. This is associated with the Connect Customer instance and flow to be used to start chats. For Server Migration Service, this is the phone number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number ARN.

" }, "Subtype":{ "shape":"Subtype", @@ -31311,11 +31311,11 @@ }, "Subject":{ "shape":"Subject", - "documentation":"

The subject of the email if the delivery method is EMAIL. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + "documentation":"

The subject of the email if the delivery method is EMAIL. Supports variable injection. For more information, see JSONPath reference in the Connect Customer Administrators Guide.

" }, "Content":{ "shape":"Content", - "documentation":"

Notification content. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + "documentation":"

Notification content. Supports variable injection. For more information, see JSONPath reference in the Connect Customer Administrators Guide.

" }, "ContentType":{ "shape":"NotificationContentType", @@ -31344,7 +31344,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -31590,7 +31590,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The unique identifier of the Amazon Connect instance.

", + "documentation":"

The unique identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -31667,15 +31667,15 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for initiating the chat. To see the ContactFlowId in the Connect Customer admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "ParticipantDetails":{ "shape":"ParticipantDetails", @@ -31708,11 +31708,11 @@ }, "RelatedContactId":{ "shape":"ContactId", - "documentation":"

The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.

You cannot provide data for both RelatedContactId and PersistentChat.

" + "documentation":"

The unique identifier for an Connect Customer contact. This identifier is related to the chat starting.

You cannot provide data for both RelatedContactId and PersistentChat.

" }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

The types application/vnd.amazonaws.connect.message.interactive and application/vnd.amazonaws.connect.message.interactive.response must be present in the SupportedMessagingContentTypes field of this API in order to set SegmentAttributes as { \"connect:Subtype\": {\"valueString\" : \"connect:Guide\" }}.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

The types application/vnd.amazonaws.connect.message.interactive and application/vnd.amazonaws.connect.message.interactive.response must be present in the SupportedMessagingContentTypes field of this API in order to set SegmentAttributes as { \"connect:Subtype\": {\"valueString\" : \"connect:Guide\" }}.

" }, "CustomerId":{ "shape":"CustomerIdNonEmpty", @@ -31729,7 +31729,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of this contact within the Amazon Connect instance.

" + "documentation":"

The identifier of this contact within the Connect Customer instance.

" }, "ParticipantId":{ "shape":"ParticipantId", @@ -31755,13 +31755,13 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "EvaluationFormId":{ "shape":"ResourceId", @@ -31804,7 +31804,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -31835,7 +31835,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -31866,7 +31866,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -31904,7 +31904,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "FromEmailAddress":{ "shape":"EmailAddressInfo", @@ -31912,7 +31912,7 @@ }, "DestinationEmailAddress":{ "shape":"EmailAddress", - "documentation":"

The email address associated with the Amazon Connect instance.

" + "documentation":"

The email address associated with the Connect Customer instance.

" }, "Description":{ "shape":"Description", @@ -31940,7 +31940,7 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the flow for initiating the emails. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for initiating the emails. To see the ContactFlowId in the Connect Customer admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "RelatedContactId":{ "shape":"ContactId", @@ -31948,11 +31948,11 @@ }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

To set contact expiry, a ValueMap must be specified containing the integer number of minutes the contact will be active for before expiring, with SegmentAttributes like { \"connect:ContactExpiry\": {\"ValueMap\" : { \"ExpiryDuration\": { \"ValueInteger\":135}}}}.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

To set contact expiry, a ValueMap must be specified containing the integer number of minutes the contact will be active for before expiring, with SegmentAttributes like { \"connect:ContactExpiry\": {\"ValueMap\" : { \"ExpiryDuration\": { \"ValueInteger\":135}}}}.

" }, "ClientToken":{ "shape":"ClientToken", @@ -31966,7 +31966,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of this contact within the Amazon Connect instance.

" + "documentation":"

The identifier of this contact within the Connect Customer instance.

" } } }, @@ -31984,19 +31984,19 @@ "DestinationEndpoint":{"shape":"Endpoint"}, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

  • Attribute keys can include only alphanumeric, -, and _.

  • This field can be used to show channel subtype, such as connect:SMS and connect:WhatsApp.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows.

  • Attribute keys can include only alphanumeric, -, and _.

  • This field can be used to show channel subtype, such as connect:SMS and connect:WhatsApp.

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes, and can be accessed in flows just like any other contact attributes.

" }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the flow for the call. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

  • arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/123ec456-a007-89c0-1234-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for the call. To see the ContactFlowId in the Connect Customer console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

  • arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/123ec456-a007-89c0-1234-xxxxxxxxxxxx

" }, "ChatDurationInMinutes":{ "shape":"ChatDurationInMinutes", @@ -32007,7 +32007,7 @@ "InitialTemplatedSystemMessage":{"shape":"TemplatedMessageConfig"}, "RelatedContactId":{ "shape":"ContactId", - "documentation":"

The unique identifier for an Amazon Connect contact. This identifier is related to the contact starting.

" + "documentation":"

The unique identifier for an Connect Customer contact. This identifier is related to the contact starting.

" }, "SupportedMessagingContentTypes":{ "shape":"SupportedMessagingContentTypes", @@ -32025,7 +32025,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of this contact within the Amazon Connect instance.

" + "documentation":"

The identifier of this contact within the Connect Customer instance.

" } } }, @@ -32040,15 +32040,15 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "FromEmailAddress":{ "shape":"EmailAddressInfo", - "documentation":"

The email address associated with the Amazon Connect instance.

" + "documentation":"

The email address associated with the Connect Customer instance.

" }, "DestinationEmailAddress":{ "shape":"EmailAddressInfo", @@ -32074,7 +32074,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" } } }, @@ -32092,7 +32092,7 @@ }, "Description":{ "shape":"Description", - "documentation":"

A description of the voice contact that appears in the agent's snapshot in the CCP logs. For more information about CCP logs, see Download and review CCP logs in the Amazon Connect Administrator Guide.

" + "documentation":"

A description of the voice contact that appears in the agent's snapshot in the CCP logs. For more information about CCP logs, see Download and review CCP logs in the Connect Customer Administrator Guide.

" }, "References":{ "shape":"ContactReferences", @@ -32108,11 +32108,11 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the flow for the outbound call. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for the outbound call. To see the ContactFlowId in the Connect Customer admin website, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ClientToken":{ "shape":"ClientToken", @@ -32121,7 +32121,7 @@ }, "SourcePhoneNumber":{ "shape":"PhoneNumber", - "documentation":"

The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.

" + "documentation":"

The phone number associated with the Connect Customer instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.

" }, "QueueId":{ "shape":"QueueId", @@ -32129,7 +32129,7 @@ }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "AnswerMachineDetectionConfig":{ "shape":"AnswerMachineDetectionConfig", @@ -32141,7 +32141,7 @@ }, "TrafficType":{ "shape":"TrafficType", - "documentation":"

Denotes the class of traffic. Calls with different traffic types are handled differently by Amazon Connect. The default value is GENERAL. Use CAMPAIGN if EnableAnswerMachineDetection is set to true. For all other cases, use GENERAL.

" + "documentation":"

Denotes the class of traffic. Calls with different traffic types are handled differently by Connect Customer. The default value is GENERAL. Use CAMPAIGN if EnableAnswerMachineDetection is set to true. For all other cases, use GENERAL.

" }, "OutboundStrategy":{ "shape":"OutboundStrategy", @@ -32158,7 +32158,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of this contact within the Amazon Connect instance.

" + "documentation":"

The identifier of this contact within the Connect Customer instance.

" } } }, @@ -32176,11 +32176,11 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" } } }, @@ -32197,7 +32197,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "PreviousContactId":{ "shape":"ContactId", @@ -32205,11 +32205,11 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the flow for initiating the tasks. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for initiating the tasks. To see the ContactFlowId in the Connect Customer admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "Name":{ "shape":"Name", @@ -32234,7 +32234,7 @@ }, "TaskTemplateId":{ "shape":"TaskTemplateId", - "documentation":"

A unique identifier for the task template. For more information about task templates, see Create task templates in the Amazon Connect Administrator Guide.

" + "documentation":"

A unique identifier for the task template. For more information about task templates, see Create task templates in the Connect Customer Administrator Guide.

" }, "QuickConnectId":{ "shape":"QuickConnectId", @@ -32246,7 +32246,7 @@ }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to set Contact Expiry as a duration in minutes and set a UserId for the User who created a task.

To set contact expiry, a ValueMap must be specified containing the integer number of minutes the contact will be active for before expiring, with SegmentAttributes like { \"connect:ContactExpiry\": {\"ValueMap\" : { \"ExpiryDuration\": { \"ValueInteger\": 135}}}}.

To set the created by user, a valid AgentResourceId must be supplied, with SegmentAttributes like { \"connect:CreatedByUser\" { \"ValueString\": \"arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/agent/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"}}}.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to set Contact Expiry as a duration in minutes and set a UserId for the User who created a task.

To set contact expiry, a ValueMap must be specified containing the integer number of minutes the contact will be active for before expiring, with SegmentAttributes like { \"connect:ContactExpiry\": {\"ValueMap\" : { \"ExpiryDuration\": { \"ValueInteger\": 135}}}}.

To set the created by user, a valid AgentResourceId must be supplied, with SegmentAttributes like { \"connect:CreatedByUser\" { \"ValueString\": \"arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/agent/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"}}}.

" }, "Attachments":{ "shape":"TaskAttachments", @@ -32259,7 +32259,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of this contact within the Amazon Connect instance.

" + "documentation":"

The identifier of this contact within the Connect Customer instance.

" } } }, @@ -32313,7 +32313,7 @@ "members":{ "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, -, and _ characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Connect Customer attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, -, and _ characters.

" }, "ClientToken":{ "shape":"ClientToken", @@ -32322,11 +32322,11 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the flow for the call. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for the call. To see the ContactFlowId in the Connect Customer admin website, on the navigation menu go to Routing, Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "AllowedCapabilities":{ "shape":"AllowedCapabilities", @@ -32335,7 +32335,7 @@ "ParticipantDetails":{"shape":"ParticipantDetails"}, "RelatedContactId":{ "shape":"ContactId", - "documentation":"

The unique identifier for an Amazon Connect contact. This identifier is related to the contact starting.

" + "documentation":"

The unique identifier for an Connect Customer contact. This identifier is related to the contact starting.

" }, "References":{ "shape":"ContactReferences", @@ -32356,7 +32356,7 @@ }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "ParticipantId":{ "shape":"ParticipantId", @@ -32433,7 +32433,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -32455,7 +32455,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -32488,11 +32488,11 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "DisconnectReason":{ "shape":"DisconnectReason", - "documentation":"

The reason a contact can be disconnected. Only Amazon Connect outbound campaigns can provide this field. For a list and description of all the possible disconnect reasons by channel (including outbound campaign voice contacts) see DisconnectReason under ContactTraceRecord in the Amazon Connect Administrator Guide.

" + "documentation":"

The reason a contact can be disconnected. Only Connect Customer outbound campaigns can provide this field. For a list and description of all the possible disconnect reasons by channel (including outbound campaign voice contacts) see DisconnectReason under ContactTraceRecord in the Connect Customer Administrator Guide.

" } } }, @@ -32510,7 +32510,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -32643,7 +32643,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -32745,7 +32745,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -32793,11 +32793,11 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Tags":{ "shape":"ContactTagMap", @@ -32919,7 +32919,7 @@ }, "TargetSlaMinutes":{ "type":"long", - "max":129600, + "max":1051200, "min":1 }, "TaskActionDefinition":{ @@ -32931,11 +32931,11 @@ "members":{ "Name":{ "shape":"TaskNameExpression", - "documentation":"

The name. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + "documentation":"

The name. Supports variable injection. For more information, see JSONPath reference in the Connect Customer Administrators Guide.

" }, "Description":{ "shape":"TaskDescriptionExpression", - "documentation":"

The description. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + "documentation":"

The description. Supports variable injection. For more information, see JSONPath reference in the Connect Customer Administrators Guide.

" }, "ContactFlowId":{ "shape":"ContactFlowId", @@ -33687,7 +33687,7 @@ "documentation":"

The match type combining search criteria using multiple transcript criteria.

" } }, - "documentation":"

A structure that defines search criteria and matching logic to search for contacts by matching text with transcripts analyzed by Amazon Connect Contact Lens.

" + "documentation":"

A structure that defines search criteria and matching logic to search for contacts by matching text with transcripts analyzed by Connect Customer Contact Lens.

" }, "TranscriptCriteria":{ "type":"structure", @@ -33728,11 +33728,11 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "QueueId":{ "shape":"QueueId", @@ -33758,7 +33758,7 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + "documentation":"

The identifier of the contact in this instance of Connect Customer.

" }, "ContactArn":{ "shape":"ARN", @@ -33799,13 +33799,13 @@ "members":{ "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"uri", "locationName":"ContactId" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -33856,7 +33856,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -33898,7 +33898,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -33927,7 +33927,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

" + "documentation":"

The identifier of the Connect Customer instance.

" }, "AttachmentScope":{ "shape":"AttachmentScope", @@ -33962,7 +33962,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -33976,15 +33976,15 @@ }, "AllowedIps":{ "shape":"IpCidrList", - "documentation":"

A list of IP address range strings that are allowed to access the instance. For more information on how to configure IP addresses, seeConfigure session timeouts in the Amazon Connect Administrator Guide.

" + "documentation":"

A list of IP address range strings that are allowed to access the instance. For more information on how to configure IP addresses, seeConfigure session timeouts in the Connect Customer Administrator Guide.

" }, "BlockedIps":{ "shape":"IpCidrList", - "documentation":"

A list of IP address range strings that are blocked from accessing the instance. For more information on how to configure IP addresses, For more information on how to configure IP addresses, see Configure IP-based access control in the Amazon Connect Administrator Guide.

" + "documentation":"

A list of IP address range strings that are blocked from accessing the instance. For more information on how to configure IP addresses, For more information on how to configure IP addresses, see Configure IP-based access control in the Connect Customer Administrator Guide.

" }, "PeriodicSessionDuration":{ "shape":"AccessTokenDuration", - "documentation":"

The short lived session duration configuration for users logged in to Amazon Connect, in minutes. This value determines the maximum possible time before an agent is authenticated. For more information, For more information on how to configure IP addresses, see Configure session timeouts in the Amazon Connect Administrator Guide.

", + "documentation":"

The short lived session duration configuration for users logged in to Connect Customer, in minutes. This value determines the maximum possible time before an agent is authenticated. For more information, For more information on how to configure IP addresses, see Configure session timeouts in the Connect Customer Administrator Guide.

", "box":true, "deprecated":true, "deprecatedMessage":"PeriodicSessionDuration is deprecated. Use SessionInactivityDuration instead.", @@ -34027,11 +34027,11 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

The Amazon Connect attributes. These attributes can be accessed in flows just like any other contact attributes.

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

In the Set contact attributes block, when the attributes for a contact exceed 32 KB, the contact is routed down the Error branch of the flow. As a mitigation, consider the following options:

  • Remove unnecessary attributes by setting their values to empty.

  • If the attributes are only used in one flow and don't need to be referred to outside of that flow (for example, by a Lambda or another flow), then use flow attributes. This way you aren't needlessly persisting the 32 KB of information from one flow to another. For more information, see Flow block: Set contact attributes in the Amazon Connect Administrator Guide.

" + "documentation":"

The Connect Customer attributes. These attributes can be accessed in flows just like any other contact attributes.

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

In the Set contact attributes block, when the attributes for a contact exceed 32 KB, the contact is routed down the Error branch of the flow. As a mitigation, consider the following options:

  • Remove unnecessary attributes by setting their values to empty.

  • If the attributes are only used in one flow and don't need to be referred to outside of that flow (for example, by a Lambda or another flow), then use flow attributes. This way you aren't needlessly persisting the 32 KB of information from one flow to another. For more information, see Flow block: Set contact attributes in the Connect Customer Administrator Guide.

" } } }, @@ -34048,7 +34048,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34099,7 +34099,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34111,7 +34111,7 @@ }, "Content":{ "shape":"ContactFlowContent", - "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Amazon Connect Flow language.

Length Constraints: Minimum length of 1. Maximum length of 256000.

" + "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Connect Customer Flow language.

Length Constraints: Minimum length of 1. Maximum length of 256000.

" } } }, @@ -34128,7 +34128,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34166,7 +34166,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34209,7 +34209,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34221,7 +34221,7 @@ }, "Content":{ "shape":"ContactFlowModuleContent", - "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Amazon Connect Flow language.

" + "documentation":"

The JSON string that represents the content of the flow. For an example, see Example flow in Connect Customer Flow language.

" }, "Settings":{ "shape":"FlowModuleSettings", @@ -34242,7 +34242,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34279,7 +34279,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34312,7 +34312,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34336,23 +34336,23 @@ }, "SegmentAttributes":{ "shape":"SegmentAttributes", - "documentation":"

A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.

" + "documentation":"

A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Connect Customer attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.

" }, "QueueInfo":{ "shape":"QueueInfoInput", - "documentation":"

Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see Amazon Connect Contact Lens integration in the Amazon Connect Administrator Guide.

" + "documentation":"

Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see Connect Customer Contact Lens integration in the Connect Customer Administrator Guide.

" }, "UserInfo":{ "shape":"UserInfo", - "documentation":"

Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see Amazon Connect Contact Lens integration in the Amazon Connect Administrator Guide.

" + "documentation":"

Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see Connect Customer Contact Lens integration in the Connect Customer Administrator Guide.

" }, "CustomerEndpoint":{ "shape":"Endpoint", - "documentation":"

The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see Amazon Connect Contact Lens integration in the Amazon Connect Administrator Guide.

" + "documentation":"

The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see Connect Customer Contact Lens integration in the Connect Customer Administrator Guide.

" }, "SystemEndpoint":{ "shape":"Endpoint", - "documentation":"

External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see Amazon Connect Contact Lens integration in the Amazon Connect Administrator Guide.

" + "documentation":"

External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see Connect Customer Contact Lens integration in the Connect Customer Administrator Guide.

" } } }, @@ -34369,13 +34369,13 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"uri", "locationName":"ContactId" }, @@ -34407,7 +34407,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -34595,7 +34595,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34644,7 +34644,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34743,7 +34743,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance.

", + "documentation":"

The identifier of the Connect Customer instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34798,7 +34798,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34836,7 +34836,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34868,7 +34868,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -34936,7 +34936,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Code":{ "shape":"AuthorizationCode", @@ -34977,19 +34977,19 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "ContactId":{ "shape":"ContactId", - "documentation":"

The identifier of the contact in this instance of Amazon Connect.

", + "documentation":"

The identifier of the contact in this instance of Connect Customer.

", "location":"uri", "locationName":"ContactId" }, "ChannelConfiguration":{ "shape":"UpdateParticipantRoleConfigChannelInfo", - "documentation":"

The Amazon Connect channel you want to configure.

" + "documentation":"

The Connect Customer channel you want to configure.

" } } }, @@ -35030,11 +35030,11 @@ }, "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

" + "documentation":"

The Amazon Resource Name (ARN) for Connect Customer instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

" }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

" + "documentation":"

The identifier of the Connect Customer instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

" }, "ClientToken":{ "shape":"ClientToken", @@ -35065,7 +35065,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35081,11 +35081,11 @@ }, "Purposes":{ "shape":"PredefinedAttributePurposeNameList", - "documentation":"

Values that enable you to categorize your predefined attributes. You can use them in custom UI elements across the Amazon Connect admin website.

" + "documentation":"

Values that enable you to categorize your predefined attributes. You can use them in custom UI elements across the Connect Customer admin website.

" }, "AttributeConfiguration":{ "shape":"InputPredefinedAttributeConfiguration", - "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Amazon Connect admin website.

" + "documentation":"

Custom metadata that is associated to predefined attributes to control behavior in upstream services, such as controlling how a predefined attribute should be displayed in the Connect Customer admin website.

" } } }, @@ -35098,7 +35098,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35145,7 +35145,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35170,7 +35170,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35196,7 +35196,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35226,7 +35226,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35252,7 +35252,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35278,7 +35278,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35304,7 +35304,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35334,7 +35334,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35364,7 +35364,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35390,7 +35390,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35416,7 +35416,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35441,7 +35441,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35471,7 +35471,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35506,7 +35506,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35551,17 +35551,17 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, "AllowedAccessControlTags":{ "shape":"AllowedAccessControlTags", - "documentation":"

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" + "documentation":"

The list of tags that a security profile uses to restrict access to resources in Connect Customer.

" }, "TagRestrictedResources":{ "shape":"TagRestrictedResourceList", - "documentation":"

The list of resources that a security profile applies tag restrictions to in Amazon Connect.

" + "documentation":"

The list of resources that a security profile applies tag restrictions to in Connect Customer.

" }, "Applications":{ "shape":"Applications", @@ -35569,11 +35569,11 @@ }, "HierarchyRestrictedResources":{ "shape":"HierarchyRestrictedResourceList", - "documentation":"

The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: User.

" + "documentation":"

The list of resources that a security profile applies hierarchy restrictions to in Connect Customer. Following are acceptable ResourceNames: User.

" }, "AllowedAccessControlHierarchyGroupId":{ "shape":"HierarchyGroupId", - "documentation":"

The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.

" + "documentation":"

The identifier of the hierarchy group that a security profile uses to restrict access to resources in Connect Customer.

" }, "AllowedFlowModules":{ "shape":"AllowedFlowModules", @@ -35600,7 +35600,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -35643,7 +35643,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Id":{ "shape":"TaskTemplateId", @@ -35819,7 +35819,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -35845,7 +35845,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -35870,7 +35870,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -35889,7 +35889,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -35915,7 +35915,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -35991,7 +35991,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -36007,7 +36007,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -36043,7 +36043,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -36069,7 +36069,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -36086,7 +36086,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -36124,7 +36124,7 @@ "members":{ "InstanceId":{ "shape":"ViewsInstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Connect Customer instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -36446,7 +36446,7 @@ "documentation":"

The Amazon Web Services Region where this resource was last modified.

" } }, - "documentation":"

Contains information about a user account for an Amazon Connect instance.

" + "documentation":"

Contains information about a user account for an Connect Customer instance.

" }, "UserData":{ "type":"structure", @@ -36572,11 +36572,11 @@ "members":{ "FirstName":{ "shape":"AgentFirstName", - "documentation":"

The first name. This is required if you are using Amazon Connect or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.

" + "documentation":"

The first name. This is required if you are using Connect Customer or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.

" }, "LastName":{ "shape":"AgentLastName", - "documentation":"

The last name. This is required if you are using Amazon Connect or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.

" + "documentation":"

The last name. This is required if you are using Connect Customer or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.

" }, "Email":{ "shape":"Email", @@ -36591,7 +36591,7 @@ "documentation":"

The user's mobile number.

" } }, - "documentation":"

Contains information about the identity of a user.

For Amazon Connect instances that are created with the EXISTING_DIRECTORY identity management type, FirstName, LastName, and Email cannot be updated from within Amazon Connect because they are managed by the directory.

The FirstName and LastName length constraints below apply only to instances using SAML for identity management. If you are using Amazon Connect for identity management, the length constraints are 1-255 for FirstName, and 1-256 for LastName.

" + "documentation":"

Contains information about the identity of a user.

For Connect Customer instances that are created with the EXISTING_DIRECTORY identity management type, FirstName, LastName, and Email cannot be updated from within Connect Customer because they are managed by the directory.

The FirstName and LastName length constraints below apply only to instances using SAML for identity management. If you are using Connect Customer for identity management, the length constraints are 1-255 for FirstName, and 1-256 for LastName.

" }, "UserIdentityInfoLite":{ "type":"structure", @@ -36622,7 +36622,7 @@ "members":{ "Message":{"shape":"Message"} }, - "documentation":"

No user with the specified credentials was found in the Amazon Connect instance.

", + "documentation":"

No user with the specified credentials was found in the Connect Customer instance.

", "error":{"httpStatusCode":404}, "exception":true }, @@ -36710,11 +36710,11 @@ "members":{ "AttributeName":{ "shape":"PredefinedAttributeName", - "documentation":"

The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.

" + "documentation":"

The name of user's proficiency. You must use name of predefined attribute present in the Connect Customer instance.

" }, "AttributeValue":{ "shape":"PredefinedAttributeStringValue", - "documentation":"

The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.

" + "documentation":"

The value of user's proficiency. You must use value of predefined attribute present in the Connect Customer instance.

" }, "Level":{ "shape":"ProficiencyLevel", @@ -36902,7 +36902,7 @@ }, "Username":{ "shape":"AgentUsername", - "documentation":"

The Amazon Connect user name of the user account.

" + "documentation":"

The Connect Customer user name of the user account.

" }, "LastModifiedTime":{ "shape":"Timestamp", @@ -37556,7 +37556,7 @@ "documentation":"

The array of AI agents involved in the contact.

" } }, - "documentation":"

Information about Amazon Connect Wisdom.

" + "documentation":"

Information about Connect Customer Wisdom.

" }, "Workspace":{ "type":"structure", @@ -37941,5 +37941,5 @@ }, "timestamp":{"type":"timestamp"} }, - "documentation":"

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

You can use an endpoint to connect programmatically to an Amazon Web Services service. For a list of Amazon Connect endpoints, see Amazon Connect Endpoints.

" + "documentation":"

Connect Customer is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Connect Customer provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

There are limits to the number of Connect Customer resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Connect Customer Service Quotas in the Connect Customer Administrator Guide.

You can use an endpoint to connect programmatically to an Amazon Web Services service. For a list of Connect Customer endpoints, see Connect Customer Endpoints.

" } diff --git a/awscli/botocore/data/ec2/2016-11-15/paginators-1.json b/awscli/botocore/data/ec2/2016-11-15/paginators-1.json index 852af03b2335..341cfc7a3dd5 100644 --- a/awscli/botocore/data/ec2/2016-11-15/paginators-1.json +++ b/awscli/botocore/data/ec2/2016-11-15/paginators-1.json @@ -1022,6 +1022,12 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "CapacityManagerTagKeys" + }, + "DescribeIpamPoolAllocations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "IpamPoolAllocations" } } } diff --git a/awscli/botocore/data/ec2/2016-11-15/service-2.json b/awscli/botocore/data/ec2/2016-11-15/service-2.json index d02d4f72d7e4..4a367eea7690 100644 --- a/awscli/botocore/data/ec2/2016-11-15/service-2.json +++ b/awscli/botocore/data/ec2/2016-11-15/service-2.json @@ -3389,6 +3389,16 @@ "output":{"shape":"DescribeIpamPoliciesResult"}, "documentation":"

Describes one or more IPAM policies.

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

" }, + "DescribeIpamPoolAllocations":{ + "name":"DescribeIpamPoolAllocations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeIpamPoolAllocationsRequest"}, + "output":{"shape":"DescribeIpamPoolAllocationsResult"}, + "documentation":"

Describes IPAM pool allocations. You can describe all allocations owned by you across all pools, or you can describe specific allocations by ID.

If you specify IpamPoolAllocationIds, the results include only the specified allocations. If you do not specify IpamPoolAllocationIds, the results include all allocations owned by you. You can use Filters to narrow the results.

This action returns only allocations directly owned by you. To view all allocations in a pool you own or that has been shared with you, including allocations owned by other accounts, use GetIpamPoolAllocations.

" + }, "DescribeIpamPools":{ "name":"DescribeIpamPools", "http":{ @@ -6307,6 +6317,16 @@ "output":{"shape":"ModifyIpamPoolResult"}, "documentation":"

Modify the configurations of an IPAM pool.

For more information, see Modify a pool in the Amazon VPC IPAM User Guide.

" }, + "ModifyIpamPoolAllocation":{ + "name":"ModifyIpamPoolAllocation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyIpamPoolAllocationRequest"}, + "output":{"shape":"ModifyIpamPoolAllocationResult"}, + "documentation":"

Modifies the description of an IPAM pool allocation. For more information, see Modify an IPAM pool allocation in the Amazon VPC IPAM User Guide.

" + }, "ModifyIpamPrefixListResolver":{ "name":"ModifyIpamPrefixListResolver", "http":{ @@ -8773,6 +8793,11 @@ "shape":"IpamPoolAllocationDisallowedCidrs", "documentation":"

Exclude a particular CIDR range from being returned by the pool. Disallowed CIDRs are only allowed if using netmask length for allocation.

", "locationName":"DisallowedCidr" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

If you specify tags, the request is authorized against the allocation resource in addition to the pool resource.

", + "locationName":"TagSpecification" } } }, @@ -27238,6 +27263,53 @@ } } }, + "DescribeIpamPoolAllocationsMaxResults":{ + "type":"integer", + "max":100000, + "min":1000 + }, + "DescribeIpamPoolAllocationsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

A check for whether you have the required permissions for the action without actually making the request and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "IpamPoolAllocationIds":{ + "shape":"ValueStringList", + "documentation":"

The IDs of the IPAM pool allocations you want to describe.

", + "locationName":"IpamPoolAllocationId" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"DescribeIpamPoolAllocationsMaxResults", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "DescribeIpamPoolAllocationsResult":{ + "type":"structure", + "members":{ + "IpamPoolAllocations":{ + "shape":"IpamPoolAllocationSet", + "documentation":"

Information about the IPAM pool allocations.

", + "locationName":"ipamPoolAllocationSet" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, "DescribeIpamPoolsRequest":{ "type":"structure", "members":{ @@ -27252,7 +27324,7 @@ }, "MaxResults":{ "shape":"IpamMaxResults", - "documentation":"

The maximum number of results to return in the request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", @@ -27466,7 +27538,7 @@ }, "MaxResults":{ "shape":"IpamMaxResults", - "documentation":"

The maximum number of results to return in the request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", @@ -27508,7 +27580,7 @@ }, "MaxResults":{ "shape":"IpamMaxResults", - "documentation":"

The maximum number of results to return in the request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", @@ -39397,7 +39469,7 @@ }, "MaxResults":{ "shape":"IpamMaxResults", - "documentation":"

The maximum number of results to return in the request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", @@ -39568,7 +39640,7 @@ }, "MaxResults":{ "shape":"IpamMaxResults", - "documentation":"

The maximum number of results to return in the request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", @@ -48590,6 +48662,11 @@ "shape":"String", "documentation":"

The owner of the resource.

", "locationName":"resourceOwner" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags for the IPAM pool allocation.

", + "locationName":"tagSet" } }, "documentation":"

In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool or to a resource.

" @@ -54442,6 +54519,34 @@ } } }, + "ModifyIpamPoolAllocationRequest":{ + "type":"structure", + "required":["IpamPoolAllocationId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

A check for whether you have the required permissions for the action without actually making the request and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "IpamPoolAllocationId":{ + "shape":"IpamPoolAllocationId", + "documentation":"

The ID of the IPAM pool allocation you want to modify.

" + }, + "Description":{ + "shape":"String", + "documentation":"

The new description for the IPAM pool allocation. If you submit a null value, the description is removed from the allocation.

" + } + } + }, + "ModifyIpamPoolAllocationResult":{ + "type":"structure", + "members":{ + "IpamPoolAllocation":{ + "shape":"IpamPoolAllocation", + "documentation":"

The modified IPAM pool allocation.

", + "locationName":"ipamPoolAllocation" + } + } + }, "ModifyIpamPoolRequest":{ "type":"structure", "required":["IpamPoolId"], @@ -63875,7 +63980,8 @@ "secondary-network", "secondary-subnet", "capacity-manager-data-export", - "vpn-concentrator" + "vpn-concentrator", + "ipam-pool-allocation" ] }, "ResourceTypeOption":{ @@ -75149,6 +75255,10 @@ "shape":"DateTime", "documentation":"

The modification completion or failure time.

", "locationName":"endTime" + }, + "Operator":{ + "shape":"OperatorResponse", + "locationName":"operator" } }, "documentation":"

Describes the modification status of an EBS volume.

" diff --git a/awscli/botocore/data/ecs/2014-11-13/service-2.json b/awscli/botocore/data/ecs/2014-11-13/service-2.json index 70e995b28250..56f5f3053e16 100644 --- a/awscli/botocore/data/ecs/2014-11-13/service-2.json +++ b/awscli/botocore/data/ecs/2014-11-13/service-2.json @@ -16,6 +16,24 @@ "uid":"ecs-2014-11-13" }, "operations":{ + "ContinueServiceDeployment":{ + "name":"ContinueServiceDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ContinueServiceDeploymentRequest"}, + "output":{"shape":"ContinueServiceDeploymentResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceDeploymentNotFoundException"}, + {"shape":"UnsupportedFeatureException"} + ], + "documentation":"

Continues or rolls back an Amazon ECS service deployment that is paused at a lifecycle hook.

When a service deployment reaches a lifecycle stage that has a PAUSE hook configured, the deployment pauses and waits for an explicit action. Use this API to either continue the deployment to the next stage or roll back to the previous service revision.

To find the hookId of the paused hook, call DescribeServiceDeployments and inspect the lifecycleHookDetails field.

" + }, "CreateCapacityProvider":{ "name":"CreateCapacityProvider", "http":{ @@ -2765,6 +2783,36 @@ "type":"list", "member":{"shape":"Container"} }, + "ContinueServiceDeploymentRequest":{ + "type":"structure", + "required":[ + "serviceDeploymentArn", + "hookId" + ], + "members":{ + "serviceDeploymentArn":{ + "shape":"String", + "documentation":"

The ARN of the service deployment to continue or roll back.

" + }, + "hookId":{ + "shape":"String", + "documentation":"

The ID of the paused lifecycle hook to act on. You can find the hookId by calling DescribeServiceDeployments and inspecting the lifecycleHookDetails field of the service deployment.

" + }, + "action":{ + "shape":"DeploymentLifecycleHookAction", + "documentation":"

The action to take on the paused lifecycle hook. Valid values are:

  • CONTINUE - Proceeds the deployment to the next lifecycle stage.

  • ROLLBACK - Rolls back the deployment to the previous service revision.

If no value is specified, the default action is CONTINUE.

" + } + } + }, + "ContinueServiceDeploymentResponse":{ + "type":"structure", + "members":{ + "serviceDeploymentArn":{ + "shape":"String", + "documentation":"

The ARN of the service deployment that was continued or rolled back.

" + } + } + }, "CpuManufacturer":{ "type":"string", "enum":[ @@ -3140,7 +3188,7 @@ "members":{ "service":{ "shape":"Service", - "documentation":"

The full description of your service following the create call.

A service will return either a capacityProviderStrategy or launchType parameter, but not both, depending where one was specified when it was created.

If a service is using the ECS deployment controller, the deploymentController and taskSets parameters will not be returned.

if the service uses the CODE_DEPLOY deployment controller, the deploymentController, taskSets and deployments parameters will be returned, however the deployments parameter will be an empty list.

" + "documentation":"

The full description of your service following the create call.

A service will return either a capacityProviderStrategy or launchType parameter, but not both, depending where one was specified when it was created.

If a service is using the ECS deployment controller, the deploymentController and taskSets parameters will not be returned.

if the service uses the CODE_DEPLOY deployment controller, the deploymentController, taskSets and deployments parameters will be returned, however the deployments parameter will be an empty list.

The response includes a lifecycleHookDetails field, which is an empty array when the service is created or updated. The values are populated when a lifecycle hook executes and are available as part of the service deployment details (DescribeServiceDeployments).

" } }, "documentation":"" @@ -4452,6 +4500,10 @@ "DeploymentLifecycleHook":{ "type":"structure", "members":{ + "targetType":{ + "shape":"DeploymentLifecycleHookTargetType", + "documentation":"

The type of action the lifecycle hook performs. Valid values are:

  • AWS_LAMBDA - Invokes a Lambda function at the specified lifecycle stage. This is the default value.

  • PAUSE - Pauses the deployment at the specified lifecycle stage until you call ContinueServiceDeployment to continue or roll back.

This field is optional. If not specified, the default value is AWS_LAMBDA.

" + }, "hookTargetArn":{ "shape":"String", "documentation":"

The Amazon Resource Name (ARN) of the hook target. Currently, only Lambda function ARNs are supported.

You must provide this parameter when configuring a deployment lifecycle hook.

" @@ -4467,10 +4519,61 @@ "hookDetails":{ "shape":"HookDetails", "documentation":"

Use this field to specify custom parameters that Amazon ECS will pass to your hook target invocations (such as a Lambda function).

" + }, + "timeoutConfiguration":{ + "shape":"DeploymentLifecycleHookTimeoutConfiguration", + "documentation":"

The timeout configuration for the lifecycle hook. This specifies how long Amazon ECS waits before taking the timeout action if the hook is not resolved.

" } }, "documentation":"

A deployment lifecycle hook runs custom logic at specific stages of the deployment process. Currently, you can use Lambda functions as hook targets.

For more information, see Lifecycle hooks for Amazon ECS service deployments in the Amazon Elastic Container Service Developer Guide.

" }, + "DeploymentLifecycleHookAction":{ + "type":"string", + "enum":[ + "ROLLBACK", + "CONTINUE" + ] + }, + "DeploymentLifecycleHookDetail":{ + "type":"structure", + "members":{ + "hookId":{ + "shape":"String", + "documentation":"

The ID of the lifecycle hook. Use this value when calling ContinueServiceDeployment to continue or roll back a paused deployment.

" + }, + "targetType":{ + "shape":"DeploymentLifecycleHookTargetType", + "documentation":"

The type of action the lifecycle hook performs, such as AWS_LAMBDA or PAUSE.

" + }, + "targetArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the hook target. For AWS_LAMBDA hooks, this is the Lambda function ARN. For PAUSE hooks, this field is not set.

" + }, + "status":{ + "shape":"DeploymentLifecycleHookStatus", + "documentation":"

The status of the lifecycle hook. Valid values depend on the hook type:

  • For AWS_LAMBDA hooks: IN_PROGRESS, SUCCEEDED, FAILED, and TIMED_OUT.

  • For PAUSE hooks: AWAITING_ACTION, SUCCEEDED, FAILED, and TIMED_OUT.

" + }, + "expiresAt":{ + "shape":"Timestamp", + "documentation":"

The time when the lifecycle hook times out. If the hook has not been completed by this time, Amazon ECS takes the timeout action.

" + }, + "timeoutAction":{ + "shape":"DeploymentLifecycleHookAction", + "documentation":"

The action Amazon ECS takes when the lifecycle hook times out. Valid values are CONTINUE and ROLLBACK.

" + } + }, + "documentation":"

The details of a deployment lifecycle hook that is active during a service deployment.

You can view lifecycle hook details by calling DescribeServiceDeployments.

" + }, + "DeploymentLifecycleHookDetailList":{ + "type":"list", + "member":{"shape":"DeploymentLifecycleHookDetail"} + }, + "DeploymentLifecycleHookDuration":{ + "type":"integer", + "box":true, + "max":20160, + "min":1 + }, "DeploymentLifecycleHookList":{ "type":"list", "member":{"shape":"DeploymentLifecycleHook"} @@ -4483,6 +4586,7 @@ "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", + "PRE_PRODUCTION_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT" ] @@ -4491,6 +4595,37 @@ "type":"list", "member":{"shape":"DeploymentLifecycleHookStage"} }, + "DeploymentLifecycleHookStatus":{ + "type":"string", + "enum":[ + "AWAITING_ACTION", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED", + "TIMED_OUT" + ] + }, + "DeploymentLifecycleHookTargetType":{ + "type":"string", + "enum":[ + "AWS_LAMBDA", + "PAUSE" + ] + }, + "DeploymentLifecycleHookTimeoutConfiguration":{ + "type":"structure", + "members":{ + "timeoutInMinutes":{ + "shape":"DeploymentLifecycleHookDuration", + "documentation":"

The number of minutes Amazon ECS waits for the lifecycle hook to complete before taking the timeout action.

" + }, + "action":{ + "shape":"DeploymentLifecycleHookAction", + "documentation":"

The action Amazon ECS takes when the lifecycle hook times out. Valid values are:

  • CONTINUE - Proceeds the deployment to the next lifecycle stage.

  • ROLLBACK - Rolls back the deployment to the previous service revision.

" + } + }, + "documentation":"

The timeout configuration for a deployment lifecycle hook. This determines how long Amazon ECS waits for the hook to complete before taking the specified timeout action.

" + }, "DeploymentRolloutState":{ "type":"string", "enum":[ @@ -8481,7 +8616,7 @@ "documentation":"

The full ARN of the S3 Files access point to use. If an access point is specified, the root directory value specified in the S3FilesVolumeConfiguration must either be omitted or set to / which will enforce the path set on the S3 Files access point. For more information, see Creating S3 Files access points.

" } }, - "documentation":"

This parameter is specified when you're using an Amazon S3 Files file system for task storage. For more information, see Amazon S3 Files volumes in the Amazon Elastic Container Service Developer Guide.

Your task definition must include a Task IAM Role. See IAM role for attaching your file system to AWS compute resources for required permissions.

" + "documentation":"

This parameter is specified when you're using an Amazon S3 Files file system for task storage. For more information, see Amazon S3 Files volumes in the Amazon Elastic Container Service Developer Guide.

Your task definition must include a Task IAM Role. See IAM role for attaching your file system to Amazon Web Services compute resources for required permissions.

" }, "Scale":{ "type":"structure", @@ -8977,6 +9112,10 @@ "shape":"ServiceDeploymentLifecycleStage", "documentation":"

The current lifecycle stage of the deployment. Possible values include:

  • RECONCILE_SERVICE

    The reconciliation stage that only happens when you start a new service deployment with more than 1 service revision in an ACTIVE state.

  • PRE_SCALE_UP

    The green service revision has not started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

  • SCALE_UP

    The stage when the green service revision scales up to 100% and launches new tasks. The green service revision is not serving any traffic at this point.

  • POST_SCALE_UP

    The green service revision has started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

  • TEST_TRAFFIC_SHIFT

    The blue and green service revisions are running. The blue service revision handles 100% of the production traffic. The green service revision is migrating from 0% to 100% of test traffic.

  • POST_TEST_TRAFFIC_SHIFT

    The test traffic shift is complete. The green service revision handles 100% of the test traffic.

  • PRODUCTION_TRAFFIC_SHIFT

    Production traffic is shifting to the green service revision. The green service revision is migrating from 0% to 100% of production traffic.

  • POST_PRODUCTION_TRAFFIC_SHIFT

    The production traffic shift is complete.

  • BAKE_TIME

    The stage when both blue and green service revisions are running simultaneously after the production traffic has shifted.

  • CLEAN_UP

    The stage when the blue service revision has completely scaled down to 0 running tasks. The green service revision is now the production service revision after this stage.

" }, + "lifecycleHookDetails":{ + "shape":"DeploymentLifecycleHookDetailList", + "documentation":"

The details of the lifecycle hooks for the current service deployment.

" + }, "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, "rollback":{ "shape":"Rollback", @@ -11063,7 +11202,7 @@ "members":{ "service":{ "shape":"Service", - "documentation":"

The full description of your service following the update call.

" + "documentation":"

The full description of your service following the update call.

The response includes a lifecycleHookDetails field, which is an empty array when the service is created or updated. The values are populated when a lifecycle hook executes and are available as part of the service deployment details (DescribeServiceDeployments).

" } }, "documentation":"" diff --git a/awscli/botocore/data/evs/2023-07-27/service-2.json b/awscli/botocore/data/evs/2023-07-27/service-2.json index 8bd70d6b4ce2..56eb436a5e1d 100644 --- a/awscli/botocore/data/evs/2023-07-27/service-2.json +++ b/awscli/botocore/data/evs/2023-07-27/service-2.json @@ -90,7 +90,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Creates an ESX host and adds it to an Amazon EVS environment. Amazon EVS supports 4-16 hosts per environment.

This action can only be used after the Amazon EVS environment is deployed.

You can use the dedicatedHostId parameter to specify an Amazon EC2 Dedicated Host for ESX host creation.

You can use the placementGroupId parameter to specify a cluster or partition placement group to launch EC2 instances into.

If you don't specify an ESX version when adding hosts using CreateEnvironmentHost action, Amazon EVS automatically uses the default ESX version associated with your environment's VCF version. To find the default ESX version for a particular VCF version, use the GetVersions action.

You cannot use the dedicatedHostId and placementGroupId parameters together in the same CreateEnvironmentHost action. This results in a ValidationException response.

", + "documentation":"

Creates an ESX host and adds it to an Amazon EVS environment. Amazon EVS supports 4-32 hosts per environment.

This action can only be used after the Amazon EVS environment is deployed.

You can use the dedicatedHostId parameter to specify an Amazon EC2 Dedicated Host for ESX host creation.

You can use the placementGroupId parameter to specify a cluster or partition placement group to launch EC2 instances into.

If you don't specify an ESX version when adding hosts using CreateEnvironmentHost action, Amazon EVS automatically uses the default ESX version associated with your environment's VCF version. To find the default ESX version for a particular VCF version, use the GetVersions action.

You cannot use the dedicatedHostId and placementGroupId parameters together in the same CreateEnvironmentHost action. This results in a ValidationException response.

", "idempotent":true }, "DeleteEntitlement":{ @@ -410,7 +410,7 @@ "members":{ "type":{ "shape":"CheckType", - "documentation":"

The check type. Amazon EVS performs the following checks.

  • KEY_REUSE: checks that the VCF license key is not used by another Amazon EVS environment. This check fails if a used license is added to the environment.

  • KEY_COVERAGE: checks that your VCF license key allocates sufficient vCPU cores for all deployed hosts. The check fails when any assigned hosts in the EVS environment are not covered by license keys, or when any unassigned hosts cannot be covered by available vCPU cores in keys.

  • REACHABILITY: checks that the Amazon EVS control plane has a persistent connection to SDDC Manager. If Amazon EVS cannot reach the environment, this check fails.

  • HOST_COUNT: Checks that your environment has a minimum of 4 hosts.

    If this check fails, you will need to add hosts so that your environment meets this minimum requirement. Amazon EVS only supports environments with 4-16 hosts.

" + "documentation":"

The check type. Amazon EVS performs the following checks.

  • KEY_REUSE: checks that the VCF license key is not used by another Amazon EVS environment. This check fails if a used license is added to the environment.

  • KEY_COVERAGE: checks that your VCF license key allocates sufficient vCPU cores for all deployed hosts. The check fails when any assigned hosts in the EVS environment are not covered by license keys, or when any unassigned hosts cannot be covered by available vCPU cores in keys.

  • REACHABILITY: checks that the Amazon EVS control plane has a persistent connection to SDDC Manager. If Amazon EVS cannot reach the environment, this check fails.

  • HOST_COUNT: Checks that your environment has a minimum of 4 hosts.

    If this check fails, you will need to add hosts so that your environment meets this minimum requirement. Amazon EVS only supports environments with 4-32 hosts.

" }, "result":{ "shape":"CheckResult", @@ -1263,7 +1263,7 @@ "documentation":"

The elastic network interfaces that are attached to the host.

" } }, - "documentation":"

An ESX host that runs on an Amazon EC2 bare metal instance. Four hosts are created in an Amazon EVS environment during environment creation. You can add hosts to an environment using the CreateEnvironmentHost operation. Amazon EVS supports 4-16 hosts per environment.

" + "documentation":"

An ESX host that runs on an Amazon EC2 bare metal instance. Four hosts are created in an Amazon EVS environment during environment creation. You can add hosts to an environment using the CreateEnvironmentHost operation. Amazon EVS supports 4-32 hosts per environment.

" }, "HostInfoForCreate":{ "type":"structure", diff --git a/awscli/botocore/data/ivs/2020-07-14/service-2.json b/awscli/botocore/data/ivs/2020-07-14/service-2.json index b4fb36f8cbbf..11b3482668f3 100644 --- a/awscli/botocore/data/ivs/2020-07-14/service-2.json +++ b/awscli/botocore/data/ivs/2020-07-14/service-2.json @@ -2375,7 +2375,7 @@ "MediaTailorPlaybackConfigurationsList":{ "type":"list", "member":{"shape":"MediaTailorPlaybackConfiguration"}, - "max":1, + "max":3, "min":1 }, "MultitrackInputConfiguration":{ diff --git a/awscli/botocore/data/quicksight/2018-04-01/service-2.json b/awscli/botocore/data/quicksight/2018-04-01/service-2.json index 5874e74c7963..4df49c958efa 100644 --- a/awscli/botocore/data/quicksight/2018-04-01/service-2.json +++ b/awscli/botocore/data/quicksight/2018-04-01/service-2.json @@ -4782,6 +4782,22 @@ "max":20, "min":1 }, + "AdditionalNotes":{ + "type":"structure", + "members":{ + "Text":{ + "shape":"AdditionalNotesText", + "documentation":"

The additional notes text.

" + } + }, + "documentation":"

Additional notes that provide supplementary context for a column.

" + }, + "AdditionalNotesText":{ + "type":"string", + "max":2000, + "min":0, + "sensitive":true + }, "AggFunction":{ "type":"structure", "members":{ @@ -10141,6 +10157,12 @@ "max":128, "min":1 }, + "ColumnNameList":{ + "type":"list", + "member":{"shape":"ColumnName"}, + "max":2000, + "min":1 + }, "ColumnOrderingType":{ "type":"string", "enum":[ @@ -10179,6 +10201,40 @@ "member":{"shape":"ColumnSchema"}, "max":500 }, + "ColumnSemanticProperty":{ + "type":"structure", + "members":{ + "Description":{ + "shape":"ColumnDescription", + "documentation":"

A description of the column.

" + }, + "AdditionalNotes":{ + "shape":"AdditionalNotes", + "documentation":"

Additional notes for the column.

" + }, + "SemanticType":{ + "shape":"ColumnSemanticType", + "documentation":"

The semantic type of the column.

" + } + }, + "documentation":"

A semantic property for a column.

" + }, + "ColumnSemanticPropertyList":{ + "type":"list", + "member":{"shape":"ColumnSemanticProperty"}, + "max":3, + "min":1 + }, + "ColumnSemanticType":{ + "type":"structure", + "members":{ + "GeographicalRole":{ + "shape":"GeoSpatialDataRole", + "documentation":"

The geographical role of the column in the new data preparation experience.

" + } + }, + "documentation":"

The semantic type information for a column in the new data preparation experience.

" + }, "ColumnSort":{ "type":"structure", "required":[ @@ -13101,6 +13157,22 @@ }, "documentation":"

A list of custom filter values.

" }, + "CustomInstruction":{ + "type":"structure", + "members":{ + "InlineCustomInstruction":{ + "shape":"InlineCustomInstruction", + "documentation":"

An inline custom instruction containing text and optional uploaded document metadata.

" + } + }, + "documentation":"

A custom instruction that provides guidance on how the dataset should be consumed.

" + }, + "CustomInstructionList":{ + "type":"list", + "member":{"shape":"CustomInstruction"}, + "max":2, + "min":1 + }, "CustomInstructions":{ "type":"structure", "required":["CustomInstructionsString"], @@ -14427,6 +14499,12 @@ }, "documentation":"

A filter condition that filters date values within a specified range.

" }, + "DataSetDescriptiveText":{ + "type":"string", + "max":500, + "min":1, + "sensitive":true + }, "DataSetEntityResourceId":{ "type":"string", "max":64, @@ -14645,6 +14723,37 @@ "max":1, "min":1 }, + "DataSetSemanticDescription":{ + "type":"structure", + "required":["Text"], + "members":{ + "Text":{ + "shape":"DataSetDescriptiveText", + "documentation":"

The descriptive text for the dataset.

" + } + }, + "documentation":"

A description structure for dataset-level semantic metadata.

" + }, + "DataSetSemanticMetadata":{ + "type":"structure", + "members":{ + "Description":{ + "shape":"DataSetSemanticDescription", + "documentation":"

A description of the dataset.

" + }, + "CustomInstructions":{ + "shape":"CustomInstructionList", + "documentation":"

A list of custom instructions that guide how the dataset should be consumed.

" + } + }, + "documentation":"

Semantic metadata for a dataset, including a description and custom instructions.

" + }, + "DataSetSemanticMetadataList":{ + "type":"list", + "member":{"shape":"DataSetSemanticMetadata"}, + "max":1, + "min":1 + }, "DataSetStringComparisonFilterCondition":{ "type":"structure", "required":["Operator"], @@ -25430,6 +25539,27 @@ "type":"list", "member":{"shape":"Ingestion"} }, + "InlineCustomInstruction":{ + "type":"structure", + "required":["InstructionText"], + "members":{ + "InstructionText":{ + "shape":"InlineCustomInstructionText", + "documentation":"

The instruction text content.

" + }, + "UploadedDocumentMetadata":{ + "shape":"UploadedDocumentMetadata", + "documentation":"

Metadata about an uploaded document associated with this instruction.

" + } + }, + "documentation":"

An inline custom instruction with text content and optional file upload metadata.

" + }, + "InlineCustomInstructionText":{ + "type":"string", + "max":50000, + "min":0, + "sensitive":true + }, "InnerFilter":{ "type":"structure", "members":{ @@ -35132,6 +35262,10 @@ "TableMap":{ "shape":"SemanticTableMap", "documentation":"

A map of semantic tables that define the analytical structure.

" + }, + "SemanticMetadata":{ + "shape":"DataSetSemanticMetadataList", + "documentation":"

The dataset-level semantic metadata, including a description and custom instructions.

" } }, "documentation":"

Configuration for the semantic model that defines how prepared data is structured for analysis and reporting.

" @@ -35154,6 +35288,10 @@ "RowLevelPermissionConfiguration":{ "shape":"RowLevelPermissionConfiguration", "documentation":"

Configuration for row level security that control data access for this semantic table.

" + }, + "SemanticMetadata":{ + "shape":"TableSemanticMetadata", + "documentation":"

The column-level semantic metadata for this semantic table.

" } }, "documentation":"

A semantic table that represents the final analytical structure of the data.

" @@ -35390,6 +35528,27 @@ }, "documentation":"

The shape conditional formatting of a filled map visual.

" }, + "SharedColumnSemanticMetadata":{ + "type":"structure", + "required":["ColumnProperties"], + "members":{ + "ColumnNames":{ + "shape":"ColumnNameList", + "documentation":"

The names of the columns this metadata applies to.

" + }, + "ColumnProperties":{ + "shape":"ColumnSemanticPropertyList", + "documentation":"

The semantic properties for the specified columns.

" + } + }, + "documentation":"

Semantic metadata shared across one or more columns.

" + }, + "SharedColumnSemanticMetadataList":{ + "type":"list", + "member":{"shape":"SharedColumnSemanticMetadata"}, + "max":2000, + "min":1 + }, "SharedViewConfigurations":{ "type":"structure", "required":["Enabled"], @@ -37759,6 +37918,16 @@ }, "documentation":"

The conditional formatting of a table row.

" }, + "TableSemanticMetadata":{ + "type":"structure", + "members":{ + "ColumnMetadata":{ + "shape":"SharedColumnSemanticMetadataList", + "documentation":"

A list of column semantic metadata entries.

" + } + }, + "documentation":"

Column-level semantic metadata for a semantic table.

" + }, "TableSideBorderOptions":{ "type":"structure", "members":{ @@ -43594,6 +43763,21 @@ }, "documentation":"

Information about the format for a source file or files.

" }, + "UploadedDocumentMetadata":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"UploadedDocumentName", + "documentation":"

The name of the uploaded document.

" + } + }, + "documentation":"

Metadata for an uploaded document associated with a custom instruction.

" + }, + "UploadedDocumentName":{ + "type":"string", + "max":127, + "min":1 + }, "User":{ "type":"structure", "members":{ From 2410496d023e653d8085cf6687b7b11250a57dc0 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Mon, 18 May 2026 18:18:55 +0000 Subject: [PATCH 15/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 7e69facd1376..bfc80ea4667a 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -36627,6 +36627,12 @@ "us-iso-west-1" : { } } }, + "acm-pca" : { + "endpoints" : { + "us-iso-east-1" : { }, + "us-iso-west-1" : { } + } + }, "agreement-marketplace" : { "endpoints" : { "fips-us-iso-east-1" : { From a7357840b498a0ec7c0693d602a318a61bf14fba Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Mon, 18 May 2026 18:20:37 +0000 Subject: [PATCH 16/73] Bump version to 2.34.49 --- .changes/2.34.49.json | 37 +++++++++++++++++++ .../api-change-accessanalyzer-83119.json | 5 --- .../api-change-connect-27821.json | 5 --- .../next-release/api-change-ec2-92188.json | 5 --- .../next-release/api-change-ecs-33493.json | 5 --- .../next-release/api-change-evs-83946.json | 5 --- .../next-release/api-change-ivs-56679.json | 5 --- .../api-change-quicksight-4244.json | 5 --- CHANGELOG.rst | 12 ++++++ awscli/__init__.py | 2 +- configure | 14 +++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 13 files changed, 59 insertions(+), 45 deletions(-) create mode 100644 .changes/2.34.49.json delete mode 100644 .changes/next-release/api-change-accessanalyzer-83119.json delete mode 100644 .changes/next-release/api-change-connect-27821.json delete mode 100644 .changes/next-release/api-change-ec2-92188.json delete mode 100644 .changes/next-release/api-change-ecs-33493.json delete mode 100644 .changes/next-release/api-change-evs-83946.json delete mode 100644 .changes/next-release/api-change-ivs-56679.json delete mode 100644 .changes/next-release/api-change-quicksight-4244.json diff --git a/.changes/2.34.49.json b/.changes/2.34.49.json new file mode 100644 index 000000000000..ce5484445c5f --- /dev/null +++ b/.changes/2.34.49.json @@ -0,0 +1,37 @@ +[ + { + "category": "``accessanalyzer``", + "description": "Services manage service-linked analyzers through dedicated APIs - CreateServiceLinkedAnalyzer and DeleteServiceLinkedAnalyzer that separate service-linked specific operations from customer-managed operations. It also shows up in ListAnalyzers and GetAnalyzer responses.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "Amazon VPC IP Address Manager (IPAM) now supports tags on IPAM pool allocations, enabling all standard tagging features for allocations including tag-on-create.", + "type": "api-change" + }, + { + "category": "``ivs``", + "description": "Adds support for up to 3 mediaTailorPlaybackConfiguration objects in an ad configuration resource", + "type": "api-change" + }, + { + "category": "``evs``", + "description": "Amazon EVS now supports up to 32 hosts per EVS environment, increasing the previous host limit to allow a larger scale of VMware workload deployments and reduce operational overhead.", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines.", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "Amazon ECS now supports Pause lifecycle hooks for service deployments, allowing customers to automatically pause deployments at specified stages and use the new ContinueServiceDeployment API to continue or roll back with confidence.", + "type": "api-change" + }, + { + "category": "``quicksight``", + "description": "Support for dataset enrichment and geo spatial in new data preparation experience", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-accessanalyzer-83119.json b/.changes/next-release/api-change-accessanalyzer-83119.json deleted file mode 100644 index e82ebbe9f311..000000000000 --- a/.changes/next-release/api-change-accessanalyzer-83119.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``accessanalyzer``", - "description": "Services manage service-linked analyzers through dedicated APIs - CreateServiceLinkedAnalyzer and DeleteServiceLinkedAnalyzer that separate service-linked specific operations from customer-managed operations. It also shows up in ListAnalyzers and GetAnalyzer responses." -} diff --git a/.changes/next-release/api-change-connect-27821.json b/.changes/next-release/api-change-connect-27821.json deleted file mode 100644 index 2c0e647d6c25..000000000000 --- a/.changes/next-release/api-change-connect-27821.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connect``", - "description": "Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines." -} diff --git a/.changes/next-release/api-change-ec2-92188.json b/.changes/next-release/api-change-ec2-92188.json deleted file mode 100644 index bb502c5b080a..000000000000 --- a/.changes/next-release/api-change-ec2-92188.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ec2``", - "description": "Amazon VPC IP Address Manager (IPAM) now supports tags on IPAM pool allocations, enabling all standard tagging features for allocations including tag-on-create." -} diff --git a/.changes/next-release/api-change-ecs-33493.json b/.changes/next-release/api-change-ecs-33493.json deleted file mode 100644 index cc79a616a13a..000000000000 --- a/.changes/next-release/api-change-ecs-33493.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ecs``", - "description": "Amazon ECS now supports Pause lifecycle hooks for service deployments, allowing customers to automatically pause deployments at specified stages and use the new ContinueServiceDeployment API to continue or roll back with confidence." -} diff --git a/.changes/next-release/api-change-evs-83946.json b/.changes/next-release/api-change-evs-83946.json deleted file mode 100644 index 6fd22f7e8993..000000000000 --- a/.changes/next-release/api-change-evs-83946.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``evs``", - "description": "Amazon EVS now supports up to 32 hosts per EVS environment, increasing the previous host limit to allow a larger scale of VMware workload deployments and reduce operational overhead." -} diff --git a/.changes/next-release/api-change-ivs-56679.json b/.changes/next-release/api-change-ivs-56679.json deleted file mode 100644 index 0410124235d9..000000000000 --- a/.changes/next-release/api-change-ivs-56679.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ivs``", - "description": "Adds support for up to 3 mediaTailorPlaybackConfiguration objects in an ad configuration resource" -} diff --git a/.changes/next-release/api-change-quicksight-4244.json b/.changes/next-release/api-change-quicksight-4244.json deleted file mode 100644 index c3436c7db600..000000000000 --- a/.changes/next-release/api-change-quicksight-4244.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``quicksight``", - "description": "Support for dataset enrichment and geo spatial in new data preparation experience" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d55f1b2cbb3f..eb2007faf732 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ CHANGELOG ========= +2.34.49 +======= + +* api-change:``accessanalyzer``: Services manage service-linked analyzers through dedicated APIs - CreateServiceLinkedAnalyzer and DeleteServiceLinkedAnalyzer that separate service-linked specific operations from customer-managed operations. It also shows up in ListAnalyzers and GetAnalyzer responses. +* api-change:``ec2``: Amazon VPC IP Address Manager (IPAM) now supports tags on IPAM pool allocations, enabling all standard tagging features for allocations including tag-on-create. +* api-change:``ivs``: Adds support for up to 3 mediaTailorPlaybackConfiguration objects in an ad configuration resource +* api-change:``evs``: Amazon EVS now supports up to 32 hosts per EVS environment, increasing the previous host limit to allow a larger scale of VMware workload deployments and reduce operational overhead. +* api-change:``connect``: Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines. +* api-change:``ecs``: Amazon ECS now supports Pause lifecycle hooks for service deployments, allowing customers to automatically pause deployments at specified stages and use the new ContinueServiceDeployment API to continue or roll back with confidence. +* api-change:``quicksight``: Support for dataset enrichment and geo spatial in new data preparation experience + + 2.34.48 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 1c834285a77f..eb896b614bf6 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.48' +__version__ = '2.34.49' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 3d276e639d24..82aa88faa00a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.48. +# Generated by GNU Autoconf 2.71 for awscli 2.34.49. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.48' -PACKAGE_STRING='awscli 2.34.48' +PACKAGE_VERSION='2.34.49' +PACKAGE_STRING='awscli 2.34.49' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.48 +awscli configure 2.34.49 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.48, which was +It was created by awscli $as_me 2.34.49, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.48, which was +This file was extended by awscli $as_me 2.34.49, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.48 +awscli config.status 2.34.49 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 0209383ce511..1051ffec4e64 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.48]) +AC_INIT([awscli], [2.34.49]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 77261bb6d75b..12382b9131c6 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.48' +release = '2.34.49' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From b71f9be7ee834b61306dab031b22d007d951a336 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 19 May 2026 18:12:03 +0000 Subject: [PATCH 17/73] Update to latest models --- .../api-change-bedrockagentcore-7546.json | 5 + .../api-change-devopsagent-98663.json | 5 + .../api-change-grafana-39803.json | 5 + .../api-change-guardduty-92009.json | 5 + .../api-change-rtbfabric-50906.json | 5 + .../api-change-sagemaker-59353.json | 5 + .../2024-02-28/service-2.json | 338 ++++++++++-------- .../devops-agent/2026-01-01/service-2.json | 297 ++++++++++++--- .../data/grafana/2020-08-18/service-2.json | 12 +- .../data/guardduty/2017-11-28/service-2.json | 9 +- .../data/rtbfabric/2023-05-15/service-2.json | 31 +- .../data/sagemaker/2017-07-24/service-2.json | 4 +- 12 files changed, 508 insertions(+), 213 deletions(-) create mode 100644 .changes/next-release/api-change-bedrockagentcore-7546.json create mode 100644 .changes/next-release/api-change-devopsagent-98663.json create mode 100644 .changes/next-release/api-change-grafana-39803.json create mode 100644 .changes/next-release/api-change-guardduty-92009.json create mode 100644 .changes/next-release/api-change-rtbfabric-50906.json create mode 100644 .changes/next-release/api-change-sagemaker-59353.json diff --git a/.changes/next-release/api-change-bedrockagentcore-7546.json b/.changes/next-release/api-change-bedrockagentcore-7546.json new file mode 100644 index 000000000000..6004d31d1011 --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcore-7546.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore``", + "description": "Add RetryableConflictException (HTTP 409) to InvokeAgentRuntime and StopRuntimeSession to prevent orphaned VMs during concurrent session access. The SDK automatically retries this exception with backoff. Enforcement is not yet active and will be enabled in a future service update." +} diff --git a/.changes/next-release/api-change-devopsagent-98663.json b/.changes/next-release/api-change-devopsagent-98663.json new file mode 100644 index 000000000000..c596476de0cb --- /dev/null +++ b/.changes/next-release/api-change-devopsagent-98663.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``devops-agent``", + "description": "Added a new serviceType mcpserversigv4 service and association. This provides feature to register MCP sigv4 authorization based MCPs" +} diff --git a/.changes/next-release/api-change-grafana-39803.json b/.changes/next-release/api-change-grafana-39803.json new file mode 100644 index 000000000000..6ef966a88de8 --- /dev/null +++ b/.changes/next-release/api-change-grafana-39803.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``grafana``", + "description": "Introduce degraded workspace status as a possible Amazon Managed Grafana workspace status, and a new field named degraded workspace reason which informs customers why the workspace is degraded in the DescribeWorkspace API response." +} diff --git a/.changes/next-release/api-change-guardduty-92009.json b/.changes/next-release/api-change-guardduty-92009.json new file mode 100644 index 000000000000..c93949573377 --- /dev/null +++ b/.changes/next-release/api-change-guardduty-92009.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``guardduty``", + "description": "Adding support for exposure and vulnerability context from AWS Security Hub in GuardDuty Extended Threat Detection attack sequence findings." +} diff --git a/.changes/next-release/api-change-rtbfabric-50906.json b/.changes/next-release/api-change-rtbfabric-50906.json new file mode 100644 index 000000000000..fa54b05121ab --- /dev/null +++ b/.changes/next-release/api-change-rtbfabric-50906.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``rtbfabric``", + "description": "This release is to deprecate 'inboundLinksCount' field in GetResponderGateway response and introduce the new field 'linksRequestedCount' to replace it." +} diff --git a/.changes/next-release/api-change-sagemaker-59353.json b/.changes/next-release/api-change-sagemaker-59353.json new file mode 100644 index 000000000000..07549bcec948 --- /dev/null +++ b/.changes/next-release/api-change-sagemaker-59353.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemaker``", + "description": "Add support for ml.p5.4xlarge and ml.p5en.48xlarge instances on SageMaker Notebook Instances Platform." +} diff --git a/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json b/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json index 42991229e929..1ae31d8bcb88 100644 --- a/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json +++ b/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json @@ -149,7 +149,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create a new payment instrument for a connector

", + "documentation":"

Create a new payment instrument for a connector.

", "idempotent":true }, "CreatePaymentSession":{ @@ -169,7 +169,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create a new payment manager session

", + "documentation":"

Create a new payment session.

", "idempotent":true }, "DeleteABTest":{ @@ -270,7 +270,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Delete a payment instrument

Marks a payment instrument as deleted by updating its status to DELETED. This is a soft delete operation that preserves the record in the database for audit and compliance purposes. The record remains queryable for audit purposes but is excluded from normal list and get operations.

Deleting an already-deleted or non-existent instrument returns ResourceNotFoundException (404).

Authorization: The caller must own the instrument (accountId, userId, and paymentManagerId must match). If authorization fails, a 403 Forbidden error is returned.

Timestamp Management: The updatedAt timestamp is set to the current time, while createdAt is preserved. The version field is incremented for optimistic locking.

Errors:

  • ResourceNotFoundException: The instrument does not exist or is already deleted
  • AccessDeniedException: The caller is not authorized to delete this instrument
  • ValidationException: Required fields are missing or invalid
  • InternalServerException: An unexpected server error occurred
", + "documentation":"

Deletes a payment instrument. This is a soft delete operation that preserves the record for audit and compliance purposes.

", "idempotent":true }, "DeletePaymentSession":{ @@ -289,7 +289,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Delete a payment manager session

Permanently removes a payment session record from the database. This is a hard delete operation that removes the session completely.

Deleting a non-existent or already-deleted session returns ResourceNotFoundException (404).

Authorization: The caller must own the session (accountId, userId, and paymentManagerId must match). If authorization fails, a 403 Forbidden error is returned.

Errors:

  • ResourceNotFoundException: The session does not exist or has already been deleted
  • AccessDeniedException: The caller is not authorized to delete this session
  • ValidationException: Required fields are missing or invalid
  • InternalServerException: An unexpected server error occurred
", + "documentation":"

Deletes a payment session. This permanently removes the payment session record.

", "idempotent":true }, "DeleteRecommendation":{ @@ -490,7 +490,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get a payment instrument by ID

", + "documentation":"

Get a payment instrument by ID.

", "readonly":true }, "GetPaymentInstrumentBalance":{ @@ -509,7 +509,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get the balance of a payment instrument

", + "documentation":"

Get the balance of a payment instrument.

", "readonly":true }, "GetPaymentSession":{ @@ -528,7 +528,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get a payment session

", + "documentation":"

Get a payment session.

", "readonly":true }, "GetRecommendation":{ @@ -678,6 +678,7 @@ "output":{"shape":"InvokeAgentRuntimeResponse"}, "errors":[ {"shape":"ServiceQuotaExceededException"}, + {"shape":"RetryableConflictException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, {"shape":"RuntimeClientError"}, @@ -937,7 +938,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

List payment instruments for a manager

", + "documentation":"

List payment instruments for a manager.

", "readonly":true }, "ListPaymentSessions":{ @@ -955,7 +956,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

List payment manager sessions

", + "documentation":"

List payment sessions.

", "readonly":true }, "ListRecommendations":{ @@ -1014,7 +1015,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Process a payment transaction

", + "documentation":"

Processes a payment using a payment instrument within a payment session.

", "idempotent":true }, "RetrieveMemoryRecords":{ @@ -1252,6 +1253,7 @@ "errors":[ {"shape":"ServiceQuotaExceededException"}, {"shape":"UnauthorizedException"}, + {"shape":"RetryableConflictException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, {"shape":"ConflictException"}, @@ -1544,10 +1546,10 @@ }, "currency":{ "shape":"Currency", - "documentation":"

The currency code for this amount.

" + "documentation":"

The currency code for the amount.

" } }, - "documentation":"

Money amount with currency

" + "documentation":"

Represents a monetary amount with a currency.

" }, "ApiKeyArn":{ "type":"string", @@ -1613,14 +1615,14 @@ "members":{ "availableSpendAmount":{ "shape":"Amount", - "documentation":"

The available spend amount for this session.

" + "documentation":"

The remaining available amount that can be spent.

" }, "updatedAt":{ "shape":"DateTimestamp", "documentation":"

The timestamp when the available limits were last updated.

" } }, - "documentation":"

Available session limits. Currently only budget is supported.

" + "documentation":"

The available spending limits for a payment session.

" }, "BasicAuth":{ "type":"structure", @@ -1793,7 +1795,7 @@ "documentation":"

The timestamp when the batch evaluation was last updated.

" } }, - "documentation":"

Summary representation for list responses

" + "documentation":"

Summary representation for list responses.

" }, "BatchEvaluationSummaryList":{ "type":"list", @@ -2319,7 +2321,7 @@ "documentation":"

The name of the CloudWatch log stream where evaluation results will be written.

" } }, - "documentation":"

CloudWatch Logs destination for batch evaluation results

" + "documentation":"

CloudWatch Logs destination for batch evaluation results.

" }, "CodeInterpreterArn":{ "type":"string", @@ -2442,7 +2444,7 @@ }, "requestHost":{ "shape":"PaymentRequestHostType", - "documentation":"

Optional - defaults to "api.cdp.coinbase.com"

" + "documentation":"

The host for the payment API request. Defaults to \"api.cdp.coinbase.com\".

" }, "requestPath":{ "shape":"PaymentRequestPathType", @@ -2450,14 +2452,14 @@ }, "includeWalletAuthToken":{ "shape":"Boolean", - "documentation":"

Set to true for wallet write operations (requires walletSecret configured)

" + "documentation":"

Set to true for wallet write operations (requires walletSecret configured).

" }, "requestBody":{ "shape":"CoinbaseCdpPaymentRequestBodyType", - "documentation":"

Request body JSON - used to generate wallet auth JWT

" + "documentation":"

Request body JSON — used to generate wallet auth JWT.

" } }, - "documentation":"

Coinbase CDP token request parameters

" + "documentation":"

Coinbase CDP token request parameters.

" }, "CoinbaseCdpTokenResponseOutput":{ "type":"structure", @@ -2465,14 +2467,14 @@ "members":{ "bearerToken":{ "shape":"CoinbaseCdpPaymentJwtTokenType", - "documentation":"

Bearer Token for Authorization header

" + "documentation":"

Bearer Token for Authorization header.

" }, "walletAuthToken":{ "shape":"CoinbaseCdpPaymentJwtTokenType", - "documentation":"

Wallet Auth Token for X-Wallet-Auth header

" + "documentation":"

Wallet Auth Token for X-Wallet-Auth header.

" } }, - "documentation":"

Coinbase CDP token response

" + "documentation":"

Coinbase CDP token response.

" }, "CommandExecutionStatus":{ "type":"string", @@ -2919,19 +2921,22 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

Idempotency token to ensure request uniqueness.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "idempotencyToken":true } }, - "documentation":"

Request structure for creating a payment instrument

" + "documentation":"

Request structure for creating a payment instrument.

" }, "CreatePaymentInstrumentResponse":{ "type":"structure", "required":["paymentInstrument"], "members":{ - "paymentInstrument":{"shape":"PaymentInstrument"} + "paymentInstrument":{ + "shape":"PaymentInstrument", + "documentation":"

The created payment instrument.

" + } }, - "documentation":"

Response structure for creating a payment instrument

" + "documentation":"

Response structure for creating a payment instrument.

" }, "CreatePaymentSessionRequest":{ "type":"structure", @@ -2966,11 +2971,11 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

Idempotency token to ensure request uniqueness.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "idempotencyToken":true } }, - "documentation":"

Request structure for creating a payment session

" + "documentation":"

Request structure for creating a payment session.

" }, "CreatePaymentSessionRequestExpiryTimeInMinutesInteger":{ "type":"integer", @@ -2982,9 +2987,12 @@ "type":"structure", "required":["paymentSession"], "members":{ - "paymentSession":{"shape":"PaymentSession"} + "paymentSession":{ + "shape":"PaymentSession", + "documentation":"

The created payment session.

" + } }, - "documentation":"

Response structure for creating a payment session

" + "documentation":"

Response structure for creating a payment session.

" }, "CredentialProviderName":{ "type":"string", @@ -2994,7 +3002,7 @@ }, "CryptoWalletNetwork":{ "type":"string", - "documentation":"

Supported blockchain networks for crypto wallets

", + "documentation":"

Supported blockchain networks for crypto wallets.

", "enum":[ "ETHEREUM", "SOLANA" @@ -3009,14 +3017,14 @@ "members":{ "version":{ "shape":"String", - "documentation":"

The X402 protocol version (e.g., "v1", "v2")

" + "documentation":"

The version of the X402 protocol.

" }, "payload":{ "shape":"PaymentDocument", - "documentation":"

This can hold any JSON-like object

" + "documentation":"

The X402 payment payload.

" } }, - "documentation":"

X402 payment requirement input

" + "documentation":"

The input for a crypto X402 payment.

" }, "CryptoX402PaymentOutput":{ "type":"structure", @@ -3027,18 +3035,18 @@ "members":{ "version":{ "shape":"String", - "documentation":"

The X402 protocol version (e.g., "1", "2")

" + "documentation":"

The version of the X402 protocol.

" }, "payload":{ "shape":"PaymentDocument", - "documentation":"

This can hold any JSON-like object

" + "documentation":"

The X402 payment response payload.

" } }, - "documentation":"

X402 payment requirement output

" + "documentation":"

The output from a crypto X402 payment.

" }, "Currency":{ "type":"string", - "documentation":"

Supported currency codes

", + "documentation":"

Supported currency codes.

", "enum":["USD"] }, "CustomDescriptor":{ @@ -3076,7 +3084,7 @@ "documentation":"

Pull session spans from CloudWatch

" } }, - "documentation":"

Where to pull session spans from

", + "documentation":"

Configuration for the data source used in evaluation.

", "union":true }, "DateTimestamp":{ @@ -3254,7 +3262,7 @@ "documentation":"

The payment instrument ID to delete.

" } }, - "documentation":"

Request structure for deleting a payment instrument

All fields are required and must match the instrument owner's identifiers for authorization to succeed.

" + "documentation":"

Request structure for deleting a payment instrument.

" }, "DeletePaymentInstrumentResponse":{ "type":"structure", @@ -3265,7 +3273,7 @@ "documentation":"

The status of the instrument after deletion. Always DELETED for successful soft delete.

" } }, - "documentation":"

Response structure for deleting a payment instrument

Returns the deletion status with HTTP 200 OK status code on successful soft deletion.

" + "documentation":"

Response structure for deleting a payment instrument.

" }, "DeletePaymentSessionRequest":{ "type":"structure", @@ -3289,7 +3297,7 @@ "documentation":"

The payment session ID to delete.

" } }, - "documentation":"

Request structure for deleting a payment session

All fields are required and must match the session owner's identifiers for authorization to succeed.

" + "documentation":"

Request structure for deleting a payment session.

" }, "DeletePaymentSessionResponse":{ "type":"structure", @@ -3300,7 +3308,7 @@ "documentation":"

The status of the deletion. Always DELETED for successful hard delete.

" } }, - "documentation":"

Response structure for deleting a payment session

Returns the deletion status with HTTP 200 status code on successful deletion.

" + "documentation":"

Response structure for deleting a payment session.

" }, "DeleteRecommendationRequest":{ "type":"structure", @@ -3405,7 +3413,7 @@ }, "Email":{ "type":"string", - "documentation":"

Email address with validation for standard email format

", + "documentation":"

Email address with validation for standard email format.

", "max":254, "min":1, "pattern":"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}", @@ -3420,11 +3428,11 @@ "members":{ "network":{ "shape":"CryptoWalletNetwork", - "documentation":"

The blockchain network for this embedded crypto wallet. Supported networks: ETHEREUM, SOLANA

" + "documentation":"

The blockchain network for this embedded crypto wallet. Supported networks: ETHEREUM, SOLANA.

" }, "linkedAccounts":{ "shape":"LinkedAccountList", - "documentation":"

List of linkedAccounts linked to this wallet. Each linkedAccount represents a way the end user can authenticate to this wallet. Can be empty when adding a new linkedAccount to an existing wallet.

" + "documentation":"

List of linked accounts linked to this wallet. Each represents a way the end user can authenticate to this wallet.

" }, "walletAddress":{ "shape":"String", @@ -3432,10 +3440,10 @@ }, "redirectUrl":{ "shape":"EmbeddedCryptoWalletRedirectUrlString", - "documentation":"

URL for the end user to complete a provider-specific action (e.g., wallet linking, onboarding). Returned by the payment connector during instrument creation.

" + "documentation":"

URL for the end user to complete a provider-specific action such as wallet linking or onboarding.

" } }, - "documentation":"

Embedded Crypto wallet instrument details

" + "documentation":"

Embedded crypto wallet instrument details.

" }, "EmbeddedCryptoWalletRedirectUrlString":{ "type":"string", @@ -3712,7 +3720,7 @@ "documentation":"

The unique identifier of the evaluator. Can reference built-in evaluators (e.g., Builtin.Helpfulness) or custom evaluators.

" } }, - "documentation":"

An evaluator to run against sessions

" + "documentation":"

An evaluator to run against sessions.

" }, "EvaluatorArn":{ "type":"string", @@ -4537,14 +4545,14 @@ }, "chain":{ "shape":"BlockchainChainId", - "documentation":"

The specific blockchain chain to query balance on. Required because balances are chain-specific — the same wallet address may hold different token balances on different chains.

" + "documentation":"

The specific blockchain chain to query balance on. Required because balances are chain-specific.

" }, "token":{ "shape":"InstrumentBalanceToken", - "documentation":"

The token to query balance for. Required to specify which supported token's balance to return.

" + "documentation":"

The token to query balance for. Only tokens supported for X402 payments are returned.

" } }, - "documentation":"

Request structure for getting payment instrument balance

" + "documentation":"

Request structure for getting payment instrument balance.

" }, "GetPaymentInstrumentBalanceResponse":{ "type":"structure", @@ -4562,7 +4570,7 @@ "documentation":"

The balance of the supported token on the requested chain.

" } }, - "documentation":"

Response structure for getting payment instrument balance

" + "documentation":"

Response structure for getting payment instrument balance.

" }, "GetPaymentInstrumentRequest":{ "type":"structure", @@ -4596,15 +4604,18 @@ "documentation":"

The ID of the payment instrument to retrieve.

" } }, - "documentation":"

Request structure for getting a payment instrument

" + "documentation":"

Request structure for getting a payment instrument.

" }, "GetPaymentInstrumentResponse":{ "type":"structure", "required":["paymentInstrument"], "members":{ - "paymentInstrument":{"shape":"PaymentInstrument"} + "paymentInstrument":{ + "shape":"PaymentInstrument", + "documentation":"

The payment instrument details.

" + } }, - "documentation":"

Response structure for getting a payment instrument

" + "documentation":"

Response structure for getting a payment instrument.

" }, "GetPaymentSessionRequest":{ "type":"structure", @@ -4634,15 +4645,18 @@ "documentation":"

The ID of the payment session to retrieve.

" } }, - "documentation":"

Request structure for getting a payment session

" + "documentation":"

Request structure for getting a payment session.

" }, "GetPaymentSessionResponse":{ "type":"structure", "required":["paymentSession"], "members":{ - "paymentSession":{"shape":"PaymentSession"} + "paymentSession":{ + "shape":"PaymentSession", + "documentation":"

The payment session details.

" + } }, - "documentation":"

Response structure for getting a payment session

" + "documentation":"

Response structure for getting a payment session.

" }, "GetRecommendationRequest":{ "type":"structure", @@ -4824,15 +4838,15 @@ "members":{ "workloadIdentityToken":{ "shape":"WorkloadIdentityTokenType", - "documentation":"

Workload access token for authorization. Named workloadIdentityToken for consistency with APIKey and OAuth2CredentialProvider.

" + "documentation":"

Workload access token for authorization.

" }, "resourceCredentialProviderName":{ "shape":"CredentialProviderName", - "documentation":"

Name of the payment credential provider to use

" + "documentation":"

Name of the payment credential provider to use.

" }, "paymentTokenRequest":{ "shape":"PaymentTokenRequestInput", - "documentation":"

Vendor-specific token request input Contains all request parameters in a type-safe, vendor-specific structure

" + "documentation":"

Vendor-specific token request input. Contains all request parameters in a type-safe, vendor-specific structure.

" } } }, @@ -4842,7 +4856,7 @@ "members":{ "paymentTokenResponse":{ "shape":"PaymentTokenResponseOutput", - "documentation":"

Vendor-specific token response output Contains all response data in a type-safe, vendor-specific structure

" + "documentation":"

Vendor-specific token response output. Contains all response data in a type-safe, vendor-specific structure.

" } } }, @@ -4928,7 +4942,7 @@ "documentation":"

Provide ground truth inline

" } }, - "documentation":"

Where to pull ground truth from

", + "documentation":"

Where to pull ground truth from.

", "union":true }, "GroundTruthTurn":{ @@ -5823,7 +5837,7 @@ "members":{ "assertions":{ "shape":"EvaluationContentList", - "documentation":"

assertions for evaluation, reuses common model EvaluationContentList

" + "documentation":"

Assertions for evaluation, reuses common model EvaluationContentList.

" }, "expectedTrajectory":{ "shape":"EvaluationExpectedTrajectory", @@ -6498,7 +6512,7 @@ }, "JwtKeyId":{ "type":"string", - "documentation":"

JWT Key ID (kid) from the JWT header Identifies which key was used to sign the JWT Must be alphanumeric with hyphens and underscores, 1-255 characters

", + "documentation":"

JWT Key ID (kid) from the JWT header.

", "max":255, "min":1, "pattern":"[a-zA-Z0-9_-]{1,255}" @@ -6627,22 +6641,22 @@ "members":{ "email":{ "shape":"LinkedAccountEmail", - "documentation":"

Email-based linkedAccount

" + "documentation":"

Email-based linked account.

" }, "sms":{ "shape":"LinkedAccountSms", - "documentation":"

SMS-based linkedAccount using phone number

" + "documentation":"

SMS-based linked account using phone number.

" }, "developerJwt":{ "shape":"LinkedAccountDeveloperJwt", - "documentation":"

Developer JWT linkedAccount with key ID and subject

" + "documentation":"

Developer JWT linked account with key ID and subject.

" }, "oAuth2":{ "shape":"LinkedAccountOAuth2", - "documentation":"

OAuth2 provider linkedAccount (Google, Apple, X, Telegram, GitHub)

" + "documentation":"

OAuth2 provider linked account (Google, Apple, X, Telegram, GitHub).

" } }, - "documentation":"

Represents different linkedAccounts that can be linked to an embedded wallet. This union supports multiple linkedAccount approaches: email, SMS, JWT, and OAuth2.

", + "documentation":"

Represents different linked accounts that can be linked to an embedded wallet. Supports email, SMS, JWT, and OAuth2 approaches.

", "sensitive":true, "union":true }, @@ -6675,10 +6689,10 @@ "members":{ "emailAddress":{ "shape":"Email", - "documentation":"

The email address used for linkedAccount. Must be a valid email format.

" + "documentation":"

The email address used for the linked account. Must be a valid email format.

" } }, - "documentation":"

LinkedAccount using an email address.

", + "documentation":"

Linked account using an email address.

", "sensitive":true }, "LinkedAccountList":{ @@ -6693,23 +6707,23 @@ "members":{ "google":{ "shape":"OAuth2Authentication", - "documentation":"

Google OAuth2 authentication

" + "documentation":"

Google OAuth2 authentication.

" }, "apple":{ "shape":"OAuth2Authentication", - "documentation":"

Apple OAuth2 authentication

" + "documentation":"

Apple OAuth2 authentication.

" }, "x":{ "shape":"OAuth2Authentication", - "documentation":"

X (formerly Twitter) OAuth2 authentication

" + "documentation":"

X (formerly Twitter) OAuth2 authentication.

" }, "telegram":{ "shape":"OAuth2Authentication", - "documentation":"

Telegram OAuth2 authentication

" + "documentation":"

Telegram OAuth2 authentication.

" }, "github":{ "shape":"OAuth2Authentication", - "documentation":"

GitHub OAuth2 authentication

" + "documentation":"

GitHub OAuth2 authentication.

" } }, "documentation":"

Authentication method using OAuth2 providers. Supports Google, Apple, X, Telegram, and GitHub providers.

", @@ -6721,10 +6735,10 @@ "members":{ "phoneNumber":{ "shape":"PhoneNumber", - "documentation":"

The phone number in E.164 format (e.g., +1234567890). Must be a valid E.164 formatted phone number starting with + and containing 1-15 digits.

" + "documentation":"

The phone number in E.164 format (e.g., +1234567890).

" } }, - "documentation":"

LinkedAccount using a phone number in E.164 format.

", + "documentation":"

Linked account using a phone number in E.164 format.

", "sensitive":true }, "ListABTestsRequest":{ @@ -7025,11 +7039,11 @@ }, "namespace":{ "shape":"Namespace", - "documentation":"

The namespace prefix to filter memory records by. Returns all memory records in namespaces that start with the provided prefix.

" + "documentation":"

The namespace prefix to filter memory records by. Returns all memory records in namespaces that start with the provided prefix. Either namespace or namespacePath is required.

" }, "namespacePath":{ "shape":"Namespace", - "documentation":"

Use namespacePath for hierarchical retrievals. Return all memory records where namespace falls under the same parent hierarchy.

" + "documentation":"

Use namespacePath for hierarchical retrievals. Return all memory records where namespace falls under the same parent hierarchy. Either namespace or namespacePath is required.

" }, "memoryStrategyId":{ "shape":"MemoryStrategyId", @@ -7096,7 +7110,7 @@ "documentation":"

Maximum number of results to return in a single response.

" } }, - "documentation":"

Request structure for listing payment instruments

" + "documentation":"

Request structure for listing payment instruments.

" }, "ListPaymentInstrumentsResponse":{ "type":"structure", @@ -7111,7 +7125,7 @@ "documentation":"

Token for pagination to retrieve the next set of results.

" } }, - "documentation":"

Response structure for listing payment instruments

" + "documentation":"

Response structure for listing payment instruments.

" }, "ListPaymentSessionsRequest":{ "type":"structure", @@ -7142,7 +7156,7 @@ "documentation":"

Maximum number of results to return in a single response.

" } }, - "documentation":"

Request structure for listing payment sessions

" + "documentation":"

Request structure for listing payment sessions.

" }, "ListPaymentSessionsResponse":{ "type":"structure", @@ -7157,7 +7171,7 @@ "documentation":"

Token for pagination to retrieve the next set of results.

" } }, - "documentation":"

Response structure for listing payment sessions

" + "documentation":"

Response structure for listing payment sessions.

" }, "ListRecommendationsRequest":{ "type":"structure", @@ -7938,18 +7952,18 @@ }, "emailAddress":{ "shape":"Email", - "documentation":"

The email address from the OAuth2 provider (optional).

" + "documentation":"

The email address from the OAuth2 provider.

" }, "name":{ "shape":"OAuth2AuthenticationNameString", - "documentation":"

The user's name from the OAuth2 provider (optional).

" + "documentation":"

The user's name from the OAuth2 provider.

" }, "username":{ "shape":"OAuth2AuthenticationUsernameString", - "documentation":"

The username from the OAuth2 provider (optional).

" + "documentation":"

The username from the OAuth2 provider.

" } }, - "documentation":"

OAuth2 authentication information for third-party providers. Supports Google, Apple, X, Telegram, and GitHub providers.

", + "documentation":"

OAuth2 authentication information for third-party providers.

", "sensitive":true }, "OAuth2AuthenticationNameString":{ @@ -8072,7 +8086,7 @@ "documentation":"

The CloudWatch Logs configuration for writing evaluation results.

" } }, - "documentation":"

Output destination configuration

", + "documentation":"

Output destination configuration.

", "union":true }, "PaginationToken":{"type":"string"}, @@ -8104,7 +8118,7 @@ }, "PaymentAgentName":{ "type":"string", - "documentation":"

The agent name associated with the payment request. Optional human-readable name for the agent making the API call, used for observability.

", + "documentation":"

The agent name associated with the payment request.

", "max":256, "min":0 }, @@ -8117,7 +8131,7 @@ "PaymentDocument":{ "type":"structure", "members":{}, - "documentation":"

Custom document type for payment payloads

", + "documentation":"

Custom document type for payment payloads.

", "document":true, "sensitive":true }, @@ -8134,9 +8148,12 @@ "PaymentInput":{ "type":"structure", "members":{ - "cryptoX402":{"shape":"CryptoX402PaymentInput"} + "cryptoX402":{ + "shape":"CryptoX402PaymentInput", + "documentation":"

Input for a crypto X402 payment.

" + } }, - "documentation":"

Payment request details union

", + "documentation":"

The payment input details, which vary by payment type.

", "union":true }, "PaymentInstrument":{ @@ -8190,17 +8207,17 @@ "documentation":"

The timestamp when this payment instrument was last updated.

" } }, - "documentation":"

Represents a payment instrument

" + "documentation":"

Represents a payment instrument.

" }, "PaymentInstrumentDetails":{ "type":"structure", "members":{ "embeddedCryptoWallet":{ "shape":"EmbeddedCryptoWallet", - "documentation":"

Embedded crypto wallet managed directly by end user

" + "documentation":"

Embedded crypto wallet managed directly by end user.

" } }, - "documentation":"

Details specific to the instrument type

", + "documentation":"

Details specific to the instrument type.

", "union":true }, "PaymentInstrumentId":{ @@ -8211,7 +8228,7 @@ }, "PaymentInstrumentStatus":{ "type":"string", - "documentation":"

The status of a payment instrument

", + "documentation":"

The status of a payment instrument.

", "enum":[ "INITIATED", "ACTIVE", @@ -8265,7 +8282,7 @@ "documentation":"

The timestamp when this payment instrument was last updated.

" } }, - "documentation":"

Summary of a payment instrument for list operations

" + "documentation":"

Summary of a payment instrument for list operations.

" }, "PaymentInstrumentSummaryList":{ "type":"list", @@ -8273,7 +8290,7 @@ }, "PaymentInstrumentType":{ "type":"string", - "documentation":"

The type of payment instrument

", + "documentation":"

The type of payment instrument.

", "enum":["EMBEDDED_CRYPTO_WALLET"] }, "PaymentManagerArn":{ @@ -8285,9 +8302,12 @@ "PaymentOutput":{ "type":"structure", "members":{ - "cryptoX402":{"shape":"CryptoX402PaymentOutput"} + "cryptoX402":{ + "shape":"CryptoX402PaymentOutput", + "documentation":"

Output from a crypto X402 payment.

" + } }, - "documentation":"

Payment response payload union. We will support versioning by introducing other model in this union

", + "documentation":"

The payment output details, which vary by payment type.

", "union":true }, "PaymentRequestHostType":{ @@ -8315,7 +8335,7 @@ "members":{ "paymentSessionId":{ "shape":"PaymentSessionId", - "documentation":"

The unique identifier for this payment session.

" + "documentation":"

The unique identifier of the payment session.

" }, "paymentManagerArn":{ "shape":"PaymentManagerArn", @@ -8323,11 +8343,11 @@ }, "limits":{ "shape":"SessionLimits", - "documentation":"

The spending limits for this session.

" + "documentation":"

The spending limits for the payment session.

" }, "userId":{ "shape":"UserId", - "documentation":"

The user ID associated with this payment session.

" + "documentation":"

The user ID associated with this session.

" }, "expiryTimeInMinutes":{ "shape":"Integer", @@ -8335,18 +8355,18 @@ }, "createdAt":{ "shape":"DateTimestamp", - "documentation":"

The timestamp when this payment session was created.

" + "documentation":"

The timestamp when the session was created.

" }, "availableLimits":{ "shape":"AvailableLimits", - "documentation":"

The available limits for this session after accounting for processed payments.

" + "documentation":"

The current available spending limits.

" }, "updatedAt":{ "shape":"DateTimestamp", - "documentation":"

The timestamp when this payment session was last updated.

" + "documentation":"

The timestamp when the session was last updated.

" } }, - "documentation":"

Payment manager session

" + "documentation":"

A payment session for managing payment transactions.

" }, "PaymentSessionId":{ "type":"string", @@ -8356,7 +8376,7 @@ }, "PaymentSessionStatus":{ "type":"string", - "documentation":"

The status of a payment session

", + "documentation":"

The status of a payment session.

", "enum":[ "ACTIVE", "EXPIRED", @@ -8376,7 +8396,7 @@ "members":{ "paymentSessionId":{ "shape":"PaymentSessionId", - "documentation":"

The unique identifier for this payment session.

" + "documentation":"

The unique identifier of the payment session.

" }, "paymentManagerArn":{ "shape":"PaymentManagerArn", @@ -8384,7 +8404,7 @@ }, "userId":{ "shape":"UserId", - "documentation":"

The user ID associated with this payment session.

" + "documentation":"

The user ID associated with this session.

" }, "expiryTimeInMinutes":{ "shape":"Integer", @@ -8392,14 +8412,14 @@ }, "createdAt":{ "shape":"DateTimestamp", - "documentation":"

The timestamp when this payment session was created.

" + "documentation":"

The timestamp when the session was created.

" }, "updatedAt":{ "shape":"DateTimestamp", - "documentation":"

The timestamp when this payment session was last updated.

" + "documentation":"

The timestamp when the session was last updated.

" } }, - "documentation":"

Summary of a payment session for list operations

" + "documentation":"

Summary information about a payment session.

" }, "PaymentSessionSummaryList":{ "type":"list", @@ -8407,30 +8427,42 @@ }, "PaymentStatus":{ "type":"string", - "documentation":"

Transaction status enum

", + "documentation":"

Transaction status enum.

", "enum":["PROOF_GENERATED"] }, "PaymentTokenRequestInput":{ "type":"structure", "members":{ - "coinbaseCdpTokenRequest":{"shape":"CoinbaseCdpTokenRequestInput"}, - "stripePrivyTokenRequest":{"shape":"StripePrivyTokenRequestInput"} + "coinbaseCdpTokenRequest":{ + "shape":"CoinbaseCdpTokenRequestInput", + "documentation":"

The Coinbase CDP token request.

" + }, + "stripePrivyTokenRequest":{ + "shape":"StripePrivyTokenRequestInput", + "documentation":"

The Stripe Privy token request.

" + } }, - "documentation":"

VENDOR-SPECIFIC TOKEN REQUEST CONFIGURATION - Input

", + "documentation":"

Vendor-specific token request configuration.

", "union":true }, "PaymentTokenResponseOutput":{ "type":"structure", "members":{ - "coinbaseCdpTokenResponse":{"shape":"CoinbaseCdpTokenResponseOutput"}, - "stripePrivyTokenResponse":{"shape":"StripePrivyTokenResponseOutput"} + "coinbaseCdpTokenResponse":{ + "shape":"CoinbaseCdpTokenResponseOutput", + "documentation":"

The Coinbase CDP token response.

" + }, + "stripePrivyTokenResponse":{ + "shape":"StripePrivyTokenResponseOutput", + "documentation":"

The Stripe Privy token response.

" + } }, - "documentation":"

VENDOR-SPECIFIC TOKEN RESPONSE CONFIGURATION - Output

", + "documentation":"

Vendor-specific token response configuration.

", "union":true }, "PaymentType":{ "type":"string", - "documentation":"

Payment type enum

", + "documentation":"

Payment type enum.

", "enum":["CRYPTO_X402"] }, "PerVariantOnlineEvaluationConfig":{ @@ -8459,7 +8491,7 @@ }, "PhoneNumber":{ "type":"string", - "documentation":"

Phone number in E.164 format (e.g., +1234567890)

", + "documentation":"

Phone number in E.164 format (e.g., +1234567890).

", "max":16, "min":3, "pattern":"\\+[1-9]\\d{1,14}", @@ -8495,19 +8527,19 @@ }, "paymentManagerArn":{ "shape":"PaymentManagerArn", - "documentation":"

The ARN of the payment manager handling this payment.

" + "documentation":"

The ARN of the payment manager.

" }, "paymentSessionId":{ "shape":"PaymentSessionId", - "documentation":"

The ID of the payment session for this transaction.

" + "documentation":"

The ID of the payment session.

" }, "paymentInstrumentId":{ "shape":"PaymentInstrumentId", - "documentation":"

The ID of the payment instrument to use for this transaction.

" + "documentation":"

The ID of the payment instrument to use.

" }, "paymentType":{ "shape":"PaymentType", - "documentation":"

The type of payment being processed.

" + "documentation":"

The type of payment to process.

" }, "paymentInput":{ "shape":"PaymentInput", @@ -8515,11 +8547,11 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

Idempotency token to ensure request uniqueness.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "idempotencyToken":true } }, - "documentation":"

Request structure for processing a payment

" + "documentation":"

Request structure for processing a payment.

" }, "ProcessPaymentResponse":{ "type":"structure", @@ -8537,27 +8569,27 @@ "members":{ "processPaymentId":{ "shape":"ProcessPaymentId", - "documentation":"

The unique ID of the processed payment transaction.

" + "documentation":"

The unique identifier of the processed payment.

" }, "paymentManagerArn":{ "shape":"PaymentManagerArn", - "documentation":"

The ARN of the payment manager that processed this payment.

" + "documentation":"

The ARN of the payment manager.

" }, "paymentSessionId":{ "shape":"PaymentSessionId", - "documentation":"

The ID of the payment session for this transaction.

" + "documentation":"

The ID of the payment session used.

" }, "paymentInstrumentId":{ "shape":"PaymentInstrumentId", - "documentation":"

The ID of the payment instrument used for this transaction.

" + "documentation":"

The ID of the payment instrument used.

" }, "paymentType":{ "shape":"PaymentType", - "documentation":"

The type of payment that was processed.

" + "documentation":"

The type of payment processed.

" }, "status":{ "shape":"PaymentStatus", - "documentation":"

The status of the payment transaction.

" + "documentation":"

The status of the payment.

" }, "paymentOutput":{ "shape":"PaymentOutput", @@ -8572,7 +8604,7 @@ "documentation":"

The timestamp when the payment was last updated.

" } }, - "documentation":"

Response structure for processing a payment

" + "documentation":"

Response structure for processing a payment.

" }, "ProgrammingLanguage":{ "type":"string", @@ -9050,11 +9082,11 @@ }, "namespace":{ "shape":"Namespace", - "documentation":"

The namespace prefix to filter memory records by. Searches for memory records in namespaces that start with the provided prefix.

" + "documentation":"

The namespace prefix to filter memory records by. Searches for memory records in namespaces that start with the provided prefix. Either namespace or namespacePath is required.

" }, "namespacePath":{ "shape":"Namespace", - "documentation":"

Use namespacePath for hierarchical retrievals. Return all memory records where namespace falls under the same parent hierarchy.

" + "documentation":"

Use namespacePath for hierarchical retrievals. Return all memory records where namespace falls under the same parent hierarchy. Either namespace or namespacePath is required.

" }, "searchCriteria":{ "shape":"SearchCriteria", @@ -9496,10 +9528,10 @@ "members":{ "maxSpendAmount":{ "shape":"Amount", - "documentation":"

The maximum amount that can be spent in this session.

" + "documentation":"

The maximum amount that can be spent in the session.

" } }, - "documentation":"

Session spending limits

" + "documentation":"

The spending limits configuration for a payment session.

" }, "SessionMetadataList":{ "type":"list", @@ -10327,7 +10359,7 @@ "members":{ "requestHost":{ "shape":"StripePrivyRequestHostType", - "documentation":"

Optional - defaults to "api.privy.io"

" + "documentation":"

The host for the Privy API request. Defaults to \"api.privy.io\".

" }, "requestPath":{ "shape":"StripePrivyRequestPathType", @@ -10335,14 +10367,14 @@ }, "requestBody":{ "shape":"StripePrivyRequestBodyType", - "documentation":"

Request body JSON for the Privy API call

" + "documentation":"

Request body JSON for the Privy API call.

" }, "includeAuthorizationSignature":{ "shape":"Boolean", - "documentation":"

Set to true to generate privy-authorization-signature

" + "documentation":"

Set to true to generate privy-authorization-signature.

" } }, - "documentation":"

StripePrivy token request parameters

" + "documentation":"

Stripe Privy token request parameters.

" }, "StripePrivyTokenResponseOutput":{ "type":"structure", @@ -10353,22 +10385,22 @@ "members":{ "authorizationSignature":{ "shape":"StripePrivyAuthorizationSignatureType", - "documentation":"

Base64-encoded ECDSA P-256 authorization signature (only present when includeAuthorizationSignature is true)

" + "documentation":"

Base64-encoded ECDSA P-256 authorization signature (only present when includeAuthorizationSignature is true).

" }, "requestExpiry":{ "shape":"Long", - "documentation":"

Unix timestamp in milliseconds when the authorization signature expires. Set as privy-request-expiry header.

" + "documentation":"

Unix timestamp in milliseconds when the authorization signature expires.

" }, "appId":{ "shape":"StripePrivyAppIdType", - "documentation":"

The Privy app ID for the privy-app-id header

" + "documentation":"

The Privy app ID for the privy-app-id header.

" }, "basicAuthToken":{ "shape":"StripePrivyBasicAuthTokenType", - "documentation":"

Base64-encoded Basic Auth token (appId:appSecret) for the Authorization header

" + "documentation":"

Base64-encoded Basic Auth token (appId:appSecret) for the Authorization header.

" } }, - "documentation":"

StripePrivy token response containing appId, basicAuthToken, and optionally authorizationSignature

" + "documentation":"

Stripe Privy token response containing appId, basicAuthToken, and optionally authorizationSignature.

" }, "SyntheticTimestamp_date_time":{ "type":"timestamp", @@ -10558,7 +10590,7 @@ "documentation":"

The specific blockchain chain.

" } }, - "documentation":"

A single token balance entry

" + "documentation":"

A single token balance entry.

" }, "TokenUsage":{ "type":"structure", diff --git a/awscli/botocore/data/devops-agent/2026-01-01/service-2.json b/awscli/botocore/data/devops-agent/2026-01-01/service-2.json index 097beb4a0eda..fa36566f32c0 100644 --- a/awscli/botocore/data/devops-agent/2026-01-01/service-2.json +++ b/awscli/botocore/data/devops-agent/2026-01-01/service-2.json @@ -29,9 +29,9 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ThrottlingException"}, - {"shape":"InvalidParameterException"} + {"shape":"ThrottlingException"} ], "documentation":"

Adds a specific service association to an AgentSpace. It overwrites the existing association of the same service. Returns 201 Created on success.

", "endpoint":{"hostPrefix":"cp."} @@ -52,8 +52,8 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, - {"shape":"ThrottlingException"}, {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], "documentation":"

Creates a new AgentSpace with the specified name and description. Duplicate space names are allowed.

", @@ -124,8 +124,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Creates a Private Connection to a target resource.

", "endpoint":{"hostPrefix":"cp."}, @@ -244,8 +244,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Disable the Operator App for the specified AgentSpace

", "endpoint":{"hostPrefix":"cp."}, @@ -293,8 +293,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Enable the Operator App to access the given AgentSpace

", "endpoint":{"hostPrefix":"cp."} @@ -412,8 +412,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Get the full auth configuration of operator including any enabled auth flow

", "endpoint":{"hostPrefix":"cp."}, @@ -484,8 +484,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Lists all AgentSpaces with optional pagination.

", "endpoint":{"hostPrefix":"cp."}, @@ -532,8 +532,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Lists backlog tasks in the specified agent space with optional filtering and sorting

", "endpoint":{"hostPrefix":"dp."} @@ -578,8 +578,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

List executions

", "endpoint":{"hostPrefix":"dp."} @@ -601,8 +601,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Lists goals in the specified agent space with optional filtering

", "endpoint":{"hostPrefix":"dp."} @@ -624,8 +624,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

List journal records for a specific execution

", "endpoint":{"hostPrefix":"dp."} @@ -670,8 +670,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Lists all Private Connections in the caller's account.

", "endpoint":{"hostPrefix":"cp."}, @@ -694,8 +694,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Lists recommendations for the specified agent space

", "endpoint":{"hostPrefix":"dp."} @@ -717,8 +717,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

List a list of registered service on the account level.

", "endpoint":{"hostPrefix":"cp."}, @@ -741,8 +741,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ThrottlingException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists tags for the specified AWS DevOps Agent resource.

", "endpoint":{"hostPrefix":"cp."}, @@ -788,8 +788,8 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"

This operation registers the specified service

", @@ -835,8 +835,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ThrottlingException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Adds or overwrites tags for the specified AWS DevOps Agent resource.

", "endpoint":{"hostPrefix":"cp."}, @@ -859,8 +859,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ThrottlingException"}, - {"shape":"InvalidParameterException"} + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Removes tags from the specified AWS DevOps Agent resource.

", "endpoint":{"hostPrefix":"cp."}, @@ -978,7 +978,8 @@ {"shape":"ThrottlingException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Update the external Identity Provider configuration for the Operator App

" + "documentation":"

Update the external Identity Provider configuration for the Operator App

", + "endpoint":{"hostPrefix":"cp."} }, "UpdatePrivateConnectionCertificate":{ "name":"UpdatePrivateConnectionCertificate", @@ -1146,6 +1147,10 @@ "pagerduty":{ "shape":"RegisteredPagerDutyDetails", "documentation":"

Pagerduty service details.

" + }, + "mcpserversigv4":{ + "shape":"RegisteredMCPServerSigV4Details", + "documentation":"

SigV4-authenticated MCP server-specific service details.

" } }, "documentation":"

Union of service-specific details for different service types.

", @@ -1440,7 +1445,7 @@ "documentation":"

Client ID for service authentication.

", "max":255, "min":1, - "pattern":"[a-zA-Z0-9._-]+", + "pattern":"[\\u0020-\\u007E]+", "sensitive":true }, "ClientSecret":{ @@ -1698,6 +1703,29 @@ }, "documentation":"

Output containing the newly created Private Connection summary.

" }, + "CustomHeaderName":{ + "type":"string", + "documentation":"

HTTP header name. Allows alphanumeric characters, hyphens, and underscores.

", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9-_]+" + }, + "CustomHeaderValue":{ + "type":"string", + "documentation":"

Value type for custom headers.

", + "max":4096, + "min":1, + "pattern":"[!-~]([ \\t]*[!-~])*", + "sensitive":true + }, + "CustomHeaders":{ + "type":"map", + "key":{"shape":"CustomHeaderName"}, + "value":{"shape":"CustomHeaderValue"}, + "documentation":"

Custom headers map.

", + "max":10, + "min":0 + }, "DatadogAuthorizationConfig":{ "type":"structure", "members":{ @@ -3059,7 +3087,7 @@ }, "filter":{ "shape":"TaskFilter", - "documentation":"

Filter criteria to apply when listing tasks

Filtering restrictions:

  • Each filter field list is limited to a single value
  • Filtering by Priority and Status at the same time when not filtering by Type is not permitted
  • Timestamp filters (createdAfter, createdBefore) can be combined with other filters when not sorting by priority
" + "documentation":"

Filter criteria to apply when listing tasks Filtering restrictions: - Each filter field list is limited to a single value - Filtering by Priority and Status at the same time when not filtering by Type is not permitted - Timestamp filters (createdAfter, createdBefore) can be combined with other filters when not sorting by priority

" }, "limit":{ "shape":"ListBacklogTasksRequestLimitInteger", @@ -3071,7 +3099,7 @@ }, "sortField":{ "shape":"TaskSortField", - "documentation":"

Field to sort by

Sorting restrictions: 
  • Only sorting on createdAt is supported when using priority or status filters alone.
  • Sorting by priority is not supported when using Timestamp filters (createdAfter, createdBefore)
" + "documentation":"

Field to sort by Sorting restrictions: - Only sorting on createdAt is supported when using priority or status filters alone. - Sorting by priority is not supported when using Timestamp filters (createdAfter, createdBefore)

" }, "order":{ "shape":"TaskSortOrder", @@ -3779,7 +3807,8 @@ }, "MCPServerNewRelicConfigurationAccountIdString":{ "type":"string", - "min":6, + "max":7, + "min":3, "pattern":"[0-9]+" }, "MCPServerNewRelicConfigurationEndpointString":{ @@ -3897,6 +3926,92 @@ "type":"string", "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?" }, + "MCPServerSigV4AuthorizationConfig":{ + "type":"structure", + "required":[ + "region", + "service", + "roleArn" + ], + "members":{ + "region":{ + "shape":"SigV4Region", + "documentation":"

AWS region for SigV4 signing. Use '*' for SigV4a multi-region signing.

" + }, + "service":{ + "shape":"MCPServerSigV4AuthorizationConfigServiceString", + "documentation":"

AWS service name for SigV4 signing.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

IAM role ARN to assume for SigV4 signing.

" + }, + "customHeaders":{ + "shape":"CustomHeaders", + "documentation":"

Custom headers for the SigV4 MCP server.

" + } + }, + "documentation":"

Authorization configuration for SigV4-authenticated MCP server.

" + }, + "MCPServerSigV4AuthorizationConfigServiceString":{ + "type":"string", + "max":100, + "min":1 + }, + "MCPServerSigV4Configuration":{ + "type":"structure", + "required":["tools"], + "members":{ + "tools":{ + "shape":"MCPToolsList", + "documentation":"

List of MCP tools available for the association.

" + } + }, + "documentation":"

Configuration for SigV4-authenticated MCP server integration.

" + }, + "MCPServerSigV4ServiceDetails":{ + "type":"structure", + "required":[ + "name", + "endpoint", + "authorizationConfig" + ], + "members":{ + "name":{ + "shape":"MCPServerSigV4ServiceDetailsNameString", + "documentation":"

MCP server name.

" + }, + "endpoint":{ + "shape":"MCPServerSigV4ServiceDetailsEndpointString", + "documentation":"

MCP server endpoint URL.

" + }, + "description":{ + "shape":"MCPServerSigV4ServiceDetailsDescriptionString", + "documentation":"

Optional description for the MCP server.

" + }, + "authorizationConfig":{ + "shape":"MCPServerSigV4AuthorizationConfig", + "documentation":"

MCP Server SigV4 authorization configuration.

" + } + }, + "documentation":"

Complete service details for SigV4-authenticated MCP server integration.

" + }, + "MCPServerSigV4ServiceDetailsDescriptionString":{ + "type":"string", + "documentation":"

Description field

", + "max":500, + "min":0, + "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+", + "sensitive":true + }, + "MCPServerSigV4ServiceDetailsEndpointString":{ + "type":"string", + "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?" + }, + "MCPServerSigV4ServiceDetailsNameString":{ + "type":"string", + "pattern":"[a-zA-Z0-9_-]+" + }, "MCPServerSplunkConfiguration":{ "type":"structure", "members":{}, @@ -3990,6 +4105,8 @@ }, "NewRelicApiKeyConfigAccountIdString":{ "type":"string", + "max":7, + "min":3, "pattern":"[0-9]+" }, "NewRelicApiKeyConfigApiKeyString":{ @@ -4213,7 +4330,8 @@ "mcpserverdatadog", "mcpserver", "mcpserversplunk", - "azureidentity" + "azureidentity", + "mcpserversigv4" ] }, "Priority":{ @@ -4370,6 +4488,14 @@ "shape":"String", "documentation":"

Additional context for recommendation

" }, + "rankPosition":{ + "shape":"RecommendationRankPositionInteger", + "documentation":"

Position in ranked list (1 = highest priority)

" + }, + "rankedAt":{ + "shape":"BackLogTimestamp", + "documentation":"

Timestamp when the recommendation was last ranked

" + }, "createdAt":{ "shape":"BackLogTimestamp", "documentation":"

Timestamp when this recommendation was created

" @@ -4418,6 +4544,11 @@ "LOW" ] }, + "RecommendationRankPositionInteger":{ + "type":"integer", + "box":true, + "min":1 + }, "RecommendationStatus":{ "type":"string", "documentation":"

Status of a recommendation

", @@ -4702,6 +4833,68 @@ }, "documentation":"

Details specific to a registered MCP (Model Context Protocol) server.

" }, + "RegisteredMCPServerSigV4Details":{ + "type":"structure", + "required":[ + "name", + "endpoint", + "region", + "service", + "roleArn" + ], + "members":{ + "name":{ + "shape":"RegisteredMCPServerSigV4DetailsNameString", + "documentation":"

MCP server name.

" + }, + "endpoint":{ + "shape":"RegisteredMCPServerSigV4DetailsEndpointString", + "documentation":"

MCP server endpoint URL.

" + }, + "description":{ + "shape":"RegisteredMCPServerSigV4DetailsDescriptionString", + "documentation":"

Optional description for the MCP server.

" + }, + "region":{ + "shape":"SigV4Region", + "documentation":"

AWS region for SigV4 signing. Use '*' for SigV4a multi-region signing.

" + }, + "service":{ + "shape":"RegisteredMCPServerSigV4DetailsServiceString", + "documentation":"

AWS service name for SigV4 signing.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

IAM role ARN to assume for SigV4 signing.

" + }, + "customHeaders":{ + "shape":"CustomHeaders", + "documentation":"

Custom headers for the SigV4 MCP server.

" + } + }, + "documentation":"

Details specific to a registered SigV4-authenticated MCP server.

" + }, + "RegisteredMCPServerSigV4DetailsDescriptionString":{ + "type":"string", + "documentation":"

Description field

", + "max":500, + "min":0, + "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+", + "sensitive":true + }, + "RegisteredMCPServerSigV4DetailsEndpointString":{ + "type":"string", + "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?" + }, + "RegisteredMCPServerSigV4DetailsNameString":{ + "type":"string", + "pattern":"[a-zA-Z0-9_-]+" + }, + "RegisteredMCPServerSigV4DetailsServiceString":{ + "type":"string", + "max":100, + "min":1 + }, "RegisteredNewRelicDetails":{ "type":"structure", "required":[ @@ -5031,7 +5224,7 @@ "documentation":"

Emitted when a content block is complete

" } }, - "documentation":"

Event stream for chat message responses using the content block model. Events follow a lifecycle: responseCreated -> responseInProgress -> (contentBlockStart/contentBlockDelta/contentBlockStop events) -> responseCompleted|responseFailed

SendMessage always uses content block mode — legacy per-field events (outputTextDelta, functionCallArgumentsDelta, etc.) are not emitted.

", + "documentation":"

Event stream for chat message responses using the content block model. Events follow a lifecycle: responseCreated -> responseInProgress -> (contentBlockStart/contentBlockDelta/contentBlockStop events) -> responseCompleted|responseFailed SendMessage always uses content block mode — legacy per-field events (outputTextDelta, functionCallArgumentsDelta, etc.) are not emitted.

", "eventstream":true }, "SendMessageHeartbeatEvent":{ @@ -5231,7 +5424,8 @@ "mcpserverdatadog", "mcpserver", "mcpserversplunk", - "azureidentity" + "azureidentity", + "mcpserversigv4" ] }, "ServiceConfiguration":{ @@ -5300,6 +5494,10 @@ "pagerduty":{ "shape":"PagerDutyConfiguration", "documentation":"

PagerDuty integration configuration

" + }, + "mcpserversigv4":{ + "shape":"MCPServerSigV4Configuration", + "documentation":"

SigV4-authenticated MCP server integration configuration.

" } }, "documentation":"

Union of all supported service configuration types. Each service has its own specific configuration structure.

", @@ -5351,6 +5549,10 @@ "azureidentity":{ "shape":"RegisteredAzureIdentityDetails", "documentation":"

Azure integration with AWS Outbound Identity Federation specific service details.

" + }, + "mcpserversigv4":{ + "shape":"MCPServerSigV4ServiceDetails", + "documentation":"

SigV4-authenticated MCP server-specific service details.

" } }, "documentation":"

Union of service-specific configuration details for service registration.

", @@ -5513,6 +5715,13 @@ }, "exception":true }, + "SigV4Region":{ + "type":"string", + "documentation":"

AWS region identifier or wildcard (*) for SigV4a multi-region signing.

", + "max":50, + "min":1, + "pattern":"(\\*|[a-z]{2,4}(-[a-z]+)+-\\d+)" + }, "SlackChannel":{ "type":"structure", "required":["channelId"], @@ -6295,7 +6504,7 @@ "documentation":"

A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.

" } }, - "documentation":"

A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.

", + "documentation":"

The input fails to satisfy the constraints specified by the service.

", "exception":true }, "ValidationExceptionField":{ @@ -6393,5 +6602,5 @@ "documentation":"

A list of Association Webhook resources.

" } }, - "documentation":"

AWS DevOps Agent is a frontier agent that resolves and proactively prevents incidents, continuously improving reliability and performance. AWS DevOps Agent investigates incidents and identifies operational improvements as an experienced DevOps engineer.

The agent works by:

  • Learning your resources and their relationships.
  • Working with your observability tools, runbooks, code repositories, and CI/CD pipelines.
  • Correlating telemetry, code, and deployment data to understand relationships between your application resources.
  • Supporting applications in multicloud and hybrid environments.
" + "documentation":"

AWS DevOps Agent is your always-available operations teammate. It resolves and proactively prevents incidents, optimizes application reliability and performance, and handles on-demand SRE tasks across AWS, multicloud, and on-premises environments. AWS DevOps Agent investigates incidents as an experienced DevOps engineer would. It learns your applications and their relationships. It works with your observability tools, runbooks, code repositories, and CI/CD pipelines. The agent correlates telemetry, code, and deployment data across all of them.

" } diff --git a/awscli/botocore/data/grafana/2020-08-18/service-2.json b/awscli/botocore/data/grafana/2020-08-18/service-2.json index 9bc5f8b6aeba..4aba71c39540 100644 --- a/awscli/botocore/data/grafana/2020-08-18/service-2.json +++ b/awscli/botocore/data/grafana/2020-08-18/service-2.json @@ -974,6 +974,11 @@ "type":"list", "member":{"shape":"DataSourceType"} }, + "DegradedWorkspaceReason":{ + "type":"string", + "max":255, + "min":1 + }, "DeleteWorkspaceApiKeyRequest":{ "type":"structure", "required":[ @@ -2539,6 +2544,10 @@ "kmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The ID or ARN of the Key Management Service key used for encrypting workspace data.

" + }, + "degradedWorkspaceReason":{ + "shape":"DegradedWorkspaceReason", + "documentation":"

If the workspace is in the DEGRADED status, this field describes the reason the workspace is degraded.

" } }, "documentation":"

A structure containing information about an Amazon Managed Grafana workspace in your account.

" @@ -2571,7 +2580,8 @@ "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED", "VERSION_UPDATING", - "VERSION_UPDATE_FAILED" + "VERSION_UPDATE_FAILED", + "DEGRADED" ] }, "WorkspaceSummary":{ diff --git a/awscli/botocore/data/guardduty/2017-11-28/service-2.json b/awscli/botocore/data/guardduty/2017-11-28/service-2.json index fce9b38614ce..ca306c77c93c 100644 --- a/awscli/botocore/data/guardduty/2017-11-28/service-2.json +++ b/awscli/botocore/data/guardduty/2017-11-28/service-2.json @@ -181,7 +181,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Creates a new threat entity set. In a threat entity set, you can provide known malicious IP addresses and domains for your Amazon Web Services environment. GuardDuty generates findings based on the entries in the threat entity sets. Only users of the administrator account can manage entity sets, which automatically apply to member accounts.

" + "documentation":"

Creates a new threat entity set. In a threat entity set, you can provide known malicious threat entities for your Amazon Web Services environment. GuardDuty generates findings based on the entries in the threat entity sets. Only users of the administrator account can manage entity sets, which automatically apply to member accounts.

" }, "CreateThreatIntelSet":{ "name":"CreateThreatIntelSet", @@ -6333,7 +6333,12 @@ "CRYPTOMINING_IP", "CRYPTOMINING_DOMAIN", "CRYPTOMINING_PROCESS", - "MALICIOUS_FILE" + "MALICIOUS_FILE", + "VULNERABILITY", + "MALICIOUS_PACKAGE", + "MISCONFIGURATION", + "REACHABILITY", + "SENSITIVE_DATA" ] }, "IndicatorValueString":{ diff --git a/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json b/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json index 909d8558073a..0185d17fc380 100644 --- a/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json +++ b/awscli/botocore/data/rtbfabric/2023-05-15/service-2.json @@ -2442,7 +2442,14 @@ }, "inboundLinksCount":{ "shape":"Integer", - "documentation":"

The count of inbound links for the responder gateway.

" + "documentation":"

Deprecated. Use 'linksRequestedCount' instead.

", + "deprecated":true, + "deprecatedMessage":"Use linksRequestedCount instead", + "deprecatedSince":"2026-05-11" + }, + "linksRequestedCount":{ + "shape":"Integer", + "documentation":"

The count of requested links waiting for the responder gateway to accept or reject.

" }, "gatewayType":{ "shape":"GatewayType", @@ -2727,7 +2734,7 @@ "documentation":"

The timestamp of when the routing rule was last updated.

" } }, - "documentation":"

Summary of a routing rule for list responses

" + "documentation":"

A summary of a link routing rule.

" }, "LinkStatus":{ "type":"string", @@ -3225,14 +3232,14 @@ "members":{ "key":{ "shape":"QueryStringKeyValuePairKeyString", - "documentation":"

RFC 3986 unreserved characters

" + "documentation":"

The key of the query string parameter to match. Must contain only RFC 3986 unreserved characters.

" }, "value":{ "shape":"QueryStringKeyValuePairValueString", - "documentation":"

RFC 3986 unreserved characters

" + "documentation":"

The value of the query string parameter to match. Must contain only RFC 3986 unreserved characters.

" } }, - "documentation":"

Key-value pair for query string matching

" + "documentation":"

A key-value pair for query string matching in a routing rule condition.

" }, "QueryStringKeyValuePairKeyString":{ "type":"string", @@ -3453,30 +3460,30 @@ "members":{ "hostHeader":{ "shape":"RuleConditionHostHeaderString", - "documentation":"

Exact host match — RFC 3986 unreserved characters

" + "documentation":"

The exact host header value to match.

" }, "hostHeaderWildcard":{ "shape":"RuleConditionHostHeaderWildcardString", - "documentation":"

Wildcard host pattern (e.g., *.example.com) — RFC 3986 unreserved plus *

" + "documentation":"

A wildcard pattern for host header matching (for example, *.example.com).

" }, "pathPrefix":{ "shape":"RuleConditionPathPrefixString", - "documentation":"

Path prefix matching — strict starts-with, no wildcard (preferred for new rules). Must start with /; RFC 3986 unreserved plus /

" + "documentation":"

The path prefix to match. The request path must start with this value. Must start with /.

" }, "pathExact":{ "shape":"RuleConditionPathExactString", - "documentation":"

Exact path match — must start with /; RFC 3986 unreserved plus /

" + "documentation":"

The exact path to match. Must start with /.

" }, "queryStringEquals":{ "shape":"QueryStringKeyValuePair", - "documentation":"

Query string key=value pair match (single pair)

" + "documentation":"

A query string key-value pair that must be present and match exactly.

" }, "queryStringExists":{ "shape":"RuleConditionQueryStringExistsString", - "documentation":"

Query string key presence check (any value accepted) — RFC 3986 unreserved characters

" + "documentation":"

A query string key that must be present in the request (any value is accepted).

" } }, - "documentation":"

Conditions bag for a routing rule. All non-null fields must match (AND logic). At least one field must be set (enforced by CP).

" + "documentation":"

The conditions for a routing rule. All specified fields must match for the rule to apply (AND logic). At least one condition field must be set.

" }, "RuleConditionHostHeaderString":{ "type":"string", diff --git a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json index 2ae0306215e0..6da02e1cb791 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json @@ -28828,7 +28828,9 @@ "ml.g6.12xlarge", "ml.g6.16xlarge", "ml.g6.24xlarge", - "ml.g6.48xlarge" + "ml.g6.48xlarge", + "ml.p5.4xlarge", + "ml.p5en.48xlarge" ] }, "Integer":{"type":"integer"}, From f0354c7181ee0d85e4d27b06f41c57470253ae21 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 19 May 2026 18:12:03 +0000 Subject: [PATCH 18/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index bfc80ea4667a..4e2b786fdaa8 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -5230,6 +5230,9 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, + "ap-southeast-6" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, @@ -40372,6 +40375,11 @@ "eusc-de-east-1" : { } } }, + "apigateway" : { + "endpoints" : { + "eusc-de-east-1" : { } + } + }, "appconfig" : { "endpoints" : { "eusc-de-east-1" : { } From 8ad9b4eb5f1f9b4e4d1c167c15367871d2e3b66d Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 19 May 2026 18:14:03 +0000 Subject: [PATCH 19/73] Bump version to 2.34.50 --- .changes/2.34.50.json | 32 +++++++++++++++++++ .../api-change-bedrockagentcore-7546.json | 5 --- .../api-change-devopsagent-98663.json | 5 --- .../api-change-grafana-39803.json | 5 --- .../api-change-guardduty-92009.json | 5 --- .../api-change-rtbfabric-50906.json | 5 --- .../api-change-sagemaker-59353.json | 5 --- CHANGELOG.rst | 11 +++++++ awscli/__init__.py | 2 +- configure | 14 ++++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 12 files changed, 53 insertions(+), 40 deletions(-) create mode 100644 .changes/2.34.50.json delete mode 100644 .changes/next-release/api-change-bedrockagentcore-7546.json delete mode 100644 .changes/next-release/api-change-devopsagent-98663.json delete mode 100644 .changes/next-release/api-change-grafana-39803.json delete mode 100644 .changes/next-release/api-change-guardduty-92009.json delete mode 100644 .changes/next-release/api-change-rtbfabric-50906.json delete mode 100644 .changes/next-release/api-change-sagemaker-59353.json diff --git a/.changes/2.34.50.json b/.changes/2.34.50.json new file mode 100644 index 000000000000..65b2e6f29fda --- /dev/null +++ b/.changes/2.34.50.json @@ -0,0 +1,32 @@ +[ + { + "category": "``guardduty``", + "description": "Adding support for exposure and vulnerability context from AWS Security Hub in GuardDuty Extended Threat Detection attack sequence findings.", + "type": "api-change" + }, + { + "category": "``devops-agent``", + "description": "Added a new serviceType mcpserversigv4 service and association. This provides feature to register MCP sigv4 authorization based MCPs", + "type": "api-change" + }, + { + "category": "``grafana``", + "description": "Introduce degraded workspace status as a possible Amazon Managed Grafana workspace status, and a new field named degraded workspace reason which informs customers why the workspace is degraded in the DescribeWorkspace API response.", + "type": "api-change" + }, + { + "category": "``rtbfabric``", + "description": "This release is to deprecate 'inboundLinksCount' field in GetResponderGateway response and introduce the new field 'linksRequestedCount' to replace it.", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "Add support for ml.p5.4xlarge and ml.p5en.48xlarge instances on SageMaker Notebook Instances Platform.", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore``", + "description": "Add RetryableConflictException (HTTP 409) to InvokeAgentRuntime and StopRuntimeSession to prevent orphaned VMs during concurrent session access. The SDK automatically retries this exception with backoff. Enforcement is not yet active and will be enabled in a future service update.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-bedrockagentcore-7546.json b/.changes/next-release/api-change-bedrockagentcore-7546.json deleted file mode 100644 index 6004d31d1011..000000000000 --- a/.changes/next-release/api-change-bedrockagentcore-7546.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore``", - "description": "Add RetryableConflictException (HTTP 409) to InvokeAgentRuntime and StopRuntimeSession to prevent orphaned VMs during concurrent session access. The SDK automatically retries this exception with backoff. Enforcement is not yet active and will be enabled in a future service update." -} diff --git a/.changes/next-release/api-change-devopsagent-98663.json b/.changes/next-release/api-change-devopsagent-98663.json deleted file mode 100644 index c596476de0cb..000000000000 --- a/.changes/next-release/api-change-devopsagent-98663.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``devops-agent``", - "description": "Added a new serviceType mcpserversigv4 service and association. This provides feature to register MCP sigv4 authorization based MCPs" -} diff --git a/.changes/next-release/api-change-grafana-39803.json b/.changes/next-release/api-change-grafana-39803.json deleted file mode 100644 index 6ef966a88de8..000000000000 --- a/.changes/next-release/api-change-grafana-39803.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``grafana``", - "description": "Introduce degraded workspace status as a possible Amazon Managed Grafana workspace status, and a new field named degraded workspace reason which informs customers why the workspace is degraded in the DescribeWorkspace API response." -} diff --git a/.changes/next-release/api-change-guardduty-92009.json b/.changes/next-release/api-change-guardduty-92009.json deleted file mode 100644 index c93949573377..000000000000 --- a/.changes/next-release/api-change-guardduty-92009.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``guardduty``", - "description": "Adding support for exposure and vulnerability context from AWS Security Hub in GuardDuty Extended Threat Detection attack sequence findings." -} diff --git a/.changes/next-release/api-change-rtbfabric-50906.json b/.changes/next-release/api-change-rtbfabric-50906.json deleted file mode 100644 index fa54b05121ab..000000000000 --- a/.changes/next-release/api-change-rtbfabric-50906.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``rtbfabric``", - "description": "This release is to deprecate 'inboundLinksCount' field in GetResponderGateway response and introduce the new field 'linksRequestedCount' to replace it." -} diff --git a/.changes/next-release/api-change-sagemaker-59353.json b/.changes/next-release/api-change-sagemaker-59353.json deleted file mode 100644 index 07549bcec948..000000000000 --- a/.changes/next-release/api-change-sagemaker-59353.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemaker``", - "description": "Add support for ml.p5.4xlarge and ml.p5en.48xlarge instances on SageMaker Notebook Instances Platform." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index eb2007faf732..d5017f3b7164 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,17 @@ CHANGELOG ========= +2.34.50 +======= + +* api-change:``guardduty``: Adding support for exposure and vulnerability context from AWS Security Hub in GuardDuty Extended Threat Detection attack sequence findings. +* api-change:``devops-agent``: Added a new serviceType mcpserversigv4 service and association. This provides feature to register MCP sigv4 authorization based MCPs +* api-change:``grafana``: Introduce degraded workspace status as a possible Amazon Managed Grafana workspace status, and a new field named degraded workspace reason which informs customers why the workspace is degraded in the DescribeWorkspace API response. +* api-change:``rtbfabric``: This release is to deprecate 'inboundLinksCount' field in GetResponderGateway response and introduce the new field 'linksRequestedCount' to replace it. +* api-change:``sagemaker``: Add support for ml.p5.4xlarge and ml.p5en.48xlarge instances on SageMaker Notebook Instances Platform. +* api-change:``bedrock-agentcore``: Add RetryableConflictException (HTTP 409) to InvokeAgentRuntime and StopRuntimeSession to prevent orphaned VMs during concurrent session access. The SDK automatically retries this exception with backoff. Enforcement is not yet active and will be enabled in a future service update. + + 2.34.49 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index eb896b614bf6..ddcfffe8802d 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.49' +__version__ = '2.34.50' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 82aa88faa00a..0424bba8d192 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.49. +# Generated by GNU Autoconf 2.71 for awscli 2.34.50. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.49' -PACKAGE_STRING='awscli 2.34.49' +PACKAGE_VERSION='2.34.50' +PACKAGE_STRING='awscli 2.34.50' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.49 +awscli configure 2.34.50 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.49, which was +It was created by awscli $as_me 2.34.50, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.49, which was +This file was extended by awscli $as_me 2.34.50, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.49 +awscli config.status 2.34.50 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 1051ffec4e64..7701ed3af90b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.49]) +AC_INIT([awscli], [2.34.50]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 12382b9131c6..26875988815f 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.49' +release = '2.34.50' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From a3e94e29085cacaadf6bfb14e3b395dd9dc029d0 Mon Sep 17 00:00:00 2001 From: Steve <106777148+hssyoo@users.noreply.github.com> Date: Wed, 20 May 2026 09:48:58 -0400 Subject: [PATCH 20/73] Validate CloudTrail log files don't have appended data (#10324) --- ...ancement-cloudtrailvalidatelogs-71283.json | 5 ++++ .../customizations/cloudtrail/validation.py | 11 ++++++++ .../functional/cloudtrail/test_validation.py | 27 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 .changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json diff --git a/.changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json b/.changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json new file mode 100644 index 000000000000..4c4b483f45c6 --- /dev/null +++ b/.changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "``cloudtrail validate-logs``", + "description": "Invalidate log files with data appended to the end of the gzip stream." +} diff --git a/awscli/customizations/cloudtrail/validation.py b/awscli/customizations/cloudtrail/validation.py index a29c22ea9f56..150dca481515 100644 --- a/awscli/customizations/cloudtrail/validation.py +++ b/awscli/customizations/cloudtrail/validation.py @@ -1142,6 +1142,9 @@ def _download_log(self, log): remaining_data = gzip_inflater.flush() if remaining_data: rolling_hash.update(remaining_data) + if gzip_inflater.unused_data: + self._on_log_trailing_data(log) + return computed_hash = rolling_hash.hexdigest() if computed_hash != log['hashValue']: self._on_log_invalid(log) @@ -1249,6 +1252,14 @@ def _on_invalid_log_format(self, log_data): True, ) + def _on_log_trailing_data(self, log_data): + self._invalid_logs += 1 + self._write_status( + f'Log file\ts3://{log_data["s3Bucket"]}/{log_data["s3Object"]}\t' + f'INVALID: unexpected data after end of compressed stream', + True, + ) + def _on_log_invalid(self, log_data): self._invalid_logs += 1 self._write_status( diff --git a/tests/functional/cloudtrail/test_validation.py b/tests/functional/cloudtrail/test_validation.py index ac9d2db2a77d..ad386c0b1a2c 100644 --- a/tests/functional/cloudtrail/test_validation.py +++ b/tests/functional/cloudtrail/test_validation.py @@ -380,6 +380,33 @@ def test_fails_and_warns_when_log_hash_is_invalid(self): self.assertIn('1/1 backfill digest files valid', stdout) self.assertIn('0/2 log files valid, 2/2 log files INVALID', stdout) + def test_rejects_multi_member_gzip_log_file(self): + body = _gz_compress(self._logs[0]['_raw_value']) + _gz_compress( + '{"extra":"member"}' + ) + key_provider, digest_provider, validator = create_scenario( + ['gap'], [[self._logs[0]]] + ) + self.parsed_responses = [ + {'LocationConstraint': ''}, + {'Body': BytesIO(body)}, + {'Body': BytesIO(body)}, + ] + _setup_mock_traverser( + self._mock_traverser, key_provider, digest_provider, validator + ) + stdout, stderr, rc = self.run_cmd( + f"cloudtrail validate-logs --trail-arn {TEST_TRAIL_ARN} " + f"--start-time {START_TIME_ARG} --region us-east-1", + 1, + ) + self.assertIn( + 'Log file\ts3://1/key1\t' + 'INVALID: unexpected data after end of compressed stream', + stderr, + ) + self.assertIn('0/2 log files valid, 2/2 log files INVALID', stdout) + def test_validates_valid_log_files(self): key_provider, digest_provider, validator = create_scenario( ['gap', 'link', 'link'], From 9cf44a9dd1c6fbfa0f5edd0e49a4f076f972bded Mon Sep 17 00:00:00 2001 From: Kenneth Daily Date: Wed, 20 May 2026 10:05:06 -0700 Subject: [PATCH 21/73] Add changelog for Python 3.14.5 upgrade --- .changes/next-release/enhancement-Python-12278.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/next-release/enhancement-Python-12278.json diff --git a/.changes/next-release/enhancement-Python-12278.json b/.changes/next-release/enhancement-Python-12278.json new file mode 100644 index 000000000000..fa292da6e333 --- /dev/null +++ b/.changes/next-release/enhancement-Python-12278.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "Python", + "description": "Upgraded bundled Python interpreter to version 3.14.5." +} From 31df879985ede669bf5b99f90881a994c087d04b Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 20 May 2026 18:13:37 +0000 Subject: [PATCH 22/73] Update to latest models --- .../api-change-bedrockruntime-67499.json | 5 + .../api-change-customerprofiles-32576.json | 5 + .../next-release/api-change-kms-15361.json | 5 + .../next-release/api-change-mwaa-34440.json | 5 + ...-change-paymentcryptographydata-26946.json | 5 + .../bedrock-runtime/2023-09-30/service-2.json | 18 +++ .../2020-08-15/service-2.json | 36 ++--- .../data/kms/2014-11-01/service-2.json | 66 +++++++-- .../data/mwaa/2020-07-01/service-2.json | 6 +- .../2022-02-03/service-2.json | 125 ++++++++++++++---- 10 files changed, 220 insertions(+), 56 deletions(-) create mode 100644 .changes/next-release/api-change-bedrockruntime-67499.json create mode 100644 .changes/next-release/api-change-customerprofiles-32576.json create mode 100644 .changes/next-release/api-change-kms-15361.json create mode 100644 .changes/next-release/api-change-mwaa-34440.json create mode 100644 .changes/next-release/api-change-paymentcryptographydata-26946.json diff --git a/.changes/next-release/api-change-bedrockruntime-67499.json b/.changes/next-release/api-change-bedrockruntime-67499.json new file mode 100644 index 000000000000..4b5a09b1628e --- /dev/null +++ b/.changes/next-release/api-change-bedrockruntime-67499.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-runtime``", + "description": "Supporting Request Metadata for Invoke Model and Invoke Model with Response Stream" +} diff --git a/.changes/next-release/api-change-customerprofiles-32576.json b/.changes/next-release/api-change-customerprofiles-32576.json new file mode 100644 index 000000000000..9e07eba10054 --- /dev/null +++ b/.changes/next-release/api-change-customerprofiles-32576.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``customer-profiles``", + "description": "Amazon Connect Customer Profiles adds support for item catalog columns in RecommenderSchema, ExcludedColumns in Create and Update Recommender to specify columns to exclude from training, and the ability to disable automatic retraining by setting TrainingFrequency to 0." +} diff --git a/.changes/next-release/api-change-kms-15361.json b/.changes/next-release/api-change-kms-15361.json new file mode 100644 index 000000000000..6b6af7167def --- /dev/null +++ b/.changes/next-release/api-change-kms-15361.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``kms``", + "description": "AWS KMS now supports creating grants for AWS service principals using new GranteeServicePrincipal and RetiringServicePrincipal parameters. This release adds SourceArn grant constraint and three condition keys for controlling CreateGrant access. For more information, see Grants in AWS KMS." +} diff --git a/.changes/next-release/api-change-mwaa-34440.json b/.changes/next-release/api-change-mwaa-34440.json new file mode 100644 index 000000000000..887a6d6aa270 --- /dev/null +++ b/.changes/next-release/api-change-mwaa-34440.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``mwaa``", + "description": "Updated API documentation to describe the PublicAndPrivate webserver access mode." +} diff --git a/.changes/next-release/api-change-paymentcryptographydata-26946.json b/.changes/next-release/api-change-paymentcryptographydata-26946.json new file mode 100644 index 000000000000..edd5115df8f9 --- /dev/null +++ b/.changes/next-release/api-change-paymentcryptographydata-26946.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``payment-cryptography-data``", + "description": "GenerateAuthRequestCryptogram API launch." +} diff --git a/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json b/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json index b88d8f8dc63e..10d601d0f9be 100644 --- a/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json +++ b/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json @@ -3097,6 +3097,12 @@ "documentation":"

Specifies the processing tier type used for serving the request.

", "location":"header", "locationName":"X-Amzn-Bedrock-Service-Tier" + }, + "requestMetadata":{ + "shape":"RequestMetadataJson", + "documentation":"

Key-value pairs that you can use to filter invocation logs.

", + "location":"header", + "locationName":"X-Amzn-Bedrock-Request-Metadata" } }, "payload":"body" @@ -3276,6 +3282,12 @@ "documentation":"

Specifies the processing tier type used for serving the request.

", "location":"header", "locationName":"X-Amzn-Bedrock-Service-Tier" + }, + "requestMetadata":{ + "shape":"RequestMetadataJson", + "documentation":"

Key-value pairs that you can use to filter invocation logs.

", + "location":"header", + "locationName":"X-Amzn-Bedrock-Request-Metadata" } }, "payload":"body" @@ -3723,6 +3735,12 @@ "min":1, "sensitive":true }, + "RequestMetadataJson":{ + "type":"string", + "max":8500, + "min":0, + "sensitive":true + }, "RequestMetadataKeyString":{ "type":"string", "max":256, diff --git a/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json b/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json index 6b1b8993aa4c..5b1ddb05351f 100644 --- a/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json +++ b/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json @@ -98,7 +98,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a domain, which is a container for all customer data, such as customer profile attributes, object types, profile keys, and encryption keys. You can create multiple domains, and each domain can have multiple third-party integrations.

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be associated with one domain.

Use this API or UpdateDomain to enable identity resolution: set Matching to true.

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply.

It is not possible to associate a Customer Profiles domain with an Amazon Connect Instance directly from the API. If you would like to create a domain and associate a Customer Profiles domain, use the Amazon Connect admin website. For more information, see Enable Customer Profiles.

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be associated with one domain.

" + "documentation":"

Creates a domain, which is a container for all customer data, such as customer profile attributes, object types, profile keys, and encryption keys. You can create multiple domains, and each domain can have multiple third-party integrations.

Each Connect Customer instance can be associated with only one domain. Multiple Connect Customer instances can be associated with one domain.

Use this API or UpdateDomain to enable identity resolution: set Matching to true.

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply.

It is not possible to associate a Customer Profiles domain with an Amazon Connect Instance directly from the API. If you would like to create a domain and associate a Customer Profiles domain, use the Amazon Connect admin website. For more information, see Enable Customer Profiles.

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be associated with one domain.

" }, "CreateDomainLayout":{ "name":"CreateDomainLayout", @@ -132,7 +132,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates an event stream, which is a subscription to real-time events, such as when profiles are created and updated through Amazon Connect Customer Profiles.

Each event stream can be associated with only one Kinesis Data Stream destination in the same region and Amazon Web Services account as the customer profiles domain

" + "documentation":"

Creates an event stream, which is a subscription to real-time events, such as when profiles are created and updated through Connect Customer Customer Profiles.

Each event stream can be associated with only one Kinesis Data Stream destination in the same region and Amazon Web Services account as the customer profiles domain

" }, "CreateEventTrigger":{ "name":"CreateEventTrigger", @@ -3036,7 +3036,7 @@ }, "RuleBasedMatching":{ "shape":"RuleBasedMatchingRequest", - "documentation":"

The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" + "documentation":"

The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Connect Customer Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" }, "DataStore":{ "shape":"DataStoreRequest", @@ -3079,7 +3079,7 @@ }, "RuleBasedMatching":{ "shape":"RuleBasedMatchingResponse", - "documentation":"

The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" + "documentation":"

The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Connect Customer Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" }, "DataStore":{ "shape":"DataStoreResponse", @@ -3538,7 +3538,7 @@ }, "Fields":{ "shape":"RecommenderSchemaFields", - "documentation":"

A map of dataset type to column definitions that specifies which data columns to include in the schema. Currently only the _webAnalytics key is supported.

" + "documentation":"

A map of dataset type to column definitions that specifies which data columns to include in the schema. The _webAnalytics and _catalogItem keys are supported.

" }, "Tags":{ "shape":"TagMap", @@ -3736,7 +3736,7 @@ }, "DestinationUri":{ "shape":"string1To255", - "documentation":"

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website.

" + "documentation":"

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Connect Customer Admin Website.

" } } }, @@ -5508,7 +5508,7 @@ }, "RuleBasedMatching":{ "shape":"RuleBasedMatchingResponse", - "documentation":"

The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" + "documentation":"

The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Connect Customer Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" }, "DataStore":{ "shape":"DataStoreResponse", @@ -6670,7 +6670,7 @@ }, "DestinationUri":{ "shape":"string1To255", - "documentation":"

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website.

" + "documentation":"

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Connect Customer Admin Website.

" } } }, @@ -7106,7 +7106,7 @@ "InferenceConfigMinProvisionedTPSInteger":{ "type":"integer", "box":true, - "max":500, + "max":1000, "min":1 }, "IntegrationConfig":{ @@ -9911,7 +9911,7 @@ }, "TrainingFrequency":{ "shape":"RecommenderConfigTrainingFrequencyInteger", - "documentation":"

How often the recommender should retrain its model with new data.

" + "documentation":"

How often the recommender should retrain its model with new data. If set to 0, automatic retraining will not be enabled.

" }, "InferenceConfig":{ "shape":"InferenceConfig", @@ -9919,7 +9919,11 @@ }, "IncludedColumns":{ "shape":"IncludedColumns", - "documentation":"

A map of dataset type to a list of column names to train on. The column names must be a subset of the columns defined in the recommender schema. If not specified, all columns in the schema are used for training. The following columns are always included and do not need to be specified: Item.Id, ItemList[].Id, EventTimestamp, EventType, and EventValue.

" + "documentation":"

A map of dataset type to a list of column names to train on. The _webAnalytics and _catalogItem keys are supported. The column names must be a subset of the columns defined in the recommender schema. If not specified, all columns in the schema are used for training. The following columns are always included in training and do not need to be specified: Item.Id, EventTimestamp, and EventType for _webAnalytics; Id for _catalogItem. Mutually exclusive with ExcludedColumns — both cannot be specified in the same request.

" + }, + "ExcludedColumns":{ + "shape":"IncludedColumns", + "documentation":"

A map of dataset type to a list of column names to exclude from training. The _webAnalytics and _catalogItem keys are supported. The column names must be valid columns defined in the recommender schema. All columns in the schema except the listed columns will be used for training. The following columns are mandatory and cannot be excluded: Item.Id, EventTimestamp, and EventType for _webAnalytics; Id for _catalogItem. Mutually exclusive with IncludedColumns — both cannot be specified in the same request.

" } }, "documentation":"

Configuration settings that define the behavior and parameters of a recommender.

" @@ -9928,7 +9932,7 @@ "type":"integer", "box":true, "max":30, - "min":1 + "min":0 }, "RecommenderContext":{ "type":"map", @@ -10120,7 +10124,7 @@ "type":"map", "key":{"shape":"String"}, "value":{"shape":"RecommenderSchemaFieldList"}, - "max":1, + "max":2, "min":1 }, "RecommenderSchemaStatus":{ @@ -11545,7 +11549,7 @@ }, "RuleBasedMatching":{ "shape":"RuleBasedMatchingRequest", - "documentation":"

The process of matching duplicate profiles using the rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" + "documentation":"

The process of matching duplicate profiles using the rule-Based matching. If RuleBasedMatching = true, Connect Customer Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" }, "DataStore":{ "shape":"DataStoreRequest", @@ -11587,7 +11591,7 @@ }, "RuleBasedMatching":{ "shape":"RuleBasedMatchingResponse", - "documentation":"

The process of matching duplicate profiles using the rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" + "documentation":"

The process of matching duplicate profiles using the rule-Based matching. If RuleBasedMatching = true, Connect Customer Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.

" }, "DataStore":{ "shape":"DataStoreResponse", @@ -12240,5 +12244,5 @@ "pattern":"[a-f0-9]{32}" } }, - "documentation":"Amazon Connect Customer Profiles

Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center.

For more information about the Amazon Connect Customer Profiles feature, see Use Customer Profiles in the Amazon Connect Administrator's Guide.

" + "documentation":"Connect Customer Customer Profiles

Connect Customer Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Connect Customer contact center.

For more information about the Connect Customer Customer Profiles feature, see Use Customer Profiles in the Connect Customer Administrator's Guide.

" } diff --git a/awscli/botocore/data/kms/2014-11-01/service-2.json b/awscli/botocore/data/kms/2014-11-01/service-2.json index 72653b09f67b..e27ca3cb1b40 100644 --- a/awscli/botocore/data/kms/2014-11-01/service-2.json +++ b/awscli/botocore/data/kms/2014-11-01/service-2.json @@ -115,7 +115,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"DryRunOperationException"} ], - "documentation":"

Adds a grant to a KMS key.

A grant is a policy instrument that allows Amazon Web Services principals to use KMS keys in cryptographic operations. It also can allow them to view a KMS key (DescribeKey) and create and manage grants. When authorizing access to a KMS key, grants are considered along with key policies and IAM policies. Grants are often used for temporary permissions because you can create one, use its permissions, and delete it without changing your key policies or IAM policies.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of creating grants in several programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

The CreateGrant operation returns a GrantToken and a GrantId.

  • When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. Once the grant has achieved eventual consistency, the grantee principal can use the permissions in the grant without identifying the grant.

    However, to use the permissions in the grant immediately, use the GrantToken that CreateGrant returns. For details, see Using a grant token in the Key Management Service Developer Guide .

  • The CreateGrant operation also returns a GrantId. You can use the GrantId and a key identifier to identify the grant in the RetireGrant and RevokeGrant operations. To find the grant ID, use the ListGrants or ListRetirableGrants operations.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:CreateGrant (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

Adds a grant to a KMS key.

A grant is a policy instrument that allows Amazon Web Services principals to use KMS keys in cryptographic operations. It also can allow them to view a KMS key (DescribeKey) and create and manage grants. When authorizing access to a KMS key, grants are considered along with key policies and IAM policies. Grants are often used for temporary permissions because you can create one, use its permissions, and delete it without changing your key policies or IAM policies.

You can create a grant for an Amazon Web Services principal (IAM user, IAM role, or Amazon Web Services account) by specifying the GranteePrincipal parameter. You can also create a grant for an Amazon Web Services service principal by specifying the GranteeServicePrincipal parameter.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of creating grants in several programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

The CreateGrant operation returns a GrantToken and a GrantId.

  • When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. Once the grant has achieved eventual consistency, the grantee principal can use the permissions in the grant without identifying the grant.

    However, to use the permissions in the grant immediately, use the GrantToken that CreateGrant returns. For details, see Using a grant token in the Key Management Service Developer Guide .

  • The CreateGrant operation also returns a GrantId. You can use the GrantId and a key identifier to identify the grant in the RetireGrant and RevokeGrant operations. To find the grant ID, use the ListGrants or ListRetirableGrants operations.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:CreateGrant (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "CreateKey":{ "name":"CreateKey", @@ -641,7 +641,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Gets a list of all grants for the specified KMS key.

You must specify the KMS key in all requests. You can filter the grant list by grant ID or grantee principal.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of creating grants in several programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

The GranteePrincipal field in the ListGrants response usually contains the user or role designated as the grantee principal in the grant. However, when the grantee principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains the service principal, which might represent several different grantee principals.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:ListGrants (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

Gets a list of all grants for the specified KMS key.

You must specify the KMS key in all requests. You can filter the grant list by grant ID, grantee principal, or grantee service principal.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of creating grants in several programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

When a grant is created with the GranteePrincipal field, the ListGrants response usually contains the user or role designated as the grantee principal in the grant. However, if the grantee principal is an Amazon Web Services service, the GranteePrincipal field contains an Amazon Web Services service principal, which might correspond to several different grantee principals, such as an IAM user, IAM role, or Amazon Web Services account.

When a grant is created with the GranteeServicePrincipal field, the ListGrants response always includes a GranteeServicePrincipal that indicates the grantee is actually an Amazon Web Services service principal.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:ListGrants (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "ListKeyPolicies":{ "name":"ListKeyPolicies", @@ -724,7 +724,7 @@ {"shape":"NotFoundException"}, {"shape":"KMSInternalException"} ], - "documentation":"

Returns information about all grants in the Amazon Web Services account and Region that have the specified retiring principal.

You can specify any principal in your Amazon Web Services account. The grants that are returned include grants for KMS keys in your Amazon Web Services account and other Amazon Web Services accounts. You might use this operation to determine which grants you may retire. To retire a grant, use the RetireGrant operation.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of creating grants in several programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

Cross-account use: You must specify a principal in your Amazon Web Services account. This operation returns a list of grants where the retiring principal specified in the ListRetirableGrants request is the same retiring principal on the grant. This can include grants on KMS keys owned by other Amazon Web Services accounts, but you do not need kms:ListRetirableGrants permission (or any other additional permission) in any Amazon Web Services account other than your own.

Required permissions: kms:ListRetirableGrants (IAM policy) in your Amazon Web Services account.

KMS authorizes ListRetirableGrants requests by evaluating the caller account's kms:ListRetirableGrants permissions. The authorized resource in ListRetirableGrants calls is the retiring principal specified in the request. KMS does not evaluate the caller's permissions to verify their access to any KMS keys or grants that might be returned by the ListRetirableGrants call.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

Returns information about all grants in the Amazon Web Services account and Region that have the specified retiring principal or retiring service principal.

You can specify any principal in your Amazon Web Services account. The grants that are returned include grants for KMS keys in your Amazon Web Services account and other Amazon Web Services accounts. You might use this operation to determine which grants you may retire. To retire a grant, use the RetireGrant operation.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of creating grants in several programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

Cross-account use: You must specify a principal in your Amazon Web Services account. This operation returns a list of grants where the retiring principal specified in the ListRetirableGrants request is the same retiring principal on the grant. This can include grants on KMS keys owned by other Amazon Web Services accounts, but you do not need kms:ListRetirableGrants permission (or any other additional permission) in any Amazon Web Services account other than your own.

Required permissions: kms:ListRetirableGrants (IAM policy) in your Amazon Web Services account.

When listing retirable grants by RetiringPrincipal, KMS authorizes ListRetirableGrants requests by evaluating the caller account's kms:ListRetirableGrants permissions. The authorized resource in ListRetirableGrants calls is the retiring principal specified in the request. KMS does not evaluate the caller's permissions to verify their access to any KMS keys or grants that might be returned by the ListRetirableGrants call.

The RetiringServicePrincipal filter is only usable by callers in a service principal.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "PutKeyPolicy":{ "name":"PutKeyPolicy", @@ -766,7 +766,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"DryRunOperationException"} ], - "documentation":"

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this operation to change the KMS key under which data is encrypted, such as when you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also use it to reencrypt ciphertext under the same KMS key, such as to change the encryption context of a ciphertext.

The ReEncrypt operation can decrypt ciphertext that was encrypted by using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

When you use the ReEncrypt operation, you need to provide information for the decrypt operation and the subsequent encrypt operation.

  • If your ciphertext was encrypted under an asymmetric KMS key, you must use the SourceKeyId parameter to identify the KMS key that encrypted the ciphertext. You must also supply the encryption algorithm that was used. This information is required to decrypt the data.

  • If your ciphertext was encrypted under a symmetric encryption KMS key, the SourceKeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the source KMS key is always recommended as a best practice. When you use the SourceKeyId parameter to specify a KMS key, KMS uses only the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the ReEncrypt operation fails. This practice ensures that you use the KMS key that you intend.

  • To reencrypt the data, you must use the DestinationKeyId parameter to specify the KMS key that re-encrypts the data after it is decrypted. If the destination KMS key is an asymmetric KMS key, you must also provide the encryption algorithm. The algorithm that you choose must be compatible with the KMS key.

    When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

    You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than the caller. To specify a KMS key in a different account, use the key ARN or alias ARN. A short key ID is also acceptable for the source key when decrypting symmetric ciphertexts, though using a full key ARN is recommended to be more explicit about the intended KMS key.

Required permissions:

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\" permission in your key policy. This permission is automatically included in the key policy when you use the console to create a KMS key. But you must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this operation to change the KMS key under which data is encrypted, such as when you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also use it to reencrypt ciphertext under the same KMS key, such as to change the encryption context of a ciphertext.

The ReEncrypt operation can decrypt ciphertext that was encrypted by using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

When you use the ReEncrypt operation, you need to provide information for the decrypt operation and the subsequent encrypt operation.

  • If your ciphertext was encrypted under an asymmetric KMS key, you must use the SourceKeyId parameter to identify the KMS key that encrypted the ciphertext. You must also supply the encryption algorithm that was used. This information is required to decrypt the data.

  • If your ciphertext was encrypted under a symmetric encryption KMS key, the SourceKeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the source KMS key is always recommended as a best practice. When you use the SourceKeyId parameter to specify a KMS key, KMS uses only the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the ReEncrypt operation fails. This practice ensures that you use the KMS key that you intend.

  • To reencrypt the data, you must use the DestinationKeyId parameter to specify the KMS key that re-encrypts the data after it is decrypted. If the destination KMS key is an asymmetric KMS key, you must also provide the encryption algorithm. The algorithm that you choose must be compatible with the KMS key.

    When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

    You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

When using grants with SourceArn constraints for ReEncrypt operations, the grants on both the source KMS key (for ReEncryptFrom) and the destination KMS key (for ReEncryptTo) must specify the same SourceArn value.

Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than the caller. To specify a KMS key in a different account, use the key ARN or alias ARN. A short key ID is also acceptable for the source key when decrypting symmetric ciphertexts, though using a full key ARN is recommended to be more explicit about the intended KMS key.

Required permissions:

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\" permission in your key policy. This permission is automatically included in the key policy when you use the console to create a KMS key. But you must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "ReplicateKey":{ "name":"ReplicateKey", @@ -1333,7 +1333,6 @@ "type":"structure", "required":[ "KeyId", - "GranteePrincipal", "Operations" ], "members":{ @@ -1343,11 +1342,11 @@ }, "GranteePrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The identity that gets the permissions specified in the grant.

To specify the grantee principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

" + "documentation":"

The identity that gets the permissions specified in the grant.

To specify the grantee principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

You must specify either GranteePrincipal or GranteeServicePrincipal, but not both.

" }, "RetiringPrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The principal that has permission to use the RetireGrant operation to retire the grant.

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

The grant determines the retiring principal. Other principals might have permission to retire the grant or revoke the grant. For details, see RevokeGrant and Retiring and revoking grants in the Key Management Service Developer Guide.

" + "documentation":"

The principal that has permission to use the RetireGrant operation to retire the grant.

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

The grant determines the retiring principal. Other principals might have permission to retire the grant or revoke the grant. For details, see RevokeGrant and Retiring and revoking grants in the Key Management Service Developer Guide.

You can specify either RetiringPrincipal or RetiringServicePrincipal, but not both.

" }, "Operations":{ "shape":"GrantOperationList", @@ -1355,7 +1354,7 @@ }, "Constraints":{ "shape":"GrantConstraints", - "documentation":"

Specifies a grant constraint.

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

KMS supports the EncryptionContextEquals and EncryptionContextSubset grant constraints, which allow the permissions in the grant only when the encryption context in the request matches (EncryptionContextEquals) or includes (EncryptionContextSubset) the encryption context specified in the constraint.

The encryption context grant constraints are supported only on grant operations that include an EncryptionContext parameter, such as cryptographic operations on symmetric encryption KMS keys. Grants with grant constraints can include the DescribeKey and RetireGrant operations, but the constraint doesn't apply to these operations. If a grant with a grant constraint includes the CreateGrant operation, the constraint requires that any grants created with the CreateGrant permission have an equally strict or stricter encryption context constraint.

You cannot use an encryption context grant constraint for cryptographic operations with asymmetric KMS keys or HMAC KMS keys. Operations with these keys don't support an encryption context.

Each constraint value can include up to 8 encryption context pairs. The encryption context value in each constraint cannot exceed 384 characters. For information about grant constraints, see Using grant constraints in the Key Management Service Developer Guide. For more information about encryption context, see Encryption context in the Key Management Service Developer Guide .

" + "documentation":"

Specifies a grant constraint.

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

KMS supports the following grant constraints.

  • EncryptionContextEquals and EncryptionContextSubset — These encryption context grant constraints allow the permissions in the grant only when the encryption context in the request matches (EncryptionContextEquals) or includes (EncryptionContextSubset) the encryption context specified in the constraint.

    Encryption context grant constraints are supported only on grant operations that include an EncryptionContext parameter, such as cryptographic operations on symmetric encryption KMS keys. You cannot use an encryption context grant constraint for cryptographic operations with asymmetric KMS keys or HMAC KMS keys. Operations with these keys don't support an encryption context. Grants with encryption context grant constraints can include the DescribeKey and RetireGrant operations, but the constraint doesn't apply to these operations. If a grant with an encryption context grant constraint includes the CreateGrant operation, the constraint requires that any grants created with the CreateGrant permission have an equally strict or stricter encryption context constraint.

    Each constraint value can include up to 8 encryption context pairs. The encryption context value in each constraint cannot exceed 384 characters. For more information about encryption context, see Encryption context in the Key Management Service Developer Guide .

  • SourceArn — This grant constraint allows the permissions in the grant only when the request is made on behalf of a specific Amazon Web Services resource, identified by its Amazon Resource Name (ARN). This is effectively the same as having the aws:SourceArn global condition key in the grant. The SourceArn constraint is supported on grants for all types of KMS keys and can also be applied to the DescribeKey operation when specified in the request. However, it does not apply to RetireGrant operation.

For information about grant constraints, see Using grant constraints in the Key Management Service Developer Guide.

" }, "GrantTokens":{ "shape":"GrantTokenList", @@ -1368,6 +1367,14 @@ "DryRun":{ "shape":"NullableBooleanType", "documentation":"

Checks if your request will succeed. DryRun is an optional parameter.

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + }, + "GranteeServicePrincipal":{ + "shape":"ServicePrincipalType", + "documentation":"

The Amazon Web Services service principal that gets the permissions specified in the grant.

When you specify a GranteeServicePrincipal, you must also specify a SourceArn grant constraint. In addition, you must specify either a RetiringPrincipal or a RetiringServicePrincipal.

You must specify either GranteePrincipal or GranteeServicePrincipal, but not both.

" + }, + "RetiringServicePrincipal":{ + "shape":"ServicePrincipalType", + "documentation":"

The Amazon Web Services service principal that has permission to use the RetireGrant operation to retire the grant.

You can specify either RetiringPrincipal or RetiringServicePrincipal, but not both.

" } } }, @@ -2488,6 +2495,12 @@ } } }, + "GrantConstraintSourceArnType":{ + "type":"string", + "max":512, + "min":20, + "pattern":"^arn:aws[a-z0-9-]*:[a-z0-9-]+:[a-z0-9-]*:[0-9]{12}:.+$" + }, "GrantConstraints":{ "type":"structure", "members":{ @@ -2498,9 +2511,13 @@ "EncryptionContextEquals":{ "shape":"EncryptionContextType", "documentation":"

A list of key-value pairs that must match the encryption context in the cryptographic operation request. The grant allows the operation only when the encryption context in the request is the same as the encryption context specified in this constraint.

" + }, + "SourceArn":{ + "shape":"GrantConstraintSourceArnType", + "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services resource on behalf of which the request is made. This is effectively the same as having the aws:SourceArn global condition key in the grant. The SourceArn constraint ensures that the principal can use the KMS key only when the request is made on behalf of the specified resource.

" } }, - "documentation":"

Use this structure to allow cryptographic operations in the grant only when the operation request includes the specified encryption context.

KMS applies the grant constraints only to cryptographic operations that support an encryption context, that is, all cryptographic operations with a symmetric KMS key. Grant constraints are not applied to operations that do not support an encryption context, such as cryptographic operations with asymmetric KMS keys and management operations, such as DescribeKey or RetireGrant.

In a cryptographic operation, the encryption context in the decryption operation must be an exact, case-sensitive match for the keys and values in the encryption context of the encryption operation. Only the order of the pairs can vary.

However, in a grant constraint, the key in each key-value pair is not case sensitive, but the value is case sensitive.

To avoid confusion, do not use multiple encryption context pairs that differ only by case. To require a fully case-sensitive encryption context, use the kms:EncryptionContext: and kms:EncryptionContextKeys conditions in an IAM or key policy. For details, see kms:EncryptionContext:context-key in the Key Management Service Developer Guide .

" + "documentation":"

Use this structure to allow cryptographic operations in the grant only when the operation request meets the specified constraints.

KMS supports the following grant constraints:

  • EncryptionContextEquals and EncryptionContextSubset — These encryption context constraints apply only to cryptographic operations that support an encryption context, that is, all cryptographic operations with a symmetric KMS key. Encryption context grant constraints are not applied to operations that do not support an encryption context, such as cryptographic operations with asymmetric KMS keys and management operations, such as DescribeKey or RetireGrant.

    In a cryptographic operation, the encryption context in the decryption operation must be an exact, case-sensitive match for the keys and values in the encryption context of the encryption operation. Only the order of the pairs can vary.

    However, in a grant constraint, the key in each key-value pair is not case sensitive, but the value is case sensitive.

    To avoid confusion, do not use multiple encryption context pairs that differ only by case. To require a fully case-sensitive encryption context, use the kms:EncryptionContext: and kms:EncryptionContextKeys conditions in an IAM or key policy. For details, see kms:EncryptionContext:context-key in the Key Management Service Developer Guide .

  • SourceArn — This grant constraint allows the permissions in the grant only when the request is made on behalf of a specific Amazon Web Services resource, identified by its Amazon Resource Name (ARN). This is effectively the same as having the aws:SourceArn global condition key in the grant. The SourceArn constraint is supported on grants for all types of KMS keys and can also be applied to the DescribeKey operation when specified in the request. However, it does not apply to RetireGrant operation.

" }, "GrantIdType":{ "type":"string", @@ -2532,7 +2549,7 @@ }, "GranteePrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The identity that gets the permissions in the grant.

The GranteePrincipal field in the ListGrants response usually contains the user or role designated as the grantee principal in the grant. However, when the grantee principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains the service principal, which might represent several different grantee principals.

" + "documentation":"

The identity that gets the permissions in the grant.

When a grant is created with the GranteePrincipal field, the ListGrants response usually contains the user or role designated as the grantee principal in the grant. However, if the grantee principal is an Amazon Web Services service, the GranteePrincipal field contains an Amazon Web Services service principal, which might correspond to several different grantee principals, such as an IAM user, IAM role, or Amazon Web Services account.

" }, "RetiringPrincipal":{ "shape":"PrincipalIdType", @@ -2548,7 +2565,15 @@ }, "Constraints":{ "shape":"GrantConstraints", - "documentation":"

A list of key-value pairs that must be present in the encryption context of certain subsequent operations that the grant allows.

" + "documentation":"

The constraints on the grant, such as encryption context pairs or a SourceArn, that restrict the subsequent operations the grant allows.

" + }, + "GranteeServicePrincipal":{ + "shape":"ServicePrincipalType", + "documentation":"

The Amazon Web Services service principal that gets the permissions in the grant.

" + }, + "RetiringServicePrincipal":{ + "shape":"ServicePrincipalType", + "documentation":"

The Amazon Web Services service principal that can retire the grant.

" } }, "documentation":"

Contains information about a grant.

" @@ -3131,7 +3156,11 @@ }, "GranteePrincipal":{ "shape":"PrincipalIdType", - "documentation":"

Returns only grants where the specified principal is the grantee principal for the grant.

" + "documentation":"

Returns only grants where the specified principal is the grantee principal for the grant.

You can specify either GranteePrincipal or GranteeServicePrincipal, but not both.

" + }, + "GranteeServicePrincipal":{ + "shape":"ServicePrincipalType", + "documentation":"

Returns only grants where the specified Amazon Web Services service principal is the grantee service principal for the grant. This filter is only usable by callers in a service principal.

You can specify either GranteePrincipal or GranteeServicePrincipal, but not both.

" } } }, @@ -3293,7 +3322,6 @@ }, "ListRetirableGrantsRequest":{ "type":"structure", - "required":["RetiringPrincipal"], "members":{ "Limit":{ "shape":"LimitType", @@ -3305,7 +3333,11 @@ }, "RetiringPrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The retiring principal for which to list grants. Enter a principal in your Amazon Web Services account.

To specify the retiring principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

" + "documentation":"

The retiring principal for which to list grants. Enter a principal in your Amazon Web Services account.

To specify the retiring principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

You must specify either RetiringPrincipal or RetiringServicePrincipal, but not both.

" + }, + "RetiringServicePrincipal":{ + "shape":"ServicePrincipalType", + "documentation":"

The retiring service principal for which to list grants. This filter is only usable by callers in a service principal.

You must specify either RetiringPrincipal or RetiringServicePrincipal, but not both.

" } } }, @@ -3776,6 +3808,12 @@ } } }, + "ServicePrincipalType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([A-Za-z0-9\\-]+)\\.([A-Za-z0-9\\-]+)(\\.[A-Za-z0-9\\-]+)+$" + }, "SignRequest":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/mwaa/2020-07-01/service-2.json b/awscli/botocore/data/mwaa/2020-07-01/service-2.json index fd88bc8dc0dd..1824f0da2646 100644 --- a/awscli/botocore/data/mwaa/2020-07-01/service-2.json +++ b/awscli/botocore/data/mwaa/2020-07-01/service-2.json @@ -399,7 +399,7 @@ }, "WebserverAccessMode":{ "shape":"WebserverAccessMode", - "documentation":"

Defines the access mode for the Apache Airflow web server. For more information, refer to Apache Airflow access modes.

" + "documentation":"

Defines the access mode for the Apache Airflow web server. For more information, refer to Apache Airflow access modes.

If set to PUBLIC_AND_PRIVATE, creates both a public network load balancer (NLB) for browser access and a private VPC endpoint (VPCE) for worker-to-webserver communication. This mode is only available for Apache Airflow version 3.2 and later.

" }, "MinWorkers":{ "shape":"MinWorkers", @@ -630,7 +630,7 @@ }, "WebserverAccessMode":{ "shape":"WebserverAccessMode", - "documentation":"

The Apache Airflow web server access mode. For more information, refer to Apache Airflow access modes.

" + "documentation":"

The Apache Airflow web server access mode. For more information, refer to Apache Airflow access modes.

If set to PUBLIC_AND_PRIVATE, creates both a public network load balancer (NLB) for browser access and a private VPC endpoint (VPCE) for worker-to-webserver communication. This mode is only available for Apache Airflow version 3.2 and later.

" }, "MinWorkers":{ "shape":"MinWorkers", @@ -1466,7 +1466,7 @@ }, "WebserverAccessMode":{ "shape":"WebserverAccessMode", - "documentation":"

The Apache Airflow Web server access mode. For more information, refer to Apache Airflow access modes.

" + "documentation":"

The Apache Airflow Web server access mode. For more information, refer to Apache Airflow access modes.

If set to PUBLIC_AND_PRIVATE, creates both a public network load balancer (NLB) for browser access and a private VPC endpoint (VPCE) for worker-to-webserver communication. This mode is only available for Apache Airflow version 3.2 and later.

" }, "WeeklyMaintenanceWindowStart":{ "shape":"WeeklyMaintenanceWindowStart", diff --git a/awscli/botocore/data/payment-cryptography-data/2022-02-03/service-2.json b/awscli/botocore/data/payment-cryptography-data/2022-02-03/service-2.json index 17dadde2096e..b6d34c71f97a 100644 --- a/awscli/botocore/data/payment-cryptography-data/2022-02-03/service-2.json +++ b/awscli/botocore/data/payment-cryptography-data/2022-02-03/service-2.json @@ -29,7 +29,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Decrypts ciphertext data to plaintext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see Decrypt data in the Amazon Web Services Payment Cryptography User Guide.

You can use an decryption key generated within Amazon Web Services Payment Cryptography, or you can import your own decryption key by calling ImportKey. For this operation, the key must have KeyModesOfUse set to Decrypt. In asymmetric decryption, Amazon Web Services Payment Cryptography decrypts the ciphertext using the private component of the asymmetric encryption key pair. For data encryption outside of Amazon Web Services Payment Cryptography, you can export the public component of the asymmetric key pair by calling GetPublicCertificate.

This operation also supports dynamic keys, allowing you to pass a dynamic decryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To decrypt using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped decryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

For symmetric and DUKPT decryption, Amazon Web Services Payment Cryptography supports TDES and AES algorithms. For EMV decryption, Amazon Web Services Payment Cryptography supports TDES algorithms. For asymmetric decryption, Amazon Web Services Payment Cryptography supports RSA.

When you use TDES or TDES DUKPT, the ciphertext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the ciphertext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Decrypts ciphertext data to plaintext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see Decrypt data in the Amazon Web Services Payment Cryptography User Guide.

You can use an decryption key generated within Amazon Web Services Payment Cryptography, or you can import your own decryption key by calling ImportKey. For this operation, the key must have KeyModesOfUse set to Decrypt. In asymmetric decryption, Amazon Web Services Payment Cryptography decrypts the ciphertext using the private component of the asymmetric encryption key pair. For data encryption outside of Amazon Web Services Payment Cryptography, you can export the public component of the asymmetric key pair by calling GetPublicCertificate.

This operation also supports dynamic keys, allowing you to pass a dynamic decryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To decrypt using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped decryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

For symmetric and DUKPT decryption, Amazon Web Services Payment Cryptography supports TDES and AES algorithms. For EMV decryption, Amazon Web Services Payment Cryptography supports TDES algorithms. For asymmetric decryption, Amazon Web Services Payment Cryptography supports RSA.

When you use TDES or TDES DUKPT, the ciphertext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the ciphertext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "EncryptData":{ "name":"EncryptData", @@ -47,7 +47,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Encrypts plaintext data to ciphertext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see Encrypt data in the Amazon Web Services Payment Cryptography User Guide.

You can generate an encryption key within Amazon Web Services Payment Cryptography by calling CreateKey. You can import your own encryption key by calling ImportKey.

For this operation, the key must have KeyModesOfUse set to Encrypt. In asymmetric encryption, plaintext is encrypted using public component. You can import the public component of an asymmetric key pair created outside Amazon Web Services Payment Cryptography by calling ImportKey.

This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To encrypt using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports TDES and AES algorithms. For EMV encryption, Amazon Web Services Payment Cryptography supports TDES algorithms.For asymmetric encryption, Amazon Web Services Payment Cryptography supports RSA.

When you use TDES or TDES DUKPT, the plaintext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the plaintext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.

To encrypt using DUKPT, you must already have a BDK (Base Derivation Key) key in your account with KeyModesOfUse set to DeriveKey, or you can generate a new DUKPT key by calling CreateKey. To encrypt using EMV, you must already have an IMK (Issuer Master Key) key in your account with KeyModesOfUse set to DeriveKey.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Encrypts plaintext data to ciphertext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see Encrypt data in the Amazon Web Services Payment Cryptography User Guide.

You can generate an encryption key within Amazon Web Services Payment Cryptography by calling CreateKey. You can import your own encryption key by calling ImportKey.

For this operation, the key must have KeyModesOfUse set to Encrypt. In asymmetric encryption, plaintext is encrypted using public component. You can import the public component of an asymmetric key pair created outside Amazon Web Services Payment Cryptography by calling ImportKey.

This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To encrypt using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports TDES and AES algorithms. For EMV encryption, Amazon Web Services Payment Cryptography supports TDES algorithms.For asymmetric encryption, Amazon Web Services Payment Cryptography supports RSA.

When you use TDES or TDES DUKPT, the plaintext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the plaintext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.

To encrypt using DUKPT, you must already have a BDK (Base Derivation Key) key in your account with KeyModesOfUse set to DeriveKey, or you can generate a new DUKPT key by calling CreateKey. To encrypt using EMV, you must already have an IMK (Issuer Master Key) key in your account with KeyModesOfUse set to DeriveKey.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "GenerateAs2805KekValidation":{ "name":"GenerateAs2805KekValidation", @@ -65,7 +65,25 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Establishes node-to-node initialization between payment processing nodes such as an acquirer, issuer or payment network using Australian Standard 2805 (AS2805).

During node-to-node initialization, both communicating nodes must validate that they possess the correct Key Encrypting Keys (KEKs) before proceeding with session key exchange. In AS2805, the sending KEK (KEKs) of one node corresponds to the receiving KEK (KEKr) of its partner node. Each node uses its KEK to encrypt and decrypt session keys exchanged between the nodes. A KEK can be created or imported into Amazon Web Services Payment Cryptography using either the CreateKey or ImportKey operations.

The node initiating communication can use GenerateAS2805KekValidation to generate a combined KEK validation request and KEK validation response to send to the partnering node for validation. When invoked, the API internally generates a random sending key encrypted under KEKs and provides a receiving key encrypted under KEKr as response. The initiating node sends the response returned by this API to its partner for validation.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

" + "documentation":"

Generates a KekValidationRequest or a KekValidationResponse for node-to-node initialization between payment processing nodes using Australian Standard 2805 (AS2805).

During node-to-node initialization, both communicating nodes must validate that they possess the correct Key Encrypting Keys (KEKs) before proceeding with session key exchange. In AS2805, the sending KEK (KEKs) of one node corresponds to the receiving KEK (KEKr) of its partner node. Each node uses its KEK to encrypt and decrypt session keys exchanged between the nodes. A KEK can be created or imported into Amazon Web Services Payment Cryptography using either the CreateKey or ImportKey operations.

To use GenerateAs2805KekValidation to generate a KEK validation request, set KekValidationType to KekValidationRequest. This operation returns both RandomKeySend (KRs) and RandomKeyReceive (KRr) as response values. The partnering node receives the KRs, uses its KEKr to decrypt it, and generates a KRr which is an inverted value of KRs. The node receiving the KRr validates it against its own KRr generated during KEK validation request outside of Amazon Web Services Payment Cryptography.

You can also use this operation to generate a KEK validation response, by setting KekValidationType to KekValidationResponse and providing the incoming KRs. This operation then calculates a KRr. To learn more about more about node-to-node initialization, see Validation of KEK in the Amazon Web Services Payment Cryptography User Guide.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

" + }, + "GenerateAuthRequestCryptogram":{ + "name":"GenerateAuthRequestCryptogram", + "http":{ + "method":"POST", + "requestUri":"/cryptogram/generate", + "responseCode":200 + }, + "input":{"shape":"GenerateAuthRequestCryptogramInput"}, + "output":{"shape":"GenerateAuthRequestCryptogramOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Generates an Authorization Request Cryptogram (ARQC) for an EMV chip payment card authorization. For more information, see Generate auth request cryptogram in the Amazon Web Services Payment Cryptography User Guide.

ARQC generation uses an Issuer Master Key (IMK) for application cryptograms (TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS) to derive a session key, which is then used to generate the cryptogram from the provided transaction data (when applicable). To use this operation, you must first create or import an IMK-AC key by calling CreateKey or ImportKey. The KeyModesOfUse should be set to DeriveKey for the IMK-AC encryption key.

This operation is intended for development and testing scenarios only. It is not recommended to use this operation as a substitute for card-based cryptogram generation in production payment flows.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "GenerateCardValidationData":{ "name":"GenerateCardValidationData", @@ -83,7 +101,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Generates card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security Codes (CSC). For more information, see Generate card data in the Amazon Web Services Payment Cryptography User Guide.

This operation generates a CVV or CSC value that is printed on a payment credit or debit card during card production. The CVV or CSC, PAN (Primary Account Number) and expiration date of the card are required to check its validity during transaction processing. To begin this operation, a CVK (Card Verification Key) encryption key is required. You can use CreateKey or ImportKey to establish a CVK within Amazon Web Services Payment Cryptography. The KeyModesOfUse should be set to Generate and Verify for a CVK encryption key.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Generates card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security Codes (CSC). For more information, see Generate card data in the Amazon Web Services Payment Cryptography User Guide.

This operation generates a CVV or CSC value that is printed on a payment credit or debit card during card production. The CVV or CSC, PAN (Primary Account Number) and expiration date of the card are required to check its validity during transaction processing. To begin this operation, a CVK (Card Verification Key) encryption key is required. You can use CreateKey or ImportKey to establish a CVK within Amazon Web Services Payment Cryptography. The KeyModesOfUse should be set to Generate and Verify for a CVK encryption key.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "GenerateMac":{ "name":"GenerateMac", @@ -101,7 +119,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Generates a Message Authentication Code (MAC) cryptogram within Amazon Web Services Payment Cryptography.

You can use this operation to authenticate card-related data by using known data values to generate MAC for data validation between the sending and receiving parties. This operation uses message data, a secret encryption key and MAC algorithm to generate a unique MAC value for transmission. The receiving party of the MAC must use the same message data, secret encryption key and MAC algorithm to reproduce another MAC value for comparision.

You can use this operation to generate a DUPKT, CMAC, HMAC or EMV MAC by setting generation attributes and algorithm to the associated values. The MAC generation encryption key must have valid values for KeyUsage such as TR31_M7_HMAC_KEY for HMAC generation, and the key must have KeyModesOfUse set to Generate.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Generates a Message Authentication Code (MAC) cryptogram within Amazon Web Services Payment Cryptography.

You can use this operation to authenticate card-related data by using known data values to generate MAC for data validation between the sending and receiving parties. This operation uses message data, a secret encryption key and MAC algorithm to generate a unique MAC value for transmission. The receiving party of the MAC must use the same message data, secret encryption key and MAC algorithm to reproduce another MAC value for comparision.

You can use this operation to generate a DUPKT, CMAC, HMAC or EMV MAC by setting generation attributes and algorithm to the associated values. The MAC generation encryption key must have valid values for KeyUsage such as TR31_M7_HMAC_KEY for HMAC generation, and the key must have KeyModesOfUse set to Generate.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "GenerateMacEmvPinChange":{ "name":"GenerateMacEmvPinChange", @@ -119,7 +137,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Generates an issuer script mac for EMV payment cards that use offline PINs as the cardholder verification method (CVM).

This operation generates an authenticated issuer script response by appending the incoming message data (APDU command) with the target encrypted PIN block in ISO2 format. The command structure and method to send the issuer script update to the card is not defined by this operation and is typically determined by the applicable payment card scheme.

The primary inputs to this operation include the incoming new encrypted pinblock, PIN encryption key (PEK), issuer master key (IMK), primary account number (PAN), and the payment card derivation method.

The operation uses two issuer master keys - secure messaging for confidentiality (IMK-SMC) and secure messaging for integrity (IMK-SMI). The SMC key is used to internally derive a key to secure the pin, while SMI key is used to internally derive a key to authenticate the script reponse as per the EMV 4.4 - Book 2 - Security and Key Management specification.

This operation supports Amex, EMV2000, EMVCommon, Mastercard and Visa derivation methods, each requiring specific input parameters. Users must follow the specific derivation method and input parameters defined by the respective payment card scheme.

Use GenerateMac operation when sending a script update to an EMV card that does not involve PIN change. When assigning IAM permissions, it is important to understand that EncryptData using EMV keys and GenerateMac perform similar functions to this command.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Generates an issuer script mac for EMV payment cards that use offline PINs as the cardholder verification method (CVM).

This operation generates an authenticated issuer script response by appending the incoming message data (APDU command) with the target encrypted PIN block in ISO2 format. The command structure and method to send the issuer script update to the card is not defined by this operation and is typically determined by the applicable payment card scheme.

The primary inputs to this operation include the incoming new encrypted pinblock, PIN encryption key (PEK), issuer master key (IMK), primary account number (PAN), and the payment card derivation method.

The operation uses two issuer master keys - secure messaging for confidentiality (IMK-SMC) and secure messaging for integrity (IMK-SMI). The SMC key is used to internally derive a key to secure the pin, while SMI key is used to internally derive a key to authenticate the script reponse as per the EMV 4.4 - Book 2 - Security and Key Management specification.

This operation supports Amex, EMV2000, EMVCommon, Mastercard and Visa derivation methods, each requiring specific input parameters. Users must follow the specific derivation method and input parameters defined by the respective payment card scheme.

Use GenerateMac operation when sending a script update to an EMV card that does not involve PIN change. When assigning IAM permissions, it is important to understand that EncryptData using EMV keys and GenerateMac perform similar functions to this command.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "GeneratePinData":{ "name":"GeneratePinData", @@ -137,7 +155,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Generates pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and PIN Offset during new card issuance or reissuance. For more information, see Generate PIN data in the Amazon Web Services Payment Cryptography User Guide.

PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption Key (PEK) to create an EncryptedPinBlock for transmission from Amazon Web Services Payment Cryptography. This operation uses a separate Pin Verification Key (PVK) for VISA PVV generation.

Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block. You can also use it for reveal PIN, wherein the generated PIN block is protected by the ECDH derived key before transmission from Amazon Web Services Payment Cryptography. For more information on establishing ECDH derived keys, see the Generating keys in the Amazon Web Services Payment Cryptography User Guide.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Generates pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and PIN Offset during new card issuance or reissuance. For more information, see Generate PIN data in the Amazon Web Services Payment Cryptography User Guide.

PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption Key (PEK) to create an EncryptedPinBlock for transmission from Amazon Web Services Payment Cryptography. This operation uses a separate Pin Verification Key (PVK) for VISA PVV generation.

Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block. You can also use it for reveal PIN, wherein the generated PIN block is protected by the ECDH derived key before transmission from Amazon Web Services Payment Cryptography. For more information on establishing ECDH derived keys, see the Generating keys in the Amazon Web Services Payment Cryptography User Guide.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "ReEncryptData":{ "name":"ReEncryptData", @@ -155,7 +173,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Re-encrypt ciphertext using DUKPT or Symmetric data encryption keys.

You can either generate an encryption key within Amazon Web Services Payment Cryptography by calling CreateKey or import your own encryption key by calling ImportKey. The KeyArn for use with this operation must be in a compatible key state with KeyModesOfUse set to Encrypt.

This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To re-encrypt using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports TDES and AES algorithms. To encrypt using DUKPT, a DUKPT key must already exist within your account with KeyModesOfUse set to DeriveKey or a new DUKPT can be generated by calling CreateKey.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Re-encrypt ciphertext using DUKPT or Symmetric data encryption keys.

You can either generate an encryption key within Amazon Web Services Payment Cryptography by calling CreateKey or import your own encryption key by calling ImportKey. The KeyArn for use with this operation must be in a compatible key state with KeyModesOfUse set to Encrypt.

This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To re-encrypt using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports TDES and AES algorithms. To encrypt using DUKPT, a DUKPT key must already exist within your account with KeyModesOfUse set to DeriveKey or a new DUKPT can be generated by calling CreateKey.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "TranslateKeyMaterial":{ "name":"TranslateKeyMaterial", @@ -173,7 +191,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Translates an cryptographic key between different wrapping keys without importing the key into Amazon Web Services Payment Cryptography.

This operation can be used when key material is frequently rotated, such as during every card transaction, and there is a need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. It translates short-lived transaction keys such as PEK generated for each transaction and wrapped with an ECDH derived wrapping key to another KEK wrapping key.

Before using this operation, you must first request the public key certificate of the ECC key pair generated within Amazon Web Services Payment Cryptography to establish an ECDH key agreement. In TranslateKeyData, the service uses its own ECC key pair, public certificate of receiving ECC key pair, and the key derivation parameters to generate a derived key. The service uses this derived key to unwrap the incoming transaction key received as a TR31WrappedKeyBlock and re-wrap using a user provided KEK to generate an outgoing Tr31WrappedKeyBlock.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Translates an cryptographic key between different wrapping keys without importing the key into Amazon Web Services Payment Cryptography.

This operation can be used when key material is frequently rotated, such as during every card transaction, and there is a need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. It translates short-lived transaction keys such as PEK generated for each transaction and wrapped with an ECDH derived wrapping key to another KEK wrapping key.

Before using this operation, you must first request the public key certificate of the ECC key pair generated within Amazon Web Services Payment Cryptography to establish an ECDH key agreement. In TranslateKeyData, the service uses its own ECC key pair, public certificate of receiving ECC key pair, and the key derivation parameters to generate a derived key. The service uses this derived key to unwrap the incoming transaction key received as a TR31WrappedKeyBlock and re-wrap using a user provided KEK to generate an outgoing Tr31WrappedKeyBlock.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "TranslatePinData":{ "name":"TranslatePinData", @@ -191,7 +209,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information, see Translate PIN data in the Amazon Web Services Payment Cryptography User Guide.

PIN block translation involves changing a PIN block from one encryption key to another and optionally change its format. PIN block translation occurs entirely within the HSM boundary and PIN data never enters or leaves Amazon Web Services Payment Cryptography in clear text. The encryption key transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for DUKPT or from BDK for DUKPT to PEK.

Amazon Web Services Payment Cryptography also supports use of dynamic keys and ECDH (Elliptic Curve Diffie-Hellman) based key exchange for this operation.

Dynamic keys allow you to pass a PEK as a TR-31 WrappedKeyBlock. They can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block, which is translated to a PEK encrypted PIN block for use within the service. You can also use ECDH for reveal PIN, wherein the service translates the PIN block from PEK to a ECDH derived encryption key. For more information on establishing ECDH derived keys, see the Creating keys in the Amazon Web Services Payment Cryptography User Guide.

The allowed combinations of PIN block format translations are guided by PCI. It is important to note that not all encrypted PIN block formats (example, format 1) require PAN (Primary Account Number) as input. And as such, PIN block format that requires PAN (example, formats 0,3,4) cannot be translated to a format (format 1) that does not require a PAN for generation.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Amazon Web Services Payment Cryptography currently supports ISO PIN block 4 translation for PIN block built using legacy PAN length. That is, PAN is the right most 12 digits excluding the check digits.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information, see Translate PIN data in the Amazon Web Services Payment Cryptography User Guide.

PIN block translation involves changing a PIN block from one encryption key to another and optionally change its format. PIN block translation occurs entirely within the HSM boundary and PIN data never enters or leaves Amazon Web Services Payment Cryptography in clear text. The encryption key transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for DUKPT or from BDK for DUKPT to PEK.

Amazon Web Services Payment Cryptography also supports use of dynamic keys and ECDH (Elliptic Curve Diffie-Hellman) based key exchange for this operation.

Dynamic keys allow you to pass a PEK as a TR-31 WrappedKeyBlock. They can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see Using Dynamic Keys in the Amazon Web Services Payment Cryptography User Guide.

Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block, which is translated to a PEK encrypted PIN block for use within the service. You can also use ECDH for reveal PIN, wherein the service translates the PIN block from PEK to a ECDH derived encryption key. For more information on establishing ECDH derived keys, see the Creating keys in the Amazon Web Services Payment Cryptography User Guide.

The allowed combinations of PIN block format translations are guided by PCI. It is important to note that not all encrypted PIN block formats (example, format 1) require PAN (Primary Account Number) as input. And as such, PIN block format that requires PAN (example, formats 0,3,4) cannot be translated to a format (format 1) that does not require a PAN for generation.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Amazon Web Services Payment Cryptography currently supports ISO PIN block 4 translation for PIN block built using legacy PAN length. That is, PAN is the right most 12 digits excluding the check digits.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "VerifyAuthRequestCryptogram":{ "name":"VerifyAuthRequestCryptogram", @@ -210,7 +228,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Verifies Authorization Request Cryptogram (ARQC) for a EMV chip payment card authorization. For more information, see Verify auth request cryptogram in the Amazon Web Services Payment Cryptography User Guide.

ARQC generation is done outside of Amazon Web Services Payment Cryptography and is typically generated on a point of sale terminal for an EMV chip card to obtain payment authorization during transaction time. For ARQC verification, you must first import the ARQC generated outside of Amazon Web Services Payment Cryptography by calling ImportKey. This operation uses the imported ARQC and an major encryption key (DUKPT) created by calling CreateKey to either provide a boolean ARQC verification result or provide an APRC (Authorization Response Cryptogram) response using Method 1 or Method 2. The ARPC_METHOD_1 uses AuthResponseCode to generate ARPC and ARPC_METHOD_2 uses CardStatusUpdate to generate ARPC.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Verifies Authorization Request Cryptogram (ARQC) for a EMV chip payment card authorization. For more information, see Verify auth request cryptogram in the Amazon Web Services Payment Cryptography User Guide.

ARQC generation is done outside of Amazon Web Services Payment Cryptography and is typically generated on a point of sale terminal for an EMV chip card to obtain payment authorization during transaction time. For ARQC verification, you must first import the ARQC generated outside of Amazon Web Services Payment Cryptography by calling ImportKey. This operation uses the imported ARQC and an major encryption key (DUKPT) created by calling CreateKey to either provide a boolean ARQC verification result or provide an APRC (Authorization Response Cryptogram) response using Method 1 or Method 2. The ARPC_METHOD_1 uses AuthResponseCode to generate ARPC and ARPC_METHOD_2 uses CardStatusUpdate to generate ARPC.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "VerifyCardValidationData":{ "name":"VerifyCardValidationData", @@ -229,7 +247,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Verifies card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2) and Card Security Codes (CSC). For more information, see Verify card data in the Amazon Web Services Payment Cryptography User Guide.

This operation validates the CVV or CSC codes that is printed on a payment credit or debit card during card payment transaction. The input values are typically provided as part of an inbound transaction to an issuer or supporting platform partner. Amazon Web Services Payment Cryptography uses CVV or CSC, PAN (Primary Account Number) and expiration date of the card to check its validity during transaction processing. In this operation, the CVK (Card Verification Key) encryption key for use with card data verification is same as the one in used for GenerateCardValidationData.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Verifies card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2) and Card Security Codes (CSC). For more information, see Verify card data in the Amazon Web Services Payment Cryptography User Guide.

This operation validates the CVV or CSC codes that is printed on a payment credit or debit card during card payment transaction. The input values are typically provided as part of an inbound transaction to an issuer or supporting platform partner. Amazon Web Services Payment Cryptography uses CVV or CSC, PAN (Primary Account Number) and expiration date of the card to check its validity during transaction processing. In this operation, the CVK (Card Verification Key) encryption key for use with card data verification is same as the one in used for GenerateCardValidationData.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "VerifyMac":{ "name":"VerifyMac", @@ -248,7 +266,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Verifies a Message Authentication Code (MAC).

You can use this operation to verify MAC for message data authentication such as . In this operation, you must use the same message data, secret encryption key and MAC algorithm that was used to generate MAC. You can use this operation to verify a DUPKT, CMAC, HMAC or EMV MAC by setting generation attributes and algorithm to the associated values.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Verifies a Message Authentication Code (MAC).

You can use this operation to verify MAC for message data authentication such as . In this operation, you must use the same message data, secret encryption key and MAC algorithm that was used to generate MAC. You can use this operation to verify a DUPKT, CMAC, HMAC or EMV MAC by setting generation attributes and algorithm to the associated values.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" }, "VerifyPinData":{ "name":"VerifyPinData", @@ -267,7 +285,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Verifies pin-related data such as PIN and PIN Offset using algorithms including VISA PVV and IBM3624. For more information, see Verify PIN data in the Amazon Web Services Payment Cryptography User Guide.

This operation verifies PIN data for user payment card. A card holder PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation uses PIN Verification Key (PVK) for PIN or PIN Offset generation and then encrypts it using PIN Encryption Key (PEK) to create an EncryptedPinBlock for transmission from Amazon Web Services Payment Cryptography.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation can't be used across different Amazon Web Services accounts.

Related operations:

" + "documentation":"

Verifies pin-related data such as PIN and PIN Offset using algorithms including VISA PVV and IBM3624. For more information, see Verify PIN data in the Amazon Web Services Payment Cryptography User Guide.

This operation verifies PIN data for user payment card. A card holder PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation uses PIN Verification Key (PVK) for PIN or PIN Offset generation and then encrypts it using PIN Encryption Key (PEK) to create an EncryptedPinBlock for transmission from Amazon Web Services Payment Cryptography.

For information about valid keys for this operation, see Understanding key attributes and Key types for specific data operations in the Amazon Web Services Payment Cryptography User Guide.

Cross-account use: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see Resource-based policies.

Related operations:

" } }, "shapes":{ @@ -392,8 +410,8 @@ "As2805RandomKeyMaterial":{ "type":"string", "max":48, - "min":32, - "pattern":"(?:[0-9a-fA-F]{32}|[0-9a-fA-F]{48})", + "min":16, + "pattern":"(?:[0-9a-fA-F]{16}|[0-9a-fA-F]{32}|[0-9a-fA-F]{48})", "sensitive":true }, "AsymmetricEncryptionAttributes":{ @@ -1148,7 +1166,7 @@ }, "KekValidationType":{ "shape":"As2805KekValidationType", - "documentation":"

Parameter information for generating a random key for KEK validation to perform node-to-node initialization.

" + "documentation":"

Defines whether to generate a KEK validation request or KEK validation response for node-to-node initialization.

" }, "RandomKeySendVariantMask":{ "shape":"RandomKeySendVariantMask", @@ -1183,6 +1201,55 @@ } } }, + "GenerateAuthRequestCryptogramInput":{ + "type":"structure", + "required":[ + "KeyIdentifier", + "TransactionData", + "MajorKeyDerivationMode", + "SessionKeyDerivationAttributes" + ], + "members":{ + "KeyIdentifier":{ + "shape":"KeyArnOrKeyAliasType", + "documentation":"

The keyARN of the IMK-AC (TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS) that Amazon Web Services Payment Cryptography uses to generate the ARQC.

" + }, + "TransactionData":{ + "shape":"TransactionDataType", + "documentation":"

The transaction data that Amazon Web Services Payment Cryptography uses for ARQC generation. The same transaction data is used for ARQC verification by the issuer using VerifyAuthRequestCryptogram.

" + }, + "MajorKeyDerivationMode":{ + "shape":"MajorKeyDerivationMode", + "documentation":"

The method to use when deriving the major encryption key for ARQC generation within Amazon Web Services Payment Cryptography.

" + }, + "SessionKeyDerivationAttributes":{ + "shape":"SessionKeyDerivation", + "documentation":"

The attributes and values to use for deriving a session key for ARQC generation within Amazon Web Services Payment Cryptography.

" + } + } + }, + "GenerateAuthRequestCryptogramOutput":{ + "type":"structure", + "required":[ + "KeyArn", + "KeyCheckValue", + "AuthRequestCryptogram" + ], + "members":{ + "KeyArn":{ + "shape":"KeyArn", + "documentation":"

The keyARN of the IMK-AC that Amazon Web Services Payment Cryptography uses for ARQC generation.

" + }, + "KeyCheckValue":{ + "shape":"KeyCheckValue", + "documentation":"

The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed.

Amazon Web Services Payment Cryptography computes the KCV according to the CMAC specification.

" + }, + "AuthRequestCryptogram":{ + "shape":"AuthRequestCryptogramType", + "documentation":"

The Authorization Request Cryptogram (ARQC) generated by Amazon Web Services Payment Cryptography using the specified key and transaction data.

" + } + } + }, "GenerateCardValidationDataInput":{ "type":"structure", "required":[ @@ -1345,7 +1412,7 @@ "documentation":"

The attributes and data values to use for MAC generation within Amazon Web Services Payment Cryptography.

" }, "MacLength":{ - "shape":"IntegerRangeBetween4And16", + "shape":"IntegerRangeBetween4And32", "documentation":"

The length of a MAC under generation.

" } } @@ -1699,10 +1766,10 @@ "max":12, "min":4 }, - "IntegerRangeBetween4And16":{ + "IntegerRangeBetween4And32":{ "type":"integer", "box":true, - "max":16, + "max":32, "min":4 }, "InternalServerException":{ @@ -1722,6 +1789,10 @@ "DeriveKeyAlgorithm":{ "shape":"SymmetricKeyAlgorithm", "documentation":"

The key derivation algorithm to use for generating a KEK validation request.

" + }, + "RandomKeyMaxLength":{ + "shape":"RandomKeyMaxLength", + "documentation":"

The maximum length of the random key to generate for a KEK validation request.

" } }, "documentation":"

Parameter information for generating a KEK validation request during node-to-node initialization.

" @@ -1732,7 +1803,7 @@ "members":{ "RandomKeySend":{ "shape":"As2805RandomKeyMaterial", - "documentation":"

The random key for generating a KEK validation response.

" + "documentation":"

The random key send value received from the initiating node to generate a KEK validation response.

" } }, "documentation":"

Parameter information for generating a KEK validation response during node-to-node initialization.

" @@ -2122,6 +2193,14 @@ "pattern":"[0-9a-fA-F]+", "sensitive":true }, + "RandomKeyMaxLength":{ + "type":"string", + "enum":[ + "BYTES_8", + "BYTES_16", + "BYTES_24" + ] + }, "RandomKeySendVariantMask":{ "type":"string", "enum":[ @@ -2372,7 +2451,7 @@ "documentation":"

The transaction counter that is provided by the terminal during transaction processing.

" }, "UnpredictableNumber":{ - "shape":"HexLengthBetween2And8", + "shape":"HexLengthEquals8", "documentation":"

A random number generated by the issuer.

" } }, @@ -2845,7 +2924,7 @@ "documentation":"

The attributes and data values to use for MAC verification within Amazon Web Services Payment Cryptography.

" }, "MacLength":{ - "shape":"IntegerRangeBetween4And16", + "shape":"IntegerRangeBetween4And32", "documentation":"

The length of the MAC.

" } } From dee4ab0d2651fe96be560a9f7509ab32df15137d Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 20 May 2026 18:13:37 +0000 Subject: [PATCH 23/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 4e2b786fdaa8..66f329371dd5 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -4149,6 +4149,8 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, From 4b356d5ee396005f28b48ff504fe0d276758d181 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 20 May 2026 18:15:27 +0000 Subject: [PATCH 24/73] Bump version to 2.34.51 --- .changes/2.34.51.json | 32 +++++++++++++++++++ .../api-change-bedrockruntime-67499.json | 5 --- .../api-change-customerprofiles-32576.json | 5 --- .../next-release/api-change-kms-15361.json | 5 --- .../next-release/api-change-mwaa-34440.json | 5 --- ...-change-paymentcryptographydata-26946.json | 5 --- ...ancement-cloudtrailvalidatelogs-71283.json | 5 --- CHANGELOG.rst | 11 +++++++ awscli/__init__.py | 2 +- configure | 14 ++++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 12 files changed, 53 insertions(+), 40 deletions(-) create mode 100644 .changes/2.34.51.json delete mode 100644 .changes/next-release/api-change-bedrockruntime-67499.json delete mode 100644 .changes/next-release/api-change-customerprofiles-32576.json delete mode 100644 .changes/next-release/api-change-kms-15361.json delete mode 100644 .changes/next-release/api-change-mwaa-34440.json delete mode 100644 .changes/next-release/api-change-paymentcryptographydata-26946.json delete mode 100644 .changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json diff --git a/.changes/2.34.51.json b/.changes/2.34.51.json new file mode 100644 index 000000000000..deb31a2a111f --- /dev/null +++ b/.changes/2.34.51.json @@ -0,0 +1,32 @@ +[ + { + "category": "``cloudtrail validate-logs``", + "description": "Invalidate log files with data appended to the end of the gzip stream.", + "type": "enhancement" + }, + { + "category": "``payment-cryptography-data``", + "description": "GenerateAuthRequestCryptogram API launch.", + "type": "api-change" + }, + { + "category": "``mwaa``", + "description": "Updated API documentation to describe the PublicAndPrivate webserver access mode.", + "type": "api-change" + }, + { + "category": "``customer-profiles``", + "description": "Amazon Connect Customer Profiles adds support for item catalog columns in RecommenderSchema, ExcludedColumns in Create and Update Recommender to specify columns to exclude from training, and the ability to disable automatic retraining by setting TrainingFrequency to 0.", + "type": "api-change" + }, + { + "category": "``bedrock-runtime``", + "description": "Supporting Request Metadata for Invoke Model and Invoke Model with Response Stream", + "type": "api-change" + }, + { + "category": "``kms``", + "description": "AWS KMS now supports creating grants for AWS service principals using new GranteeServicePrincipal and RetiringServicePrincipal parameters. This release adds SourceArn grant constraint and three condition keys for controlling CreateGrant access. For more information, see Grants in AWS KMS.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-bedrockruntime-67499.json b/.changes/next-release/api-change-bedrockruntime-67499.json deleted file mode 100644 index 4b5a09b1628e..000000000000 --- a/.changes/next-release/api-change-bedrockruntime-67499.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-runtime``", - "description": "Supporting Request Metadata for Invoke Model and Invoke Model with Response Stream" -} diff --git a/.changes/next-release/api-change-customerprofiles-32576.json b/.changes/next-release/api-change-customerprofiles-32576.json deleted file mode 100644 index 9e07eba10054..000000000000 --- a/.changes/next-release/api-change-customerprofiles-32576.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``customer-profiles``", - "description": "Amazon Connect Customer Profiles adds support for item catalog columns in RecommenderSchema, ExcludedColumns in Create and Update Recommender to specify columns to exclude from training, and the ability to disable automatic retraining by setting TrainingFrequency to 0." -} diff --git a/.changes/next-release/api-change-kms-15361.json b/.changes/next-release/api-change-kms-15361.json deleted file mode 100644 index 6b6af7167def..000000000000 --- a/.changes/next-release/api-change-kms-15361.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``kms``", - "description": "AWS KMS now supports creating grants for AWS service principals using new GranteeServicePrincipal and RetiringServicePrincipal parameters. This release adds SourceArn grant constraint and three condition keys for controlling CreateGrant access. For more information, see Grants in AWS KMS." -} diff --git a/.changes/next-release/api-change-mwaa-34440.json b/.changes/next-release/api-change-mwaa-34440.json deleted file mode 100644 index 887a6d6aa270..000000000000 --- a/.changes/next-release/api-change-mwaa-34440.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``mwaa``", - "description": "Updated API documentation to describe the PublicAndPrivate webserver access mode." -} diff --git a/.changes/next-release/api-change-paymentcryptographydata-26946.json b/.changes/next-release/api-change-paymentcryptographydata-26946.json deleted file mode 100644 index edd5115df8f9..000000000000 --- a/.changes/next-release/api-change-paymentcryptographydata-26946.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``payment-cryptography-data``", - "description": "GenerateAuthRequestCryptogram API launch." -} diff --git a/.changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json b/.changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json deleted file mode 100644 index 4c4b483f45c6..000000000000 --- a/.changes/next-release/enhancement-cloudtrailvalidatelogs-71283.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "``cloudtrail validate-logs``", - "description": "Invalidate log files with data appended to the end of the gzip stream." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d5017f3b7164..34d1e8e2b6f4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,17 @@ CHANGELOG ========= +2.34.51 +======= + +* enhancement:``cloudtrail validate-logs``: Invalidate log files with data appended to the end of the gzip stream. +* api-change:``payment-cryptography-data``: GenerateAuthRequestCryptogram API launch. +* api-change:``mwaa``: Updated API documentation to describe the PublicAndPrivate webserver access mode. +* api-change:``customer-profiles``: Amazon Connect Customer Profiles adds support for item catalog columns in RecommenderSchema, ExcludedColumns in Create and Update Recommender to specify columns to exclude from training, and the ability to disable automatic retraining by setting TrainingFrequency to 0. +* api-change:``bedrock-runtime``: Supporting Request Metadata for Invoke Model and Invoke Model with Response Stream +* api-change:``kms``: AWS KMS now supports creating grants for AWS service principals using new GranteeServicePrincipal and RetiringServicePrincipal parameters. This release adds SourceArn grant constraint and three condition keys for controlling CreateGrant access. For more information, see Grants in AWS KMS. + + 2.34.50 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index ddcfffe8802d..3249c7a8b65f 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.50' +__version__ = '2.34.51' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 0424bba8d192..5052ab72240e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.50. +# Generated by GNU Autoconf 2.71 for awscli 2.34.51. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.50' -PACKAGE_STRING='awscli 2.34.50' +PACKAGE_VERSION='2.34.51' +PACKAGE_STRING='awscli 2.34.51' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.50 +awscli configure 2.34.51 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.50, which was +It was created by awscli $as_me 2.34.51, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.50, which was +This file was extended by awscli $as_me 2.34.51, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.50 +awscli config.status 2.34.51 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 7701ed3af90b..1ecc0b0b3f03 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.50]) +AC_INIT([awscli], [2.34.51]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 26875988815f..4cce1363e50f 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.50' +release = '2.34.51' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 37c007dd2a7e672ee2a967b2fac50d43528833d3 Mon Sep 17 00:00:00 2001 From: Steve <106777148+hssyoo@users.noreply.github.com> Date: Thu, 21 May 2026 15:58:39 -0400 Subject: [PATCH 25/73] Update EC2 doc assertion (#10333) --- tests/functional/autoprompt/test_doc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/functional/autoprompt/test_doc.py b/tests/functional/autoprompt/test_doc.py index 656910a25cf0..15e2ab649e7f 100644 --- a/tests/functional/autoprompt/test_doc.py +++ b/tests/functional/autoprompt/test_doc.py @@ -55,7 +55,7 @@ def setUp(self): def test_get_service_command_docs(self): parsed_args = self.parser.parse('aws ec2') actual_docs = self.docs_getter.get_docs(parsed_args) - expected_docs = 'Elastic Compute Cloud' + expected_docs = 'Amazon EC2' self.assertIn(expected_docs, actual_docs) def test_get_service_operation_docs(self): @@ -67,7 +67,7 @@ def test_get_service_operation_docs(self): def test_get_service_command_docs_with_invalid_service_operation(self): parsed_args = self.parser.parse('aws ec2 fake') actual_docs = self.docs_getter.get_docs(parsed_args) - expected_docs = 'Elastic Compute Cloud' + expected_docs = 'Amazon EC2' self.assertIn(expected_docs, actual_docs) def test_get_top_level_aws_docs_if_no_command_specified(self): From 8e6010745a7ce3721755e6a09dca7c1ab5d28664 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 21 May 2026 20:12:08 +0000 Subject: [PATCH 26/73] Merge customizations for Bedrock AgentCore Control --- .../2023-06-05/paginators-1.sdk-extras.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.sdk-extras.json diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.sdk-extras.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.sdk-extras.json new file mode 100644 index 000000000000..bdaea5ee6f8b --- /dev/null +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.sdk-extras.json @@ -0,0 +1,14 @@ +{ + "version": 1.0, + "merge": { + "pagination": { + "ListDatasetExamples": { + "non_aggregate_keys": [ + "datasetArn", + "datasetId", + "datasetVersion" + ] + } + } + } +} From e4f958e2ba562e66f4b4ac4d9302cc8a180b8fdf Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 21 May 2026 20:12:16 +0000 Subject: [PATCH 27/73] Update to latest models --- .../next-release/api-change-batch-88625.json | 5 + ...-change-bedrockagentcorecontrol-97189.json | 5 + .../api-change-cleanrooms-61199.json | 5 + .../api-change-cleanroomsml-21411.json | 5 + .../next-release/api-change-evs-72684.json | 5 + .../api-change-mediaconnect-45174.json | 5 + .../api-change-sagemaker-73849.json | 5 + .../api-change-verifiedpermissions-80560.json | 5 + .../data/batch/2016-08-10/service-2.json | 6 +- .../2023-06-05/paginators-1.json | 18 + .../2023-06-05/service-2.json | 1095 ++++++++++++++++- .../data/cleanrooms/2022-02-17/service-2.json | 47 +- .../cleanroomsml/2023-09-06/service-2.json | 70 ++ .../data/evs/2023-07-27/service-2.json | 53 +- .../mediaconnect/2018-11-14/service-2.json | 34 +- .../data/sagemaker/2017-07-24/service-2.json | 22 +- .../2021-12-01/service-2.json | 18 +- 17 files changed, 1381 insertions(+), 22 deletions(-) create mode 100644 .changes/next-release/api-change-batch-88625.json create mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-97189.json create mode 100644 .changes/next-release/api-change-cleanrooms-61199.json create mode 100644 .changes/next-release/api-change-cleanroomsml-21411.json create mode 100644 .changes/next-release/api-change-evs-72684.json create mode 100644 .changes/next-release/api-change-mediaconnect-45174.json create mode 100644 .changes/next-release/api-change-sagemaker-73849.json create mode 100644 .changes/next-release/api-change-verifiedpermissions-80560.json diff --git a/.changes/next-release/api-change-batch-88625.json b/.changes/next-release/api-change-batch-88625.json new file mode 100644 index 000000000000..735673ec3e85 --- /dev/null +++ b/.changes/next-release/api-change-batch-88625.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``batch``", + "description": "Clarified CreateComputeEnvironment parameter requirements - serviceRole is required for UNMANAGED compute environments, allocationStrategy is required for EKS compute environments, and compute environments must be created in the ENABLED state." +} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-97189.json b/.changes/next-release/api-change-bedrockagentcorecontrol-97189.json new file mode 100644 index 000000000000..6cf1754c2d8e --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcorecontrol-97189.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore-control``", + "description": "Adds dataset management APIs for creating, versioning, and managing evaluation datasets." +} diff --git a/.changes/next-release/api-change-cleanrooms-61199.json b/.changes/next-release/api-change-cleanrooms-61199.json new file mode 100644 index 000000000000..04e30224aca5 --- /dev/null +++ b/.changes/next-release/api-change-cleanrooms-61199.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cleanrooms``", + "description": "Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing." +} diff --git a/.changes/next-release/api-change-cleanroomsml-21411.json b/.changes/next-release/api-change-cleanroomsml-21411.json new file mode 100644 index 000000000000..ba771c0da827 --- /dev/null +++ b/.changes/next-release/api-change-cleanroomsml-21411.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cleanroomsml``", + "description": "Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing." +} diff --git a/.changes/next-release/api-change-evs-72684.json b/.changes/next-release/api-change-evs-72684.json new file mode 100644 index 000000000000..b376441db290 --- /dev/null +++ b/.changes/next-release/api-change-evs-72684.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``evs``", + "description": "A new GetDepotUrl API has been added to retrieve a URL for accessing Amazon EVS custom addon packages. Customers can use this URL to configure vSphere Lifecycle Manager (vLCM) as an online depot source, enabling upgrades of addon components across ESXi hosts." +} diff --git a/.changes/next-release/api-change-mediaconnect-45174.json b/.changes/next-release/api-change-mediaconnect-45174.json new file mode 100644 index 000000000000..b4378cabe66d --- /dev/null +++ b/.changes/next-release/api-change-mediaconnect-45174.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``mediaconnect``", + "description": "Adds support for controlling the timecode source of NDI flow outputs." +} diff --git a/.changes/next-release/api-change-sagemaker-73849.json b/.changes/next-release/api-change-sagemaker-73849.json new file mode 100644 index 000000000000..0893daf3320c --- /dev/null +++ b/.changes/next-release/api-change-sagemaker-73849.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemaker``", + "description": "Add support for disabling home EFS file system creation on SageMaker domains." +} diff --git a/.changes/next-release/api-change-verifiedpermissions-80560.json b/.changes/next-release/api-change-verifiedpermissions-80560.json new file mode 100644 index 000000000000..3296b8cbf530 --- /dev/null +++ b/.changes/next-release/api-change-verifiedpermissions-80560.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``verifiedpermissions``", + "description": "Support hard deleting policy store aliases. Users can now delete an alias and immediately reassign it to a different policy store without waiting for the soft-delete retention period." +} diff --git a/awscli/botocore/data/batch/2016-08-10/service-2.json b/awscli/botocore/data/batch/2016-08-10/service-2.json index f1d779fbf03e..d417a6b624bb 100644 --- a/awscli/botocore/data/batch/2016-08-10/service-2.json +++ b/awscli/botocore/data/batch/2016-08-10/service-2.json @@ -1043,7 +1043,7 @@ }, "allocationStrategy":{ "shape":"CRAllocationStrategy", - "documentation":"

The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

BEST_FIT (default)

Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, Batch waits for the additional instances to be available. If there aren't enough instances available or the user is reaching Amazon EC2 service limits, additional jobs aren't run until the currently running jobs are completed. This allocation strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use a BEST_FIT allocation strategy don't support infrastructure updates and can't update some parameters. For more information, see Updating compute environments in the Batch User Guide.

BEST_FIT_PROGRESSIVE

Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

SPOT_CAPACITY_OPTIMIZED

Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

SPOT_PRICE_CAPACITY_OPTIMIZED

The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price. This allocation strategy is only available for Spot Instance compute resources.

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

" + "documentation":"

The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

This parameter is required for Amazon EKS compute environments. For Amazon ECS compute environments, if this parameter isn't specified, the BEST_FIT allocation strategy is used by default.

BEST_FIT (default)

Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, Batch waits for the additional instances to be available. If there aren't enough instances available or the user is reaching Amazon EC2 service limits, additional jobs aren't run until the currently running jobs are completed. This allocation strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use a BEST_FIT allocation strategy don't support infrastructure updates and can't update some parameters. For more information, see Updating compute environments in the Batch User Guide.

BEST_FIT_PROGRESSIVE

Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

SPOT_CAPACITY_OPTIMIZED

Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

SPOT_PRICE_CAPACITY_OPTIMIZED

The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price. This allocation strategy is only available for Spot Instance compute resources.

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

" }, "minvCpus":{ "shape":"Integer", @@ -1561,7 +1561,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

The state of the compute environment. If the state is ENABLED, then the compute environment accepts jobs from a queue and can scale out automatically based on queues.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges, for example, if they have running instances due to jobs that are still executing or a non-zero minvCpus setting. To prevent additional charges, disable and delete the compute environment.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" + "documentation":"

The state of the compute environment. A compute environment must be created in the ENABLED state.

If the state is ENABLED, then the compute environment accepts jobs from a queue and can scale out automatically based on queues.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out.

Compute environments in a DISABLED state may continue to incur billing charges, for example, if they have running instances due to jobs that are still executing or a non-zero minvCpus setting. To prevent additional charges, disable and delete the compute environment.

When an instance is idle, the instance scales down to the minvCpus value. However, the instance size doesn't change. For example, consider a c5.8xlarge instance with a minvCpus value of 4 and a desiredvCpus value of 36. This instance doesn't scale down to a c5.large instance.

" }, "unmanagedvCpus":{ "shape":"Integer", @@ -1573,7 +1573,7 @@ }, "serviceRole":{ "shape":"String", - "documentation":"

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services services on your behalf. For more information, see Batch service IAM role in the Batch User Guide.

If your account already created the Batch service-linked role, that role is used by default for your compute environment unless you specify a different role here. If the Batch service-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the Batch service-linked role in your account.

If your specified role has a path other than /, then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/, specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide.

Depending on how you created your Batch service role, its ARN might contain the service-role path prefix. When you only specify the name of the service role, Batch assumes that your ARN doesn't use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

" + "documentation":"

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services services on your behalf. For more information, see Batch service IAM role in the Batch User Guide.

If your account already created the Batch service-linked role, that role is used by default for your compute environment unless you specify a different role here. If the Batch service-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the Batch service-linked role in your account.

This automatic service-linked role creation only applies to MANAGED compute environments. For UNMANAGED compute environments, you must explicitly specify a serviceRole.

If your specified role has a path other than /, then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/, specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide.

Depending on how you created your Batch service role, its ARN might contain the service-role path prefix. When you only specify the name of the service role, Batch assumes that your ARN doesn't use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

" }, "tags":{ "shape":"TagrisTagsMap", diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json index ed1e79fd9677..88c2c6a116ca 100644 --- a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/paginators-1.json @@ -179,6 +179,24 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "policies" + }, + "ListDatasetExamples": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "examples" + }, + "ListDatasetVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "versions" + }, + "ListDatasets": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "datasets" } } } diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json index 7e0c37b07426..4654727554dc 100644 --- a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json @@ -13,6 +13,26 @@ "uid":"bedrock-agentcore-control-2023-06-05" }, "operations":{ + "AddDatasetExamples":{ + "name":"AddDatasetExamples", + "http":{ + "method":"POST", + "requestUri":"/datasets/{datasetId}/examples/add", + "responseCode":202 + }, + "input":{"shape":"AddDatasetExamplesRequest"}, + "output":{"shape":"AddDatasetExamplesResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Adds examples to the dataset's DRAFT.

Validation: All examples are validated against the dataset's schemaType before any writes occur. If any example fails validation, the entire batch is rejected with ValidationException — no examples are written (all-or-nothing semantics).

Asynchronous: Operates in-place on DRAFT. No version bump occurs. Use CreateDatasetVersion to publish DRAFT as a new numbered version.

State guard: Returns ConflictException (DATASET_NOT_READY) if the dataset status is not in {DRAFT, ACTIVE}.

Request size limit: Max 5 MB total request body. Max 1000 examples per call.

" + }, "CreateAgentRuntime":{ "name":"CreateAgentRuntime", "http":{ @@ -158,6 +178,45 @@ ], "documentation":"

Creates a new configuration bundle resource. A configuration bundle stores versioned component configurations for agent evaluation workflows.

" }, + "CreateDataset":{ + "name":"CreateDataset", + "http":{ + "method":"POST", + "requestUri":"/datasets", + "responseCode":202 + }, + "input":{"shape":"CreateDatasetRequest"}, + "output":{"shape":"CreateDatasetResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a new Dataset resource asynchronously.

Returns immediately with status CREATING. Poll GetDataset until status transitions to ACTIVE or CREATE_FAILED (with failureReason).

" + }, + "CreateDatasetVersion":{ + "name":"CreateDatasetVersion", + "http":{ + "method":"POST", + "requestUri":"/datasets/{datasetId}/versions", + "responseCode":202 + }, + "input":{"shape":"CreateDatasetVersionRequest"}, + "output":{"shape":"CreateDatasetVersionResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Publishes the current DRAFT as a new numbered version.

Snapshots the DRAFT examples as the next version (1, 2, 3, ...). The DRAFT is preserved and remains editable after publishing. Returns immediately with status UPDATING. Poll GetDataset until status transitions to ACTIVE (draftStatus=UNMODIFIED) or UPDATE_FAILED.

State guard: Returns ConflictException (DATASET_NOT_READY) if status is in {CREATING, UPDATING, DELETING}, or DATASET_IN_FAILED_STATE if status is in {CREATE_FAILED, DELETE_FAILED}.

Quota: MAX_VERSIONS_PER_DATASET applies to published versions only (not DRAFT).

" + }, "CreateEvaluator":{ "name":"CreateEvaluator", "http":{ @@ -630,6 +689,45 @@ "documentation":"

Deletes a configuration bundle and all of its versions.

", "idempotent":true }, + "DeleteDataset":{ + "name":"DeleteDataset", + "http":{ + "method":"DELETE", + "requestUri":"/datasets/{datasetId}", + "responseCode":202 + }, + "input":{"shape":"DeleteDatasetRequest"}, + "output":{"shape":"DeleteDatasetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes a dataset version or an entire dataset (all versions + name claim). Asynchronous 202.

State transitions:

  • If datasetVersion is absent (full delete): status transitions to DELETING immediately.
  • If datasetVersion is provided (version-specific delete): status transitions to UPDATING.

State guard (full delete): Returns ConflictException (DATASET_NOT_READY) if the dataset status is in {CREATING, UPDATING}. Deletion is allowed from ACTIVE, CREATE_FAILED, UPDATE_FAILED, and DELETE_FAILED states.

State guard (version-specific delete): Returns ConflictException (DATASET_NOT_READY) if the dataset status is not in {ACTIVE, CREATE_FAILED, UPDATE_FAILED}.

Fails with ConflictException (REFERENCED_BY_EVAL_JOB) if referenced by an active evaluation job (full delete only).

If the delete workflow fails after retries, status is set to DELETE_FAILED (full delete) or UPDATE_FAILED (version-specific delete). Calling DeleteDataset on a DELETE_FAILED dataset re-triggers the delete workflow (idempotent retry path).

Version parameter:

  • If datasetVersion is absent: deletes ALL versions and the Dataset record itself.
  • If datasetVersion is provided: deletes only that specific DatasetVersion. Returns ResourceNotFoundException if the specified version does not exist.
", + "idempotent":true + }, + "DeleteDatasetExamples":{ + "name":"DeleteDatasetExamples", + "http":{ + "method":"POST", + "requestUri":"/datasets/{datasetId}/examples/delete", + "responseCode":202 + }, + "input":{"shape":"DeleteDatasetExamplesRequest"}, + "output":{"shape":"DeleteDatasetExamplesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes specific examples by ID from DRAFT.

Validation: All example IDs are validated before any deletes occur. If any ID does not exist in DRAFT, the entire batch is rejected with ResourceNotFoundException — no examples are deleted (all-or-nothing semantics).

Asynchronous: Operates in-place on DRAFT. No version bump occurs. Use CreateDatasetVersion to publish DRAFT as a new numbered version.

State guard: Returns ConflictException (DATASET_NOT_READY) if the dataset status is not in {DRAFT, ACTIVE}.

" + }, "DeleteEvaluator":{ "name":"DeleteEvaluator", "http":{ @@ -1122,6 +1220,26 @@ "documentation":"

Gets a specific version of a configuration bundle by its version identifier.

", "readonly":true }, + "GetDataset":{ + "name":"GetDataset", + "http":{ + "method":"GET", + "requestUri":"/datasets/{datasetId}", + "responseCode":200 + }, + "input":{"shape":"GetDatasetRequest"}, + "output":{"shape":"GetDatasetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves dataset metadata only.

Use ?datasetVersion=DRAFT or ?datasetVersion=N to retrieve a specific version's metadata. If absent, defaults to DRAFT (the mutable working copy). Returns ResourceNotFoundException if the specified version is not found.

Initial state after CreateDataset: When CreateDataset completes successfully (status transitions to ACTIVE), only a DRAFT working copy exists. No published versions exist until CreateDatasetVersion is called. At this point draftStatus is MODIFIED because the DRAFT has content that has never been published.

Default version behavior: When datasetVersion is omitted, the operation returns the DRAFT working copy. To retrieve a specific published version, pass the version number as a string (e.g. ?datasetVersion=1).

State guard: Allowed for all statuses including DELETING. Returns the dataset record with its current status so callers can observe the deletion in progress.

For paginated example IDs use ListDatasetExamples.

", + "readonly":true + }, "GetEvaluator":{ "name":"GetEvaluator", "http":{ @@ -1713,6 +1831,63 @@ "documentation":"

Lists all configuration bundles in the account.

", "readonly":true }, + "ListDatasetExamples":{ + "name":"ListDatasetExamples", + "http":{ + "method":"GET", + "requestUri":"/datasets/{datasetId}/examples", + "responseCode":200 + }, + "input":{"shape":"ListDatasetExamplesRequest"}, + "output":{"shape":"ListDatasetExamplesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns paginated examples from the dataset.

Version-pinned pagination: The server embeds the resolved version in the nextToken. Once pagination begins, all subsequent pages are pinned to that version regardless of concurrent mutations or whether datasetVersion is passed on subsequent requests. The datasetVersion query parameter is only used for the first request (when nextToken is absent); if omitted, defaults to DRAFT.

State guard: Allowed for all statuses including DELETING.

", + "readonly":true + }, + "ListDatasetVersions":{ + "name":"ListDatasetVersions", + "http":{ + "method":"GET", + "requestUri":"/datasets/{datasetId}/versions", + "responseCode":200 + }, + "input":{"shape":"ListDatasetVersionsRequest"}, + "output":{"shape":"ListDatasetVersionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all published versions of a dataset, sorted by version number descending (newest first). Does not include the DRAFT working copy.

State guard: Allowed for all statuses including DELETING.

", + "readonly":true + }, + "ListDatasets":{ + "name":"ListDatasets", + "http":{ + "method":"GET", + "requestUri":"/datasets", + "responseCode":200 + }, + "input":{"shape":"ListDatasetsRequest"}, + "output":{"shape":"ListDatasetsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all datasets in the caller's account, paginated. No presigned URLs in list results.

", + "readonly":true + }, "ListEvaluators":{ "name":"ListEvaluators", "http":{ @@ -2347,6 +2522,46 @@ ], "documentation":"

Updates a configuration bundle by creating a new version with the specified changes. Each update creates a new version in the version history.

" }, + "UpdateDataset":{ + "name":"UpdateDataset", + "http":{ + "method":"PUT", + "requestUri":"/datasets/{datasetId}", + "responseCode":200 + }, + "input":{"shape":"UpdateDatasetRequest"}, + "output":{"shape":"UpdateDatasetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates a dataset's metadata. Synchronous operation. Only provided fields are updated; omitted fields remain unchanged.

To modify dataset content, use AddDatasetExamples, UpdateDatasetExamples, or DeleteDatasetExamples.

Cannot update: name, schemaType, kmsKeyArn (immutable after creation).

", + "idempotent":true + }, + "UpdateDatasetExamples":{ + "name":"UpdateDatasetExamples", + "http":{ + "method":"POST", + "requestUri":"/datasets/{datasetId}/examples/update", + "responseCode":202 + }, + "input":{"shape":"UpdateDatasetExamplesRequest"}, + "output":{"shape":"UpdateDatasetExamplesResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates multiple existing examples in-place on DRAFT.

Validation: All examples are validated against the dataset's schemaType before any writes occur. If any example fails validation, the entire batch is rejected with ValidationException — no examples are updated (all-or-nothing semantics).

Asynchronous: Operates in-place on DRAFT. No version bump occurs. Use CreateDatasetVersion to publish DRAFT as a new numbered version.

Fails with ResourceNotFoundException if any exampleId does not exist in DRAFT. To add new examples, use AddDatasetExamples instead.

State guard: Returns ConflictException (DATASET_NOT_READY) if the dataset status is not in {DRAFT, ACTIVE}.

Request size limit: Max 5 MB total request body. Max 1000 examples per call.

" + }, "UpdateEvaluator":{ "name":"UpdateEvaluator", "http":{ @@ -2751,6 +2966,67 @@ "AWS_IAM_ID_TOKEN_JWT" ] }, + "AddDatasetExamplesRequest":{ + "type":"structure", + "required":[ + "datasetId", + "source" + ], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset to add examples to.

", + "location":"uri", + "locationName":"datasetId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

", + "idempotencyToken":true + }, + "source":{ + "shape":"DataSourceType", + "documentation":"

Source of examples to add. Provide either inline examples or an S3 URI pointing to a JSONL file.

" + } + } + }, + "AddDatasetExamplesResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "status", + "addedCount", + "updatedAt", + "exampleIds" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

The current status of the dataset.

" + }, + "addedCount":{ + "shape":"Long", + "documentation":"

The number of examples added.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the examples were added.

" + }, + "exampleIds":{ + "shape":"ExampleIdList", + "documentation":"

IDs of all added examples (auto-generated UUIDs).

" + } + } + }, "AdditionalModelRequestFields":{ "type":"structure", "members":{}, @@ -4683,6 +4959,126 @@ } } }, + "CreateDatasetRequest":{ + "type":"structure", + "required":[ + "datasetName", + "source", + "schemaType" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Optional idempotency token.

", + "idempotencyToken":true + }, + "datasetName":{ + "shape":"DatasetName", + "documentation":"

Human-readable name for the dataset. Unique within the account (case-insensitive). Immutable after creation.

" + }, + "description":{ + "shape":"CreateDatasetRequestDescriptionString", + "documentation":"

A description of the dataset.

" + }, + "source":{ + "shape":"DataSourceType", + "documentation":"

Source of initial examples. Provide either inline examples or an S3 URI pointing to a JSONL file.

" + }, + "schemaType":{ + "shape":"DatasetSchemaType", + "documentation":"

Versioned schema type governing the structure of examples. Immutable after creation.

" + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

Optional AWS KMS key ARN for SSE-KMS on service S3 writes.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

A map of tag keys and values to assign to the dataset.

" + } + } + }, + "CreateDatasetRequestDescriptionString":{ + "type":"string", + "max":200, + "min":0 + }, + "CreateDatasetResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "status", + "createdAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the created dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the created dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

Always CREATING immediately after this call. Poll GetDataset until status == ACTIVE (draftStatus=MODIFIED) or CREATE_FAILED.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dataset was created.

" + } + } + }, + "CreateDatasetVersionRequest":{ + "type":"structure", + "required":["datasetId"], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset to publish a version for.

", + "location":"uri", + "locationName":"datasetId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

", + "idempotencyToken":true + } + } + }, + "CreateDatasetVersionResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "status", + "datasetVersion", + "createdAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

Always UPDATING immediately after this call. Poll GetDataset until status == ACTIVE (draftStatus=UNMODIFIED) or UPDATE_FAILED.

" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

The version being created.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the version creation was initiated.

" + } + } + }, "CreateEvaluatorRequest":{ "type":"structure", "required":[ @@ -6395,6 +6791,148 @@ "documentation":"

The configuration that specifies where to read agent traces for online evaluation.

", "union":true }, + "DataSourceType":{ + "type":"structure", + "members":{ + "inlineExamples":{ + "shape":"InlineExamplesSource", + "documentation":"

Inline examples provided directly in the request body.

" + }, + "s3Source":{ + "shape":"S3Source", + "documentation":"

S3 URI pointing to a JSONL file in the customer's bucket. The service reads this file using the caller's FAS credentials.

" + } + }, + "documentation":"

Source of examples to add to the dataset.

", + "union":true + }, + "DatasetArn":{ + "type":"string", + "pattern":"arn:aws(-[a-z]+)*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:dataset/[a-zA-Z0-9_-]{1,110}" + }, + "DatasetExampleList":{ + "type":"list", + "member":{"shape":"SensitiveJson"}, + "documentation":"

Each element is a free-form JSON document whose structure is defined by the dataset's schemaType. Validated against the declared schema at write time. If an exampleId string field is present it is used as the example identifier and removed from the persisted content; otherwise a UUID is generated automatically. exampleId must be a JSON string — numeric or other non-string types are rejected with a ValidationException.

" + }, + "DatasetId":{ + "type":"string", + "pattern":"[a-zA-Z0-9_-]{1,110}" + }, + "DatasetName":{ + "type":"string", + "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}" + }, + "DatasetSchemaType":{ + "type":"string", + "documentation":"

Format of a customer-provided source file.

JSONL (JSON Lines, one object per line) is the service's native ingestion and storage format — it can be streamed line-by-line without loading the entire file into memory, which is important as the row-count cap is extended.

JSON array ([{...},{...}]) is intentionally not supported at launch: it cannot be streamed (requires loading the full file into memory to parse), and all major eval frameworks (LangSmith, Ragas, DeepEval, Arize Phoenix) export as JSONL or CSV — not JSON arrays. Customers with JSON array files can Versioned schema type for dataset examples.

Each value identifies both the source format and the version of that format's schema. Schema definitions (required/optional fields) are stored as constants in SchemaRegistry. The schemaType on a Dataset is immutable after creation.

When a framework changes its format, a new version is added (e.g., RAGAS_V2) without breaking existing datasets using the old version. Content is always stored as-is.

", + "enum":[ + "AGENTCORE_EVALUATION_PREDEFINED_V1", + "AGENTCORE_EVALUATION_SIMULATED_V1" + ] + }, + "DatasetStatus":{ + "type":"string", + "documentation":"

Dataset lifecycle / operation status.

Two-column status model: DatasetStatus tracks lifecycle state independently from DraftStatus which tracks publish synchronization.

IN-FLIGHT states (busy — all writes blocked): CREATING — CreateDataset async ingestion in progress. UPDATING — Example mutation (Add/Update/Delete) or CreateDatasetVersion in progress. DELETING — Full or version-specific delete in progress.

TERMINAL states (stable — operations allowed per guards below): ACTIVE — Dataset is stable. failureReason cleared. CREATE_FAILED — Initial ingestion failed. DRAFT record exists but has no examples. failureReason populated. UPDATE_FAILED — Last example mutation or CreateDatasetVersion failed. DRAFT may be partially modified. failureReason populated. DELETE_FAILED — Delete failed after retries. Dataset/S3 may be in inconsistent state. Sev-2 ticket filed (full-delete only). failureReason populated.

State transitions: CreateDataset → CREATING → ACTIVE (draftStatus=MODIFIED) | CREATE_FAILED Add/Update/DeleteDatasetExamples → UPDATING → ACTIVE (draftStatus=MODIFIED) | UPDATE_FAILED CreateDatasetVersion → UPDATING → ACTIVE (draftStatus=UNMODIFIED) | UPDATE_FAILED DeleteDataset (version-specific) → DELETING → ACTIVE (draftStatus unchanged) | DELETE_FAILED DeleteDataset (full) → DELETING → (record deleted) | DELETE_FAILED [auto Sev-2]

Operation guards (ConflictException codes): GetDataset / ListDatasetExamples: — Allowed for all statuses (no guard) UpdateDataset, AddDatasetExamples, DeleteDatasetExamples: — DATASET_NOT_READY if status in {CREATING, UPDATING, DELETING} — DATASET_IN_FAILED_STATE if status == DELETE_FAILED UpdateDatasetExamples: — DATASET_NOT_READY if status in {CREATING, UPDATING, DELETING} — DATASET_IN_FAILED_STATE if status in {CREATE_FAILED, DELETE_FAILED} CreateDatasetVersion: — DATASET_NOT_READY if status in {CREATING, UPDATING, DELETING} — DATASET_IN_FAILED_STATE if status in {CREATE_FAILED, DELETE_FAILED} DeleteDataset: — DATASET_NOT_READY if status in {CREATING, UPDATING, DELETING}

", + "enum":[ + "CREATING", + "UPDATING", + "DELETING", + "ACTIVE", + "CREATE_FAILED", + "UPDATE_FAILED", + "DELETE_FAILED" + ] + }, + "DatasetSummary":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "datasetName", + "status", + "schemaType", + "exampleCount", + "createdAt", + "updatedAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "datasetName":{ + "shape":"DatasetName", + "documentation":"

The name of the dataset.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

The current status of the dataset.

" + }, + "draftStatus":{ + "shape":"DraftStatus", + "documentation":"

Publish synchronization state. Only authoritative when status == ACTIVE.

" + }, + "schemaType":{ + "shape":"DatasetSchemaType", + "documentation":"

The schema type of the dataset.

" + }, + "exampleCount":{ + "shape":"Long", + "documentation":"

The number of examples in the dataset.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dataset was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dataset was last updated.

" + } + }, + "documentation":"

Summary information about a dataset.

" + }, + "DatasetSummaryList":{ + "type":"list", + "member":{"shape":"DatasetSummary"} + }, + "DatasetVersion":{ + "type":"string", + "documentation":"

Dataset version identifier. Accepts "DRAFT" or a non-negative integer string.

"DRAFT" refers to the single mutable working copy of the dataset.

  • Always present after CreateDataset ingestion completes.
  • Content changes in-place when examples are added, updated, or deleted.
  • NOT tracked as a DDB DatasetVersionItem — state lives in S3 (draft/manifest.json, draft/dataset.jsonl) and the DatasetItem.exampleCount field.
  • Default for read operations when ?datasetVersion is absent.

An integer string (e.g. "1", "2", "3") refers to a published, immutable snapshot created by CreateDatasetVersion. Once created, a published version's content never changes. Stored as a DDB DatasetVersionItem (SK=VERSION#{zero-padded-N}).

", + "pattern":"(DRAFT|[0-9]+)" + }, + "DatasetVersionSummary":{ + "type":"structure", + "required":[ + "datasetVersion", + "exampleCount", + "createdAt" + ], + "members":{ + "datasetVersion":{"shape":"DatasetVersion"}, + "exampleCount":{ + "shape":"Long", + "documentation":"

The number of examples in this version.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when this version was published.

" + } + }, + "documentation":"

Summary information about a published dataset version.

" + }, + "DatasetVersionSummaryList":{ + "type":"list", + "member":{"shape":"DatasetVersionSummary"} + }, "DateTimestamp":{ "type":"timestamp", "timestampFormat":"iso8601" @@ -6662,24 +7200,136 @@ "shape":"ConfigurationBundleId", "documentation":"

The unique identifier of the configuration bundle to delete.

", "location":"uri", - "locationName":"bundleId" + "locationName":"bundleId" + } + } + }, + "DeleteConfigurationBundleResponse":{ + "type":"structure", + "required":[ + "bundleId", + "status" + ], + "members":{ + "bundleId":{ + "shape":"ConfigurationBundleId", + "documentation":"

The unique identifier of the deleted configuration bundle.

" + }, + "status":{ + "shape":"ConfigurationBundleStatus", + "documentation":"

The status of the configuration bundle deletion operation.

" + } + } + }, + "DeleteDatasetExamplesRequest":{ + "type":"structure", + "required":[ + "datasetId", + "exampleIds" + ], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

", + "location":"uri", + "locationName":"datasetId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

", + "idempotencyToken":true + }, + "exampleIds":{ + "shape":"DeleteDatasetExamplesRequestExampleIdsList", + "documentation":"

The IDs of the examples to delete.

" + } + } + }, + "DeleteDatasetExamplesRequestExampleIdsList":{ + "type":"list", + "member":{"shape":"ExampleId"}, + "max":1000, + "min":1 + }, + "DeleteDatasetExamplesResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "status", + "deletedCount", + "updatedAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

The current status of the dataset.

" + }, + "deletedCount":{ + "shape":"Long", + "documentation":"

The number of examples deleted.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the examples were deleted.

" + } + } + }, + "DeleteDatasetRequest":{ + "type":"structure", + "required":["datasetId"], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset to delete.

", + "location":"uri", + "locationName":"datasetId" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

Optional version to delete. Use "DRAFT" or omit to delete the draft. Returns ResourceNotFoundException if the specified version does not exist.

", + "location":"querystring", + "locationName":"datasetVersion" } } }, - "DeleteConfigurationBundleResponse":{ + "DeleteDatasetResponse":{ "type":"structure", "required":[ - "bundleId", - "status" + "datasetArn", + "datasetId", + "status", + "datasetVersion", + "updatedAt" ], "members":{ - "bundleId":{ - "shape":"ConfigurationBundleId", - "documentation":"

The unique identifier of the deleted configuration bundle.

" + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" }, "status":{ - "shape":"ConfigurationBundleStatus", - "documentation":"

The status of the configuration bundle deletion operation.

" + "shape":"DatasetStatus", + "documentation":"

The current status of the dataset after the delete request.

" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

The version deleted.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the delete was initiated.

" } } }, @@ -7321,6 +7971,18 @@ "type":"double", "box":true }, + "DownloadUrl":{ + "type":"string", + "sensitive":true + }, + "DraftStatus":{ + "type":"string", + "documentation":"

Publish synchronization state of the DRAFT working copy.

Tracks whether the current DRAFT content has been published as a version. Only authoritative when DatasetStatus == ACTIVE. Not meaningful during in-flight or failed states.

Transitions: CreateDataset succeeds → MODIFIED (DRAFT has content with no published version yet) Add/Update/DeleteExamples succeed → MODIFIED (DRAFT differs from last published version) CreateDatasetVersion succeeds → UNMODIFIED (DRAFT matches the version just published)

", + "enum":[ + "MODIFIED", + "UNMODIFIED" + ] + }, "EfsAccessPointArn":{ "type":"string", "max":128, @@ -7786,6 +8448,16 @@ "CustomCode" ] }, + "ExampleId":{ + "type":"string", + "max":256, + "min":0, + "pattern":"[a-zA-Z0-9_.:-]+" + }, + "ExampleIdList":{ + "type":"list", + "member":{"shape":"ExampleId"} + }, "ExceptionLevel":{ "type":"string", "enum":["DEBUG"] @@ -8904,6 +9576,104 @@ } } }, + "GetDatasetRequest":{ + "type":"structure", + "required":["datasetId"], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset to retrieve.

", + "location":"uri", + "locationName":"datasetId" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

Version to retrieve: "DRAFT" or a version number. Defaults to DRAFT if absent.

", + "location":"querystring", + "locationName":"datasetVersion" + } + } + }, + "GetDatasetResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "datasetVersion", + "datasetName", + "status", + "schemaType", + "exampleCount", + "createdAt", + "updatedAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

The resolved version: "DRAFT" (default) or the requested version number.

" + }, + "datasetName":{ + "shape":"DatasetName", + "documentation":"

The name of the dataset.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

The current status of the dataset.

" + }, + "draftStatus":{ + "shape":"DraftStatus", + "documentation":"

Publish synchronization state. Only authoritative when status == ACTIVE. MODIFIED — DRAFT has unpublished changes (or no published versions yet). UNMODIFIED — DRAFT matches the latest published version exactly.

" + }, + "failureReason":{ + "shape":"String", + "documentation":"

Populated when status is CREATE_FAILED, UPDATE_FAILED, or DELETE_FAILED.

" + }, + "schemaType":{ + "shape":"DatasetSchemaType", + "documentation":"

The schema type declared at create time. Immutable after creation.

" + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

AWS KMS key ARN used for SSE-KMS on service S3 writes, if configured.

" + }, + "exampleCount":{ + "shape":"Long", + "documentation":"

Example count for DRAFT.

" + }, + "downloadUrl":{ + "shape":"DownloadUrl", + "documentation":"

Presigned S3 URL to download the consolidated dataset.jsonl file for the resolved version (DRAFT or published). TTL: 5 minutes. Omitted if the file does not yet exist (e.g. during CREATING) or on presign failure.

" + }, + "downloadUrlExpiresAt":{ + "shape":"Timestamp", + "documentation":"

Expiry timestamp for downloadUrl.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dataset was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dataset was last updated.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

The tags associated with the dataset.

" + } + } + }, "GetEvaluatorRequest":{ "type":"structure", "required":["evaluatorId"], @@ -11292,6 +12062,24 @@ "max":102400, "min":1 }, + "InlineExamplesSource":{ + "type":"structure", + "required":["examples"], + "members":{ + "examples":{ + "shape":"InlineExamplesSourceExamplesList", + "documentation":"

Examples to add. Each example is assigned an auto-generated UUID.

" + } + }, + "documentation":"

Inline examples provided directly in the request body.

" + }, + "InlineExamplesSourceExamplesList":{ + "type":"list", + "member":{"shape":"SensitiveJson"}, + "documentation":"

Each element is a free-form JSON document whose structure is defined by the dataset's schemaType. Validated against the declared schema at write time. If an exampleId string field is present it is used as the example identifier and removed from the persisted content; otherwise a UUID is generated automatically. exampleId must be a JSON string — numeric or other non-string types are rejected with a ValidationException.

", + "max":1000, + "min":1 + }, "InlinePayload":{ "type":"string", "sensitive":true @@ -11851,6 +12639,164 @@ } } }, + "ListDatasetExamplesRequest":{ + "type":"structure", + "required":["datasetId"], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

", + "location":"uri", + "locationName":"datasetId" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

Version to paginate: "DRAFT" or a version number. Defaults to DRAFT if absent. Only used on the first request (when nextToken is absent). For subsequent pages, the version is extracted from the nextToken and this parameter is ignored.

", + "location":"querystring", + "locationName":"datasetVersion" + }, + "maxResults":{ + "shape":"ListDatasetExamplesRequestMaxResultsInteger", + "documentation":"

Maximum number of examples to return per page. Default: 1000. Min: 1, max: 1000. Response size is validated against 5 MB limit after reading. For bulk access to all examples, use the downloadUrl field from GetDataset.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"ListDatasetExamplesRequestNextTokenString", + "documentation":"

The token for the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDatasetExamplesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListDatasetExamplesRequestNextTokenString":{ + "type":"string", + "max":2048, + "min":0 + }, + "ListDatasetExamplesResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "datasetVersion", + "examples" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "datasetVersion":{ + "shape":"DatasetVersion", + "documentation":"

The version returned.

" + }, + "examples":{ + "shape":"DatasetExampleList", + "documentation":"

Paginated example content. Each element is a JSON object containing at least an exampleId field plus the schema-specific content fields.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results, or null if there are no more results.

" + } + } + }, + "ListDatasetVersionsRequest":{ + "type":"structure", + "required":["datasetId"], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

", + "location":"uri", + "locationName":"datasetId" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListDatasetVersionsRequestMaxResultsInteger", + "documentation":"

The maximum number of versions to return per page.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListDatasetVersionsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListDatasetVersionsResponse":{ + "type":"structure", + "required":["versions"], + "members":{ + "versions":{ + "shape":"DatasetVersionSummaryList", + "documentation":"

The list of published dataset versions.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results, or null if there are no more results.

" + } + } + }, + "ListDatasetsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"ListDatasetsRequestNextTokenString", + "documentation":"

The token for the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListDatasetsRequestMaxResultsInteger", + "documentation":"

The maximum number of datasets to return per page.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListDatasetsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListDatasetsRequestNextTokenString":{ + "type":"string", + "max":2048, + "min":0 + }, + "ListDatasetsResponse":{ + "type":"structure", + "required":["datasets"], + "members":{ + "datasets":{ + "shape":"DatasetSummaryList", + "documentation":"

The list of datasets.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results, or null if there are no more results.

" + } + } + }, "ListEvaluatorsRequest":{ "type":"structure", "members":{ @@ -12717,6 +13663,10 @@ "min":1, "pattern":"[.\\-_/#A-Za-z0-9]+" }, + "Long":{ + "type":"long", + "box":true + }, "MCPGatewayConfiguration":{ "type":"structure", "members":{ @@ -15507,6 +16457,22 @@ "max":1024, "min":3 }, + "S3Source":{ + "type":"structure", + "required":["s3Uri"], + "members":{ + "s3Uri":{ + "shape":"S3Uri", + "documentation":"

S3 URI of the JSONL file (e.g. s3://my-bucket/path/to/examples.jsonl).

" + } + }, + "documentation":"

S3 location of a JSONL file containing dataset examples.

" + }, + "S3Uri":{ + "type":"string", + "documentation":"

S3 URI string (s3://bucket/key).

", + "pattern":"s3://[a-z0-9][a-z0-9.\\-]{1,61}[a-z0-9]/.{1,1024}" + }, "SalesforceOauth2ProviderConfigInput":{ "type":"structure", "required":[ @@ -17454,6 +18420,117 @@ } } }, + "UpdateDatasetExamplesRequest":{ + "type":"structure", + "required":[ + "datasetId", + "examples" + ], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

", + "location":"uri", + "locationName":"datasetId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

", + "idempotencyToken":true + }, + "examples":{ + "shape":"UpdateDatasetExamplesRequestExamplesList", + "documentation":"

Examples to update. Each element is a JSON object containing a required exampleId string field identifying the existing example, plus the replacement fields. The exampleId is extracted and removed before persistence; the remaining document is validated against the dataset's schemaType. Max 1000 examples per call. Total request body must not exceed 5 MB.

" + } + } + }, + "UpdateDatasetExamplesRequestExamplesList":{ + "type":"list", + "member":{"shape":"SensitiveJson"}, + "documentation":"

Each element is a free-form JSON document whose structure is defined by the dataset's schemaType. Validated against the declared schema at write time. If an exampleId string field is present it is used as the example identifier and removed from the persisted content; otherwise a UUID is generated automatically. exampleId must be a JSON string — numeric or other non-string types are rejected with a ValidationException.

", + "max":1000, + "min":1 + }, + "UpdateDatasetExamplesResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "status", + "updatedCount", + "updatedAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset.

" + }, + "status":{ + "shape":"DatasetStatus", + "documentation":"

The current status of the dataset.

" + }, + "updatedCount":{ + "shape":"Long", + "documentation":"

The number of examples updated.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the examples were updated.

" + } + } + }, + "UpdateDatasetRequest":{ + "type":"structure", + "required":["datasetId"], + "members":{ + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the dataset to update.

", + "location":"uri", + "locationName":"datasetId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

", + "idempotencyToken":true + }, + "description":{ + "shape":"UpdateDatasetRequestDescriptionString", + "documentation":"

The updated description for the dataset.

" + } + } + }, + "UpdateDatasetRequestDescriptionString":{ + "type":"string", + "max":200, + "min":0 + }, + "UpdateDatasetResponse":{ + "type":"structure", + "required":[ + "datasetArn", + "datasetId", + "updatedAt" + ], + "members":{ + "datasetArn":{ + "shape":"DatasetArn", + "documentation":"

The Amazon Resource Name (ARN) of the updated dataset.

" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier of the updated dataset.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dataset was updated.

" + } + } + }, "UpdateEvaluatorRequest":{ "type":"structure", "required":["evaluatorId"], diff --git a/awscli/botocore/data/cleanrooms/2022-02-17/service-2.json b/awscli/botocore/data/cleanrooms/2022-02-17/service-2.json index 9c51114e574f..66808232530a 100644 --- a/awscli/botocore/data/cleanrooms/2022-02-17/service-2.json +++ b/awscli/botocore/data/cleanrooms/2022-02-17/service-2.json @@ -3047,7 +3047,13 @@ "ADD_MEMBER", "GRANT_RECEIVE_RESULTS_ABILITY", "REVOKE_RECEIVE_RESULTS_ABILITY", - "EDIT_AUTO_APPROVED_CHANGE_TYPES" + "EDIT_AUTO_APPROVED_CHANGE_TYPES", + "ADD_PAYER_CANDIDATE", + "REMOVE_PAYER_CANDIDATE", + "GRANT_CAN_RECEIVE_MODEL_OUTPUT", + "GRANT_CAN_RECEIVE_INFERENCE_OUTPUT", + "REVOKE_CAN_RECEIVE_MODEL_OUTPUT", + "REVOKE_CAN_RECEIVE_INFERENCE_OUTPUT" ] }, "ChangeTypeList":{ @@ -8177,6 +8183,8 @@ "shape":"MemberAbilities", "documentation":"

The abilities granted to the collaboration member. These determine what actions the member can perform within the collaboration.

The following values are currently not supported: CAN_QUERY and CAN_RUN_JOB.

Set the value of memberAbilities to [] to allow a member to contribute data.

Set the value of memberAbilities to [CAN_RECEIVE_RESULTS] to allow a member to contribute data and receive results.

" }, + "mlMemberAbilities":{"shape":"MLMemberAbilities"}, + "paymentConfiguration":{"shape":"PaymentConfiguration"}, "displayName":{ "shape":"DisplayName", "documentation":"

Specifies the display name that will be shown for this member in the collaboration. While this field is required when inviting new members, it becomes optional when modifying abilities of existing collaboration members.

" @@ -9142,6 +9150,10 @@ "computeConfiguration":{ "shape":"ProtectedJobComputeConfiguration", "documentation":"

The compute configuration for the protected job.

" + }, + "jobComputePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that pays for the job compute costs.

" } }, "documentation":"

The parameters for an Clean Rooms protected job.

" @@ -9467,6 +9479,10 @@ "receiverConfigurations":{ "shape":"ProtectedJobReceiverConfigurations", "documentation":"

The receiver configurations for the protected job.

" + }, + "jobComputePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that pays for the job compute costs.

" } }, "documentation":"

The protected job summary for the objects listed by the request.

" @@ -9571,6 +9587,10 @@ "computeConfiguration":{ "shape":"ComputeConfiguration", "documentation":"

The compute configuration for the protected query.

" + }, + "queryComputePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that pays for the query compute costs.

" } }, "documentation":"

The parameters for an Clean Rooms protected query.

" @@ -9848,6 +9868,10 @@ "receiverConfigurations":{ "shape":"ReceiverConfigurationsList", "documentation":"

The receiver configuration.

" + }, + "queryComputePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that pays for the query compute costs.

" } }, "documentation":"

The protected query summary for the objects listed by the request.

" @@ -10533,6 +10557,10 @@ "computeConfiguration":{ "shape":"ProtectedJobComputeConfiguration", "documentation":"

The compute configuration for the protected job.

" + }, + "jobComputePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that pays for the job compute costs.

" } } }, @@ -10575,6 +10603,10 @@ "computeConfiguration":{ "shape":"ComputeConfiguration", "documentation":"

The compute configuration for the protected query.

" + }, + "queryComputePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that pays for the query compute costs.

" } } }, @@ -11228,6 +11260,10 @@ "defaultJobResultConfiguration":{ "shape":"MembershipProtectedJobResultConfiguration", "documentation":"

The default job result configuration.

" + }, + "membershipPaymentConfiguration":{ + "shape":"UpdateMembershipPaymentConfiguration", + "documentation":"

The payment configuration to update for the membership.

" } } }, @@ -11238,6 +11274,15 @@ "membership":{"shape":"Membership"} } }, + "UpdateMembershipPaymentConfiguration":{ + "type":"structure", + "members":{ + "queryCompute":{"shape":"MembershipQueryComputePaymentConfig"}, + "machineLearning":{"shape":"MembershipMLPaymentConfig"}, + "jobCompute":{"shape":"MembershipJobComputePaymentConfig"} + }, + "documentation":"

An object representing the payment responsibilities to update for the membership.

" + }, "UpdatePrivacyBudgetTemplateInput":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/cleanroomsml/2023-09-06/service-2.json b/awscli/botocore/data/cleanroomsml/2023-09-06/service-2.json index 96e8d8d8fc11..a3e0804626e5 100644 --- a/awscli/botocore/data/cleanroomsml/2023-09-06/service-2.json +++ b/awscli/botocore/data/cleanroomsml/2023-09-06/service-2.json @@ -1643,6 +1643,10 @@ "description":{ "shape":"ResourceDescription", "documentation":"

The description of the ML input channel.

" + }, + "payerConfiguration":{ + "shape":"PayerConfiguration", + "documentation":"

The payer configuration for the ML input channel.

" } }, "documentation":"

Provides summary information about an ML input channel in a collaboration.

" @@ -1795,6 +1799,10 @@ "shape":"String", "documentation":"

Details about the logs status for the trained model inference job.

" }, + "mlModelInferencePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model inference costs.

" + }, "createTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time at which the trained model inference job was created.

" @@ -1875,6 +1883,10 @@ "creatorAccountId":{ "shape":"AccountId", "documentation":"

The account ID of the member that created the trained model.

" + }, + "mlModelTrainingPayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model training costs.

" } }, "documentation":"

Provides summary information about a trained model in a collaboration.

" @@ -2421,6 +2433,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The optional metadata that you apply to the resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Clean Rooms ML considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "payerConfiguration":{ + "shape":"PayerConfiguration", + "documentation":"

The payer configuration for the ML input channel. Determines which member account pays for compute and synthetic data costs.

" } } }, @@ -2509,6 +2525,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The optional metadata that you apply to the resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Clean Rooms ML considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "mlModelTrainingPayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model training costs.

" } } }, @@ -3172,6 +3192,10 @@ "shape":"SyntheticDataConfiguration", "documentation":"

The synthetic data configuration for this ML input channel, including parameters for generating privacy-preserving synthetic data and evaluation scores for measuring the privacy of the generated data.

" }, + "payerConfiguration":{ + "shape":"PayerConfiguration", + "documentation":"

The payer configuration for the ML input channel.

" + }, "createTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time at which the ML input channel was created.

" @@ -3314,6 +3338,10 @@ "shape":"String", "documentation":"

Information about the training container image.

" }, + "mlModelTrainingPayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model training costs.

" + }, "createTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time at which the trained model was created.

" @@ -3700,6 +3728,10 @@ "shape":"SyntheticDataConfiguration", "documentation":"

The synthetic data configuration for this ML input channel, including parameters for generating privacy-preserving synthetic data and evaluation scores for measuring the privacy of the generated data.

" }, + "payerConfiguration":{ + "shape":"PayerConfiguration", + "documentation":"

The payer configuration for the ML input channel.

" + }, "createTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time at which the ML input channel was created.

" @@ -3888,6 +3920,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The optional metadata that you applied to the resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Clean Rooms ML considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "mlModelInferencePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model inference costs.

" } } }, @@ -4001,6 +4037,10 @@ "shape":"String", "documentation":"

Information about the training image container.

" }, + "mlModelTrainingPayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model training costs.

" + }, "createTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time at which the trained model was created.

" @@ -5393,6 +5433,10 @@ "description":{ "shape":"ResourceDescription", "documentation":"

The description of the ML input channel.

" + }, + "payerConfiguration":{ + "shape":"PayerConfiguration", + "documentation":"

The payer configuration for the ML input channel.

" } }, "documentation":"

Provides summary information about the ML input channel.

" @@ -5643,6 +5687,20 @@ "max":1000, "min":0 }, + "PayerConfiguration":{ + "type":"structure", + "members":{ + "computePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying compute costs.

" + }, + "syntheticDataPayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying synthetic data generation costs.

" + } + }, + "documentation":"

Specifies which member accounts are responsible for paying for compute and synthetic data generation costs in a Clean Rooms ML collaboration.

" + }, "PolicyExistenceCondition":{ "type":"string", "enum":[ @@ -6130,6 +6188,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The optional metadata that you apply to the resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Clean Rooms ML considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "mlModelInferencePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model inference costs.

" } } }, @@ -6535,6 +6597,10 @@ "shape":"String", "documentation":"

Details about the log status for the trained model inference job.

" }, + "mlModelInferencePayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model inference costs.

" + }, "createTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time at which the trained model inference job was created.

" @@ -6664,6 +6730,10 @@ "configuredModelAlgorithmAssociationArn":{ "shape":"ConfiguredModelAlgorithmAssociationArn", "documentation":"

The Amazon Resource Name (ARN) of the configured model algorithm association that was used to create this trained model.

" + }, + "mlModelTrainingPayerAccountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the member that is responsible for paying for model training costs.

" } }, "documentation":"

Summary information about the trained model.

" diff --git a/awscli/botocore/data/evs/2023-07-27/service-2.json b/awscli/botocore/data/evs/2023-07-27/service-2.json index 56eb436a5e1d..816d6ef80c30 100644 --- a/awscli/botocore/data/evs/2023-07-27/service-2.json +++ b/awscli/botocore/data/evs/2023-07-27/service-2.json @@ -171,6 +171,22 @@ "documentation":"

Disassociates an Elastic IP address from a public HCX VLAN. This operation is only allowed for public HCX VLANs at this time.

", "idempotent":true }, + "GetDepotUrl":{ + "name":"GetDepotUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDepotUrlRequest"}, + "output":{"shape":"GetDepotUrlResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a URL and authentication token for accessing the Amazon EVS Custom Addon depot. Configure the depot URL as a download source in vSphere Lifecycle Manager (vLCM) to sync and install the Amazon EVS Custom Addon.

The depot URL remains active until you rotate the authentication token by calling this action with rotate set to true.

", + "readonly":true + }, "GetEnvironment":{ "name":"GetEnvironment", "http":{ @@ -1171,6 +1187,37 @@ "type":"list", "member":{"shape":"String"} }, + "GetDepotUrlRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{ + "shape":"EnvironmentId", + "documentation":"

The unique ID of the Amazon EVS environment to get the depot URL for.

" + }, + "rotate":{ + "shape":"Boolean", + "documentation":"

Revokes the current authentication token and returns a new depot URL with a new token. Previously issued depot URLs will stop working within 5 minutes of rotation.

" + } + } + }, + "GetDepotUrlResponse":{ + "type":"structure", + "required":[ + "depotUrl", + "token" + ], + "members":{ + "depotUrl":{ + "shape":"String", + "documentation":"

The URL for accessing the Amazon EVS Custom Addon depot. This URL includes the authentication token as a path component.

" + }, + "token":{ + "shape":"String", + "documentation":"

The authentication token for depot access. This token is included in the depot URL and is used to authenticate requests.

" + } + } + }, "GetEnvironmentRequest":{ "type":"structure", "required":["environmentId"], @@ -1812,7 +1859,8 @@ }, "SolutionKey":{ "type":"string", - "pattern":"[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}" + "pattern":"[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}", + "sensitive":true }, "StateDetails":{"type":"string"}, "String":{"type":"string"}, @@ -1965,7 +2013,8 @@ }, "VSanLicenseKey":{ "type":"string", - "pattern":"[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}" + "pattern":"[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}", + "sensitive":true }, "ValidationException":{ "type":"structure", diff --git a/awscli/botocore/data/mediaconnect/2018-11-14/service-2.json b/awscli/botocore/data/mediaconnect/2018-11-14/service-2.json index 6b1fbd4abd53..a0bfe9a2694f 100644 --- a/awscli/botocore/data/mediaconnect/2018-11-14/service-2.json +++ b/awscli/botocore/data/mediaconnect/2018-11-14/service-2.json @@ -2225,6 +2225,11 @@ "RouterIntegrationTransitEncryption":{ "shape":"FlowTransitEncryption", "locationName":"routerIntegrationTransitEncryption" + }, + "NdiOutputTimecodeSource":{ + "shape":"NdiOutputTimecodeSource", + "documentation":"

Controls how MediaConnect generates timecodes for NDI output frames. If you don't specify this field, MediaConnect uses EMBEDDED_TIMECODE.

  • EMBEDDED_TIMECODE (default) - Preserves timecodes from the input transport stream. The timecodes must be embedded in the video stream as SEI timing messages. If no embedded timecode is detected, MediaConnect uses the UTC system time instead.

  • UTC_SYSTEM_TIME - Generates timecodes based on the system clock time when each frame is sent.

", + "locationName":"ndiOutputTimecodeSource" } }, "documentation":"

A request to add an output to a flow.

" @@ -3146,7 +3151,8 @@ "CreateRouterNetworkInterfaceRequestNameString":{ "type":"string", "max":128, - "min":1 + "min":1, + "pattern":"[a-zA-Z0-9]([a-zA-Z0-9\\-_]*[a-zA-Z0-9])?" }, "CreateRouterNetworkInterfaceResponse":{ "type":"structure", @@ -6538,6 +6544,13 @@ }, "documentation":"

Detailed information about a single media stream that is part of an NDI® source. This includes details about the stream type, codec, resolution, frame rate, audio channels, and sample rate.

" }, + "NdiOutputTimecodeSource":{ + "type":"string", + "enum":[ + "EMBEDDED_TIMECODE", + "UTC_SYSTEM_TIME" + ] + }, "NdiSourceInfo":{ "type":"structure", "required":["SourceName"], @@ -6860,13 +6873,17 @@ "required":["Cidr"], "members":{ "Cidr":{ - "shape":"String", + "shape":"PublicRouterNetworkInterfaceRuleCidrString", "documentation":"

The CIDR block that is allowed to access the public router network interface.

", "locationName":"cidr" } }, "documentation":"

A rule that allows a specific CIDR block to access the public router network interface.

" }, + "PublicRouterNetworkInterfaceRuleCidrString":{ + "type":"string", + "pattern":"(?:[0-9]{1,3}\\.){3}[0-9]{1,3}/([0-9]|[12][0-9]|3[0-2])" + }, "PurchaseOfferingRequest":{ "type":"structure", "required":[ @@ -9604,6 +9621,11 @@ "shape":"NdiSourceSettings", "documentation":"

The settings for the NDI source. This includes the exact name of the upstream NDI sender that you want to connect to your source.

", "locationName":"ndiSourceSettings" + }, + "NdiOutputTimecodeSource":{ + "shape":"NdiOutputTimecodeSource", + "documentation":"

The timecode source for NDI output frames. For NDI outputs, this field is always present and defaults to EMBEDDED_TIMECODE.

  • EMBEDDED_TIMECODE - Preserves timecodes from the input transport stream. The timecodes must be embedded in the video stream as SEI timing messages. If no embedded timecode is detected, MediaConnect uses the UTC system time instead.

  • UTC_SYSTEM_TIME - Generates timecodes based on the system clock time when each frame is sent.

", + "locationName":"ndiOutputTimecodeSource" } }, "documentation":"

Attributes related to the transport stream that are used in a source or output.

" @@ -10340,6 +10362,11 @@ "RouterIntegrationTransitEncryption":{ "shape":"FlowTransitEncryption", "locationName":"routerIntegrationTransitEncryption" + }, + "NdiOutputTimecodeSource":{ + "shape":"NdiOutputTimecodeSource", + "documentation":"

Controls how MediaConnect generates timecodes for NDI output frames. If you don't specify this field, MediaConnect leaves the value unchanged.

  • EMBEDDED_TIMECODE - Preserves timecodes from the input transport stream. The timecodes must be embedded in the video stream as SEI timing messages. If no embedded timecode is detected, MediaConnect uses the UTC system time instead.

  • UTC_SYSTEM_TIME - Generates timecodes based on the system clock time when each frame is sent.

", + "locationName":"ndiOutputTimecodeSource" } } }, @@ -10755,7 +10782,8 @@ "UpdateRouterNetworkInterfaceRequestNameString":{ "type":"string", "max":128, - "min":1 + "min":1, + "pattern":"[a-zA-Z0-9]([a-zA-Z0-9\\-_]*[a-zA-Z0-9])?" }, "UpdateRouterNetworkInterfaceResponse":{ "type":"structure", diff --git a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json index 6da02e1cb791..b8a68f37779e 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json @@ -13111,6 +13111,10 @@ "shape":"AppSecurityGroupManagement", "documentation":"

The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided. If setting up the domain for use with RStudio, this value must be set to Service.

" }, + "HomeEfsFileSystemCreation":{ + "shape":"HomeEfsFileSystemCreation", + "documentation":"

Indicates whether to create a home EFS file system for the domain. Defaults to Enabled. Set to Disabled to skip EFS creation and reduce domain creation time. You can enable EFS later by calling UpdateDomain.

" + }, "TagPropagation":{ "shape":"TagPropagation", "documentation":"

Indicates whether custom tag propagation is supported for the domain. Defaults to DISABLED.

" @@ -14667,7 +14671,7 @@ }, "PlatformIdentifier":{ "shape":"PlatformIdentifier", - "documentation":"

The platform identifier of the notebook instance runtime environment. The default value is notebook-al2-v2.

" + "documentation":"

The platform identifier of the notebook instance runtime environment. The default value is notebook-al2023-v1.

" }, "InstanceMetadataServiceConfiguration":{ "shape":"InstanceMetadataServiceConfiguration", @@ -18934,6 +18938,10 @@ "shape":"AppSecurityGroupManagement", "documentation":"

The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.

" }, + "HomeEfsFileSystemCreation":{ + "shape":"HomeEfsFileSystemCreation", + "documentation":"

Indicates whether a home EFS file system is created for the domain.

" + }, "TagPropagation":{ "shape":"TagPropagation", "documentation":"

Indicates whether custom tag propagation is supported for the domain.

" @@ -25875,6 +25883,14 @@ }, "documentation":"

Stores the holiday featurization attributes applicable to each item of time-series datasets during the training of a forecasting model. This allows the model to identify patterns associated with specific holidays.

" }, + "HomeEfsFileSystemCreation":{ + "type":"string", + "documentation":"

Indicates whether a home EFS file system is created for the domain.

", + "enum":[ + "Enabled", + "Disabled" + ] + }, "HookParameters":{ "type":"map", "key":{"shape":"ConfigKey"}, @@ -48303,6 +48319,10 @@ "shape":"TagPropagation", "documentation":"

Indicates whether custom tag propagation is supported for the domain. Defaults to DISABLED.

" }, + "HomeEfsFileSystemCreation":{ + "shape":"HomeEfsFileSystemCreation", + "documentation":"

Indicates whether to create a home EFS file system for the domain. You can change from Disabled to Enabled to provision EFS on demand, but you cannot change from Enabled to Disabled.

" + }, "VpcId":{ "shape":"VpcId", "documentation":"

The identifier for the VPC used by the domain for network communication. Use this field only when adding VPC configuration to a SageMaker AI domain used in Amazon SageMaker Unified Studio that was created without VPC settings. SageMaker AI doesn't automatically apply VPC updates to existing applications. Stop and restart your applications to apply the changes.

" diff --git a/awscli/botocore/data/verifiedpermissions/2021-12-01/service-2.json b/awscli/botocore/data/verifiedpermissions/2021-12-01/service-2.json index 3d4182420c08..806cb8723aff 100644 --- a/awscli/botocore/data/verifiedpermissions/2021-12-01/service-2.json +++ b/awscli/botocore/data/verifiedpermissions/2021-12-01/service-2.json @@ -124,7 +124,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a policy store. A policy store is a container for policy resources.

Although Cedar supports multiple namespaces, Verified Permissions currently supports only one namespace per policy store.

Verified Permissions is eventually consistent . It can take a few seconds for a new or changed element to propagate through the service and be visible in the results of other Verified Permissions operations.

", + "documentation":"

Creates a policy store. A policy store is a container for policy resources.

As of May 2026, Verified Permissions has aligned with Cedar and now supports multiple namespaces.

Verified Permissions is eventually consistent . It can take a few seconds for a new or changed element to propagate through the service and be visible in the results of other Verified Permissions operations.

", "idempotent":true }, "CreatePolicyStoreAlias":{ @@ -238,7 +238,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes the specified policy store alias.

This operation is idempotent. If you specify a policy store alias that does not exist, the request response will still return a successful HTTP 200 status code.

When a policy store alias is deleted, it enters the PendingDeletion state. When a policy store alias is in the PendingDeletion state, new policy store aliases cannot be created with the same name. If the policy store alias is used in an API that has a policyStoreId field, the operation will fail with a ResourceNotFound exception.

", + "documentation":"

Deletes the specified policy store alias.

This operation is idempotent. If you specify a policy store alias that does not exist, the request response will still return a successful HTTP 200 status code.

By default, when a policy store alias is deleted, it enters the PendingDeletion state. When a policy store alias is in the PendingDeletion state, new policy store aliases cannot be created with the same name. If the policy store alias is used in an API that has a policyStoreId field, the operation will fail with a ResourceNotFound exception.

To immediately delete a policy store alias and bypass the PendingDeletion state, set the deletionMode parameter to HardDelete.

Verified Permissions is eventually consistent. If you hard delete a policy store alias and then immediately recreate it to be associated with a different policy store, requests that reference this alias may continue to be evaluated against the previously associated policy store for a short period of time.

", "idempotent":true }, "DeletePolicyTemplate":{ @@ -1727,6 +1727,10 @@ "aliasName":{ "shape":"Alias", "documentation":"

Specifies the name of the policy store alias that you want to delete.

The alias name must always be prefixed with policy-store-alias/.

" + }, + "deletionMode":{ + "shape":"DeletionMode", + "documentation":"

Specifies the deletion mode for the policy store alias. The valid values are:

  • SoftDelete – The policy store alias enters the PendingDeletion state. This is the default behavior when no deletionMode is specified.

  • HardDelete – The policy store alias is immediately deleted, bypassing the PendingDeletion state.

" } } }, @@ -1769,6 +1773,14 @@ "type":"structure", "members":{} }, + "DeletionMode":{ + "type":"string", + "documentation":"

The deletion mode for a resource. The valid values are:

  • SoftDelete – The resource enters the PendingDeletion state. This is the default behavior.

  • HardDelete – The resource is immediately deleted, bypassing the PendingDeletion state.

", + "enum":[ + "SoftDelete", + "HardDelete" + ] + }, "DeletionProtection":{ "type":"string", "enum":[ @@ -3108,7 +3120,7 @@ "documentation":"

The OIDC configuration for processing identity (ID) tokens. Contains allowed client ID claims, for example 1example23456789, and the claim that you want to map to the principal, for example sub.

" } }, - "documentation":"

The token type that you want to process from your OIDC identity provider. Your policy store can process either identity (ID) or access tokens from a given OIDC identity source.

This data type is part of a OpenIdConnectConfigurationItem structure, which is a parameter of ListIdentitySources.

", + "documentation":"

The token type that you want to process from your OIDC identity provider. Your policy store can process either identity (ID) or access tokens from a given OIDC identity source.

This data type is part of a OpenIdConnectConfigurationItem structure, which is a parameter of ListIdentitySources.

", "union":true }, "OpenIdIssuer":{ From 7f1275d8310c38e366aec042b4a705d3e5f4651f Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 21 May 2026 20:14:09 +0000 Subject: [PATCH 28/73] Bump version to 2.34.52 --- .changes/2.34.52.json | 47 +++++++++++++++++++ .../next-release/api-change-batch-88625.json | 5 -- ...-change-bedrockagentcorecontrol-97189.json | 5 -- .../api-change-cleanrooms-61199.json | 5 -- .../api-change-cleanroomsml-21411.json | 5 -- .../next-release/api-change-evs-72684.json | 5 -- .../api-change-mediaconnect-45174.json | 5 -- .../api-change-sagemaker-73849.json | 5 -- .../api-change-verifiedpermissions-80560.json | 5 -- .../enhancement-Python-12278.json | 5 -- CHANGELOG.rst | 14 ++++++ awscli/__init__.py | 2 +- configure | 14 +++--- configure.ac | 2 +- doc/source/conf.py | 2 +- 15 files changed, 71 insertions(+), 55 deletions(-) create mode 100644 .changes/2.34.52.json delete mode 100644 .changes/next-release/api-change-batch-88625.json delete mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-97189.json delete mode 100644 .changes/next-release/api-change-cleanrooms-61199.json delete mode 100644 .changes/next-release/api-change-cleanroomsml-21411.json delete mode 100644 .changes/next-release/api-change-evs-72684.json delete mode 100644 .changes/next-release/api-change-mediaconnect-45174.json delete mode 100644 .changes/next-release/api-change-sagemaker-73849.json delete mode 100644 .changes/next-release/api-change-verifiedpermissions-80560.json delete mode 100644 .changes/next-release/enhancement-Python-12278.json diff --git a/.changes/2.34.52.json b/.changes/2.34.52.json new file mode 100644 index 000000000000..523382f49700 --- /dev/null +++ b/.changes/2.34.52.json @@ -0,0 +1,47 @@ +[ + { + "category": "``batch``", + "description": "Clarified CreateComputeEnvironment parameter requirements - serviceRole is required for UNMANAGED compute environments, allocationStrategy is required for EKS compute environments, and compute environments must be created in the ENABLED state.", + "type": "api-change" + }, + { + "category": "Python", + "description": "Upgraded bundled Python interpreter to version 3.14.5.", + "type": "enhancement" + }, + { + "category": "``sagemaker``", + "description": "Add support for disabling home EFS file system creation on SageMaker domains.", + "type": "api-change" + }, + { + "category": "``mediaconnect``", + "description": "Adds support for controlling the timecode source of NDI flow outputs.", + "type": "api-change" + }, + { + "category": "``cleanroomsml``", + "description": "Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing.", + "type": "api-change" + }, + { + "category": "``cleanrooms``", + "description": "Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing.", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore-control``", + "description": "Adds dataset management APIs for creating, versioning, and managing evaluation datasets.", + "type": "api-change" + }, + { + "category": "``verifiedpermissions``", + "description": "Support hard deleting policy store aliases. Users can now delete an alias and immediately reassign it to a different policy store without waiting for the soft-delete retention period.", + "type": "api-change" + }, + { + "category": "``evs``", + "description": "A new GetDepotUrl API has been added to retrieve a URL for accessing Amazon EVS custom addon packages. Customers can use this URL to configure vSphere Lifecycle Manager (vLCM) as an online depot source, enabling upgrades of addon components across ESXi hosts.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-batch-88625.json b/.changes/next-release/api-change-batch-88625.json deleted file mode 100644 index 735673ec3e85..000000000000 --- a/.changes/next-release/api-change-batch-88625.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``batch``", - "description": "Clarified CreateComputeEnvironment parameter requirements - serviceRole is required for UNMANAGED compute environments, allocationStrategy is required for EKS compute environments, and compute environments must be created in the ENABLED state." -} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-97189.json b/.changes/next-release/api-change-bedrockagentcorecontrol-97189.json deleted file mode 100644 index 6cf1754c2d8e..000000000000 --- a/.changes/next-release/api-change-bedrockagentcorecontrol-97189.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore-control``", - "description": "Adds dataset management APIs for creating, versioning, and managing evaluation datasets." -} diff --git a/.changes/next-release/api-change-cleanrooms-61199.json b/.changes/next-release/api-change-cleanrooms-61199.json deleted file mode 100644 index 04e30224aca5..000000000000 --- a/.changes/next-release/api-change-cleanrooms-61199.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cleanrooms``", - "description": "Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing." -} diff --git a/.changes/next-release/api-change-cleanroomsml-21411.json b/.changes/next-release/api-change-cleanroomsml-21411.json deleted file mode 100644 index ba771c0da827..000000000000 --- a/.changes/next-release/api-change-cleanroomsml-21411.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cleanroomsml``", - "description": "Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing." -} diff --git a/.changes/next-release/api-change-evs-72684.json b/.changes/next-release/api-change-evs-72684.json deleted file mode 100644 index b376441db290..000000000000 --- a/.changes/next-release/api-change-evs-72684.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``evs``", - "description": "A new GetDepotUrl API has been added to retrieve a URL for accessing Amazon EVS custom addon packages. Customers can use this URL to configure vSphere Lifecycle Manager (vLCM) as an online depot source, enabling upgrades of addon components across ESXi hosts." -} diff --git a/.changes/next-release/api-change-mediaconnect-45174.json b/.changes/next-release/api-change-mediaconnect-45174.json deleted file mode 100644 index b4378cabe66d..000000000000 --- a/.changes/next-release/api-change-mediaconnect-45174.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``mediaconnect``", - "description": "Adds support for controlling the timecode source of NDI flow outputs." -} diff --git a/.changes/next-release/api-change-sagemaker-73849.json b/.changes/next-release/api-change-sagemaker-73849.json deleted file mode 100644 index 0893daf3320c..000000000000 --- a/.changes/next-release/api-change-sagemaker-73849.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemaker``", - "description": "Add support for disabling home EFS file system creation on SageMaker domains." -} diff --git a/.changes/next-release/api-change-verifiedpermissions-80560.json b/.changes/next-release/api-change-verifiedpermissions-80560.json deleted file mode 100644 index 3296b8cbf530..000000000000 --- a/.changes/next-release/api-change-verifiedpermissions-80560.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``verifiedpermissions``", - "description": "Support hard deleting policy store aliases. Users can now delete an alias and immediately reassign it to a different policy store without waiting for the soft-delete retention period." -} diff --git a/.changes/next-release/enhancement-Python-12278.json b/.changes/next-release/enhancement-Python-12278.json deleted file mode 100644 index fa292da6e333..000000000000 --- a/.changes/next-release/enhancement-Python-12278.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "Python", - "description": "Upgraded bundled Python interpreter to version 3.14.5." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 34d1e8e2b6f4..d1ceb8e89836 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,20 @@ CHANGELOG ========= +2.34.52 +======= + +* api-change:``batch``: Clarified CreateComputeEnvironment parameter requirements - serviceRole is required for UNMANAGED compute environments, allocationStrategy is required for EKS compute environments, and compute environments must be created in the ENABLED state. +* enhancement:Python: Upgraded bundled Python interpreter to version 3.14.5. +* api-change:``sagemaker``: Add support for disabling home EFS file system creation on SageMaker domains. +* api-change:``mediaconnect``: Adds support for controlling the timecode source of NDI flow outputs. +* api-change:``cleanroomsml``: Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing. +* api-change:``cleanrooms``: Collaboration creators can update payment configurations without recreating the collaboration. When multiple payer candidates are configured for a cost type, analysis runners can specify the actual payer at submission time, providing granular control over billing. +* api-change:``bedrock-agentcore-control``: Adds dataset management APIs for creating, versioning, and managing evaluation datasets. +* api-change:``verifiedpermissions``: Support hard deleting policy store aliases. Users can now delete an alias and immediately reassign it to a different policy store without waiting for the soft-delete retention period. +* api-change:``evs``: A new GetDepotUrl API has been added to retrieve a URL for accessing Amazon EVS custom addon packages. Customers can use this URL to configure vSphere Lifecycle Manager (vLCM) as an online depot source, enabling upgrades of addon components across ESXi hosts. + + 2.34.51 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 3249c7a8b65f..86931dd3285e 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.51' +__version__ = '2.34.52' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 5052ab72240e..0d1a158b80df 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.51. +# Generated by GNU Autoconf 2.71 for awscli 2.34.52. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.51' -PACKAGE_STRING='awscli 2.34.51' +PACKAGE_VERSION='2.34.52' +PACKAGE_STRING='awscli 2.34.52' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.51 +awscli configure 2.34.52 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.51, which was +It was created by awscli $as_me 2.34.52, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.51, which was +This file was extended by awscli $as_me 2.34.52, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.51 +awscli config.status 2.34.52 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 1ecc0b0b3f03..6117b024a8a1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.51]) +AC_INIT([awscli], [2.34.52]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 4cce1363e50f..3905eaf0bfe1 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.51' +release = '2.34.52' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From b5711ac9f971487175e9ef404ff302fcb4b404fe Mon Sep 17 00:00:00 2001 From: Steve <106777148+hssyoo@users.noreply.github.com> Date: Fri, 22 May 2026 10:28:21 -0400 Subject: [PATCH 29/73] Add changelog for Linux OpenSSL 3.5.6 upgrade (#10332) --- .changes/next-release/enhancement-OpenSSL-85066.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/next-release/enhancement-OpenSSL-85066.json diff --git a/.changes/next-release/enhancement-OpenSSL-85066.json b/.changes/next-release/enhancement-OpenSSL-85066.json new file mode 100644 index 000000000000..8b586ba700aa --- /dev/null +++ b/.changes/next-release/enhancement-OpenSSL-85066.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "OpenSSL", + "description": "Update bundled OpenSSL version to 3.5.6 for Linux installers" +} From bdf748564bd696d846915ed5260c020eacaca7d0 Mon Sep 17 00:00:00 2001 From: Kenneth Daily Date: Fri, 22 May 2026 10:41:58 -0700 Subject: [PATCH 30/73] [v2] Warn on credentials file permissions (#10341) Users running the following commands now see a warning if the credentials file has permissions beyond the default of 0o600. - `aws configure set` (if setting access key, secret key, or token) - `aws configure` (if setting access key, secret key, or token) - `aws configure import` - `aws configure mfa-login` Developers can now specify a credential check in the `ConfigFileWriter.update_config` method. This is used in all instances except for `configure import` so that a warning message is only printed once. --- .../enhancement-configure-34819.json | 5 ++ awscli/customizations/configure/__init__.py | 38 ++++++++- awscli/customizations/configure/configure.py | 4 +- awscli/customizations/configure/importer.py | 14 ++-- awscli/customizations/configure/mfalogin.py | 4 +- awscli/customizations/configure/set.py | 6 +- awscli/customizations/configure/writer.py | 10 ++- .../configure/test_configure.py | 21 ++++- .../customizations/configure/test_importer.py | 28 +++++-- .../customizations/configure/test_mfalogin.py | 39 ++++++++- .../configure/test_permissions.py | 82 +++++++++++++++++++ .../unit/customizations/configure/test_set.py | 29 ++++++- .../customizations/configure/test_writer.py | 23 +++++- 13 files changed, 279 insertions(+), 24 deletions(-) create mode 100644 .changes/next-release/enhancement-configure-34819.json create mode 100644 tests/unit/customizations/configure/test_permissions.py diff --git a/.changes/next-release/enhancement-configure-34819.json b/.changes/next-release/enhancement-configure-34819.json new file mode 100644 index 000000000000..dcc146c4e6e9 --- /dev/null +++ b/.changes/next-release/enhancement-configure-34819.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "configure", + "description": "Warn if the credentials file has permissions beyond the default of 0o600 when modifying the file. Fixes `#10019 `__." +} diff --git a/awscli/customizations/configure/__init__.py b/awscli/customizations/configure/__init__.py index 9cc1895810e6..1abc313b724c 100644 --- a/awscli/customizations/configure/__init__.py +++ b/awscli/customizations/configure/__init__.py @@ -10,8 +10,11 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import os +import sys -from awscli.compat import shlex +from awscli.compat import is_windows, shlex +from awscli.customizations.utils import uni_print NOT_SET = '' PREDEFINED_SECTION_NAMES = 'plugins' @@ -62,3 +65,36 @@ def get_section_header(section_type, section_name): if any(c in _WHITESPACE for c in section_name): section_name = shlex.quote(section_name) return f'{section_type} {section_name}' + + +PERMISSIONS_WARNING_TEMPLATE = ( + "\naws: [WARNING]: The file '{path}' is accessible by other users. " + "Consider running 'chmod 600 {path}' to restrict access to only your user.\n" +) + + +def warn_if_permissive(file_path, err_stream=None): + if is_windows: + return + + if not os.path.isfile(file_path): + return + + if err_stream is None: + err_stream = sys.stderr + + try: + file_mode = os.stat(file_path).st_mode + if is_overly_permissive(file_mode, 0o700): + uni_print( + PERMISSIONS_WARNING_TEMPLATE.format( + path=file_path, + ), + out_file=err_stream, + ) + except OSError: + return + + +def is_overly_permissive(file_mode, allowed_bits=0o700): + return bool((file_mode & 0o777) & ~allowed_bits) diff --git a/awscli/customizations/configure/configure.py b/awscli/customizations/configure/configure.py index b62ce34be34c..f36bcc173709 100644 --- a/awscli/customizations/configure/configure.py +++ b/awscli/customizations/configure/configure.py @@ -213,5 +213,7 @@ def _write_out_creds_file_values(self, new_values, profile_name): self._session.get_config_variable('credentials_file') ) self._config_writer.update_config( - credential_file_values, shared_credentials_filename + credential_file_values, + shared_credentials_filename, + check_permissions=True, ) diff --git a/awscli/customizations/configure/importer.py b/awscli/customizations/configure/importer.py index fa7a73a651bb..33505193e731 100644 --- a/awscli/customizations/configure/importer.py +++ b/awscli/customizations/configure/importer.py @@ -15,6 +15,7 @@ import sys from awscli.customizations.commands import BasicCommand +from awscli.customizations.configure import warn_if_permissive from awscli.customizations.configure.writer import ConfigFileWriter from awscli.customizations.utils import uni_print @@ -69,7 +70,7 @@ class ConfigureImportCommand(BasicCommand): def __init__( self, session, csv_parser=None, importer=None, out_stream=None ): - super(ConfigureImportCommand, self).__init__(session) + super().__init__(session) if csv_parser is None: csv_parser = CSVCredentialParser() self._csv_parser = csv_parser @@ -90,6 +91,7 @@ def _get_config_path(self): def _import_csv(self, contents): self._check_possible_filepath(contents) config_path = self._get_config_path() + warn_if_permissive(config_path) credentials = self._csv_parser.parse_credentials(contents) for credential in credentials: self._importer.import_credential( @@ -97,13 +99,15 @@ def _import_csv(self, contents): config_path, profile_prefix=self._profile_prefix, ) - import_msg = 'Successfully imported %s profile(s)\n' % len(credentials) + import_msg = f'Successfully imported {len(credentials)} profile(s)\n' uni_print(import_msg, out_file=self._out_stream) def _check_possible_filepath(self, csv_data): - if ('\n' not in csv_data and - os.path.exists(csv_data) and - not csv_data.startswith('file://')): + if ( + '\n' not in csv_data + and os.path.exists(csv_data) + and not csv_data.startswith('file://') + ): raise ValueError( "You may be passing a file to import without the 'file://' prefix. " "To import a CSV file, use --csv file://path/to/file.csv" diff --git a/awscli/customizations/configure/mfalogin.py b/awscli/customizations/configure/mfalogin.py index 638a714acf5c..c2211f9033c8 100644 --- a/awscli/customizations/configure/mfalogin.py +++ b/awscli/customizations/configure/mfalogin.py @@ -190,7 +190,9 @@ def _write_temporary_credentials(self, temp_credentials, target_profile): except AttributeError: expiration_time = str(temp_credentials['Expiration']) - self._config_writer.update_config(credential_values, credentials_file) + self._config_writer.update_config( + credential_values, credentials_file, check_permissions=True + ) sys.stdout.write( f"Temporary credentials written to profile '{target_profile}'\n" diff --git a/awscli/customizations/configure/set.py b/awscli/customizations/configure/set.py index 9e6b3655451e..cd3f97c9d6a6 100644 --- a/awscli/customizations/configure/set.py +++ b/awscli/customizations/configure/set.py @@ -192,14 +192,18 @@ def _run_main(self, args, parsed_globals): # Otherwise it's something in the [plugin] section profile, varname = parts config_filename = self._get_config_file('config_file') + check_permissions = False if varname in self._WRITE_TO_CREDS_FILE: # When writing to the creds file, the section is just the profile section = profile config_filename = self._get_config_file('credentials_file') + check_permissions = True elif profile in PREDEFINED_SECTION_NAMES or profile == 'default': section = profile else: section = profile_to_section(profile) updated_config = {'__section__': section, varname: value} - self._config_writer.update_config(updated_config, config_filename) + self._config_writer.update_config( + updated_config, config_filename, check_permissions=check_permissions + ) return 0 diff --git a/awscli/customizations/configure/writer.py b/awscli/customizations/configure/writer.py index 25ba1b504bb6..9d557071db4c 100644 --- a/awscli/customizations/configure/writer.py +++ b/awscli/customizations/configure/writer.py @@ -13,7 +13,7 @@ import os import re -from . import SectionNotFoundError +from . import SectionNotFoundError, warn_if_permissive class ConfigFileWriter: @@ -37,7 +37,7 @@ def _validate_no_newlines_or_carriage_returns( ) raise ValueError(err_msg) - def update_config(self, new_values, config_filename): + def update_config(self, new_values, config_filename, check_permissions=False): """Update config file with new values. This method will update a section in a config file with @@ -63,6 +63,10 @@ def update_config(self, new_values, config_filename): :param config_filename: The config filename where values will be written. + :type check_permissions: bool + :param check_permissions: If True, warn if the file has + permissions more permissive than 0o600. + """ section_name = new_values.pop('__section__', 'default') self._validate_no_newlines_or_carriage_returns( @@ -111,6 +115,8 @@ def update_config(self, new_values, config_filename): f.write(''.join(contents)) except SectionNotFoundError: self._write_new_section(section_name, new_values, config_filename) + if check_permissions: + warn_if_permissive(config_filename) def _create_file(self, config_filename): # Create the file as well as the parent dir if needed. diff --git a/tests/unit/customizations/configure/test_configure.py b/tests/unit/customizations/configure/test_configure.py index bc03e08d671f..94eef5f9ff0c 100644 --- a/tests/unit/customizations/configure/test_configure.py +++ b/tests/unit/customizations/configure/test_configure.py @@ -40,7 +40,10 @@ def assert_credentials_file_updated_with(self, new_values): credentials_file_call = called_args[0] expected_creds_file = os.path.expanduser('~/fake_credentials_filename') self.assertEqual( - credentials_file_call, mock.call(new_values, expected_creds_file) + credentials_file_call, + mock.call( + new_values, expected_creds_file, check_permissions=True + ), ) def test_configure_command_sends_values_to_writer(self): @@ -232,6 +235,22 @@ def test_iam_user_credentials_remove_session_token(self): } ) + def test_check_permissions_when_credential_values_provided(self): + self.configure(args=[], parsed_globals=self.global_args) + expected_creds_file = os.path.expanduser('~/fake_credentials_filename') + self.writer.update_config.assert_any_call( + mock.ANY, expected_creds_file, check_permissions=True + ) + + def test_no_check_permissions_when_no_credential_values_changed(self): + user_presses_enter = None + precanned = PrecannedPrompter(value=user_presses_enter) + self.configure = configure.ConfigureCommand( + self.session, prompter=precanned, config_writer=self.writer + ) + self.configure(args=[], parsed_globals=self.global_args) + self.writer.update_config.assert_not_called() + class TestInteractivePrompter(unittest.TestCase): def setUp(self): diff --git a/tests/unit/customizations/configure/test_importer.py b/tests/unit/customizations/configure/test_importer.py index 53e2b45fe569..004701486281 100644 --- a/tests/unit/customizations/configure/test_importer.py +++ b/tests/unit/customizations/configure/test_importer.py @@ -98,7 +98,9 @@ def test_raises_error_when_plain_file_path_passed(self): f.write('User name,Access key ID,Secret access key\nuser,AKID,SAK') try: with self.assertRaises(ValueError) as cm: - self.import_command(args=['--csv', 'temp_creds.csv'], parsed_globals=None) + self.import_command( + args=['--csv', 'temp_creds.csv'], parsed_globals=None + ) self.assertIn("without the 'file://' prefix", str(cm.exception)) finally: os.remove('temp_creds.csv') @@ -106,19 +108,34 @@ def test_raises_error_when_plain_file_path_passed(self): def test_inline_csv_succeeds(self): csv_string = 'User name,Access key ID,Secret access key\nuser,AKID,SAK' self.import_command(args=['--csv', csv_string], parsed_globals=None) - self.assertIn('Successfully imported 1 profile', self.stdout.getvalue()) + self.assertIn( + 'Successfully imported 1 profile', self.stdout.getvalue() + ) def test_csv_content_from_file_succeeds(self): with open('temp_creds.csv', 'w') as f: f.write('User name,Access key ID,Secret access key\nuser,AKID,SAK') try: - with open('temp_creds.csv', 'r') as f: + with open('temp_creds.csv') as f: contents = f.read() self.import_command(args=['--csv', contents], parsed_globals=None) - self.assertIn('Successfully imported 1 profile', self.stdout.getvalue()) + self.assertIn( + 'Successfully imported 1 profile', self.stdout.getvalue() + ) finally: os.remove('temp_creds.csv') + @mock.patch('awscli.customizations.configure.importer.warn_if_permissive') + def test_warn_called_once_when_importing_credentials(self, mock_warn): + rows = ( + 'PROF1,PW,AKID1,SAK1,https://console.link\n' + 'PROF2,PW,AKID2,SAK2,https://console.link\n' + ) + content = CSV_HEADERS + rows + self.import_command(args=['--csv', content], parsed_globals=None) + mock_warn.assert_called_once_with(self.fake_credentials_filename) + + class TestCSVCredentialParser(unittest.TestCase): def setUp(self): self.parser = CSVCredentialParser() @@ -134,8 +151,7 @@ def test_csv_parser_downloaded_csv(self): def test_csv_parser_simple(self): contents = ( - 'User name,Access key ID,Secret access key\n' - 'PROFILENAME,AKID,SAK\n' + 'User name,Access key ID,Secret access key\nPROFILENAME,AKID,SAK\n' ) self.assert_parse_matches_expected(contents) diff --git a/tests/unit/customizations/configure/test_mfalogin.py b/tests/unit/customizations/configure/test_mfalogin.py index a91b809f2a0e..51efe0f85555 100644 --- a/tests/unit/customizations/configure/test_mfalogin.py +++ b/tests/unit/customizations/configure/test_mfalogin.py @@ -271,7 +271,7 @@ def test_successful_mfa_login(self): } self.config_writer.update_config.assert_called_with( - expected_values, '/tmp/credentials' + expected_values, '/tmp/credentials', check_permissions=True ) def test_serial_number_from_parameter(self): @@ -566,4 +566,39 @@ def test_empty_credential_input_handling(self): self.assertEqual(rc, 1) all_writes = ''.join(str(call) for call in mock_stderr.write.call_args_list) - self.assertIn("aws: [ERROR]: AWS Access Key ID is required", all_writes) \ No newline at end of file + self.assertIn("aws: [ERROR]: AWS Access Key ID is required", all_writes) + + def test_check_permissions_when_writing_temporary_credentials(self): + self.prompter.get_credential_value.side_effect = [ + 'arn:aws:iam::123456789012:mfa/user', + '123456', + ] + self.prompter.get_value.return_value = 'session-test' + + expiration = datetime.datetime(2023, 5, 19, 18, 6, 10) + sts_response = { + 'Credentials': { + 'AccessKeyId': 'ASIAIOSFODNN7EXAMPLE', + 'SecretAccessKey': 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY', + 'SessionToken': 'SESSION_TOKEN', + 'Expiration': expiration, + } + } + + sts_client = mock.Mock() + sts_client.get_session_token.return_value = sts_response + self.session.create_client.return_value = sts_client + + with mock.patch('sys.stdin.isatty', return_value=True): + with mock.patch( + 'os.path.expanduser', return_value='/tmp/credentials' + ): + with mock.patch('sys.stdout'): + rc = self.command._run_main( + self.parsed_args, self.parsed_globals + ) + + self.assertEqual(rc, 0) + self.config_writer.update_config.assert_called_once_with( + mock.ANY, '/tmp/credentials', check_permissions=True + ) diff --git a/tests/unit/customizations/configure/test_permissions.py b/tests/unit/customizations/configure/test_permissions.py new file mode 100644 index 000000000000..279704bba95a --- /dev/null +++ b/tests/unit/customizations/configure/test_permissions.py @@ -0,0 +1,82 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os +from io import StringIO +from unittest.mock import patch + +import pytest + +from awscli.customizations.configure import ( + is_overly_permissive, + warn_if_permissive, +) +from awscli.testutils import skip_if_windows + + +@pytest.mark.parametrize("mode", [0o700, 0o600, 0o400, 0o200, 0o000]) +def test_acceptable_modes_are_not_overly_permissive(mode): + assert is_overly_permissive(mode) is False + + +@pytest.mark.parametrize("mode", [0o644, 0o666, 0o777, 0o610, 0o601]) +def test_overly_permissive_modes_are_detected(mode): + assert is_overly_permissive(mode) is True + + +def _create_creds_file(tmp_path, mode): + path = tmp_path / "credentials" + path.write_text("[default]\naws_access_key_id=testing\n") + os.chmod(path, mode) + return str(path) + + +@skip_if_windows("Permissions test not valid on Windows.") +def test_prints_warning_for_permissive_file(tmp_path): + path = _create_creds_file(tmp_path, 0o644) + err = StringIO() + warn_if_permissive(path, err_stream=err) + output = err.getvalue() + assert "aws: [WARNING]" in output + assert path in output + assert "accessible by other users" in output + + +@skip_if_windows("Permissions test not valid on Windows.") +def test_no_warning_for_0o600_file(tmp_path): + path = _create_creds_file(tmp_path, 0o600) + err = StringIO() + warn_if_permissive(path, err_stream=err) + assert err.getvalue() == "" + + +@skip_if_windows("Permissions test not valid on Windows.") +def test_no_warning_for_0o700_file(tmp_path): + path = _create_creds_file(tmp_path, 0o700) + err = StringIO() + warn_if_permissive(path, err_stream=err) + assert err.getvalue() == "" + + +@skip_if_windows("Permissions test not valid on Windows.") +def test_skips_when_file_does_not_exist(tmp_path): + err = StringIO() + warn_if_permissive(str(tmp_path / "nonexistent"), err_stream=err) + assert err.getvalue() == "" + + +@patch("awscli.customizations.configure.is_windows", True) +def test_skips_on_windows(tmp_path): + path = _create_creds_file(tmp_path, 0o777) + err = StringIO() + warn_if_permissive(path, err_stream=err) + assert err.getvalue() == "" diff --git a/tests/unit/customizations/configure/test_set.py b/tests/unit/customizations/configure/test_set.py index e91bef17cee8..e673242a5711 100644 --- a/tests/unit/customizations/configure/test_set.py +++ b/tests/unit/customizations/configure/test_set.py @@ -31,14 +31,18 @@ def test_configure_set_command(self): set_command = ConfigureSetCommand(self.session, self.config_writer) set_command(args=['region', 'us-west-2'], parsed_globals=None) self.config_writer.update_config.assert_called_with( - {'__section__': 'default', 'region': 'us-west-2'}, 'myconfigfile' + {'__section__': 'default', 'region': 'us-west-2'}, + 'myconfigfile', + check_permissions=False, ) def test_configure_set_command_dotted(self): set_command = ConfigureSetCommand(self.session, self.config_writer) set_command(args=['plugins.foo', 'true'], parsed_globals=None) self.config_writer.update_config.assert_called_with( - {'__section__': 'plugins', 'foo': 'true'}, 'myconfigfile' + {'__section__': 'plugins', 'foo': 'true'}, + 'myconfigfile', + check_permissions=False, ) def test_configure_set_command_dotted_with_default_profile(self): @@ -53,6 +57,7 @@ def test_configure_set_command_dotted_with_default_profile(self): 'emr': {'instance_profile': 'my_ip_emr'}, }, 'myconfigfile', + check_permissions=False, ) def test_configure_set_handles_predefined_plugins_section(self): @@ -60,7 +65,9 @@ def test_configure_set_handles_predefined_plugins_section(self): set_command = ConfigureSetCommand(self.session, self.config_writer) set_command(args=['plugins.foo', 'mypackage'], parsed_globals=None) self.config_writer.update_config.assert_called_with( - {'__section__': 'plugins', 'foo': 'mypackage'}, 'myconfigfile' + {'__section__': 'plugins', 'foo': 'mypackage'}, + 'myconfigfile', + check_permissions=False, ) def test_configure_set_command_dotted_with_profile(self): @@ -75,6 +82,7 @@ def test_configure_set_command_dotted_with_profile(self): 'emr': {'instance_profile': 'my_ip_emr'}, }, 'myconfigfile', + check_permissions=False, ) def test_configure_set_with_profile(self): @@ -84,6 +92,7 @@ def test_configure_set_with_profile(self): self.config_writer.update_config.assert_called_with( {'__section__': 'profile testing', 'region': 'us-west-2'}, 'myconfigfile', + check_permissions=False, ) def test_configure_set_triple_dotted(self): @@ -95,6 +104,7 @@ def test_configure_set_triple_dotted(self): self.config_writer.update_config.assert_called_with( {'__section__': 'default', 's3': {'signature_version': 's3v4'}}, 'myconfigfile', + check_permissions=False, ) def test_configure_set_with_profile_nested(self): @@ -110,6 +120,7 @@ def test_configure_set_with_profile_nested(self): 's3': {'signature_version': 's3v4'}, }, 'myconfigfile', + check_permissions=False, ) def test_access_key_written_to_shared_credentials_file(self): @@ -118,6 +129,7 @@ def test_access_key_written_to_shared_credentials_file(self): self.config_writer.update_config.assert_called_with( {'__section__': 'default', 'aws_access_key_id': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_secret_key_written_to_shared_credentials_file(self): @@ -126,6 +138,7 @@ def test_secret_key_written_to_shared_credentials_file(self): self.config_writer.update_config.assert_called_with( {'__section__': 'default', 'aws_secret_access_key': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_session_token_written_to_shared_credentials_file(self): @@ -134,6 +147,7 @@ def test_session_token_written_to_shared_credentials_file(self): self.config_writer.update_config.assert_called_with( {'__section__': 'default', 'aws_session_token': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_security_token_written_to_shared_credentials_file(self): @@ -142,6 +156,7 @@ def test_security_token_written_to_shared_credentials_file(self): self.config_writer.update_config.assert_called_with( {'__section__': 'default', 'aws_security_token': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_access_key_written_to_shared_credentials_file_profile(self): @@ -152,6 +167,7 @@ def test_access_key_written_to_shared_credentials_file_profile(self): self.config_writer.update_config.assert_called_with( {'__section__': 'foo', 'aws_access_key_id': 'bar'}, self.fake_credentials_filename, + check_permissions=True, ) def test_credential_set_profile_with_space(self): @@ -161,6 +177,7 @@ def test_credential_set_profile_with_space(self): self.config_writer.update_config.assert_called_with( {'__section__': 'some profile', 'aws_session_token': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_credential_set_profile_with_space_dotted(self): @@ -172,6 +189,7 @@ def test_credential_set_profile_with_space_dotted(self): self.config_writer.update_config.assert_called_with( {'__section__': 'some profile', 'aws_session_token': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_configure_set_with_profile_with_space(self): @@ -181,6 +199,7 @@ def test_configure_set_with_profile_with_space(self): self.config_writer.update_config.assert_called_with( {'__section__': "profile 'some profile'", 'region': 'us-west-2'}, 'myconfigfile', + check_permissions=False, ) def test_configure_set_with_profile_with_space_dotted(self): @@ -192,6 +211,7 @@ def test_configure_set_with_profile_with_space_dotted(self): self.config_writer.update_config.assert_called_with( {'__section__': "profile 'some profile'", 'region': 'us-west-2'}, 'myconfigfile', + check_permissions=False, ) def test_credential_set_profile_with_tab(self): @@ -201,6 +221,7 @@ def test_credential_set_profile_with_tab(self): self.config_writer.update_config.assert_called_with( {'__section__': 'some\tprofile', 'aws_session_token': 'foo'}, self.fake_credentials_filename, + check_permissions=True, ) def test_configure_set_with_profile_with_tab_dotted(self): @@ -212,6 +233,7 @@ def test_configure_set_with_profile_with_tab_dotted(self): self.config_writer.update_config.assert_called_with( {'__section__': "profile 'some\tprofile'", 'region': 'us-west-2'}, 'myconfigfile', + check_permissions=False, ) def test_set_top_level_property_in_subsection(self): @@ -246,3 +268,4 @@ def test_set_nested_property_in_subsection(self): }, 'myconfigfile', ) + diff --git a/tests/unit/customizations/configure/test_writer.py b/tests/unit/customizations/configure/test_writer.py index a3c62bd30896..60cefb0208fa 100644 --- a/tests/unit/customizations/configure/test_writer.py +++ b/tests/unit/customizations/configure/test_writer.py @@ -15,7 +15,7 @@ import tempfile from awscli.customizations.configure.writer import ConfigFileWriter -from awscli.testutils import skip_if_windows, unittest +from awscli.testutils import mock, skip_if_windows, unittest class TestConfigFileWriter(unittest.TestCase): @@ -350,3 +350,24 @@ def test_newline_in_nested_value_raises(self): {'__section__': 'default', 's3': {'key': 'bad\nvalue'}}, self.config_filename ) + + @mock.patch('awscli.customizations.configure.writer.warn_if_permissive') + def test_check_permissions_calls_warn_if_permissive(self, mock_warn): + with open(self.config_filename, 'w') as f: + f.write('[default]\n') + self.writer.update_config( + {'__section__': 'default', 'key': 'value'}, + self.config_filename, + check_permissions=True, + ) + mock_warn.assert_called_once_with(self.config_filename) + + @mock.patch('awscli.customizations.configure.writer.warn_if_permissive') + def test_no_check_permissions_by_default(self, mock_warn): + with open(self.config_filename, 'w') as f: + f.write('[default]\n') + self.writer.update_config( + {'__section__': 'default', 'key': 'value'}, + self.config_filename, + ) + mock_warn.assert_not_called() From d1ff2c22360579420c7dfe484fe0fe77313de9a7 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 22 May 2026 18:07:12 +0000 Subject: [PATCH 31/73] Update to latest models --- .../api-change-datazone-39974.json | 5 + .../next-release/api-change-ec2-55176.json | 5 + .../api-change-gameliftstreams-35421.json | 5 + .../api-change-invoicing-12241.json | 5 + .../next-release/api-change-pi-99677.json | 5 + .../api-change-qconnect-45740.json | 5 + .../api-change-securityagent-98787.json | 5 + .../data/datazone/2018-05-10/service-2.json | 104 +++++++++++++++++- .../data/ec2/2016-11-15/service-2.json | 33 +++++- .../gameliftstreams/2018-05-10/service-2.json | 14 +-- .../data/invoicing/2024-12-01/service-2.json | 52 +++++++-- .../data/pi/2018-02-27/paginators-1.json | 9 +- .../data/pi/2018-02-27/service-2.json | 73 +++++++++++- .../data/qconnect/2020-10-19/service-2.json | 99 +++++++++++++++++ .../securityagent/2025-09-06/service-2.json | 45 ++++++++ 15 files changed, 439 insertions(+), 25 deletions(-) create mode 100644 .changes/next-release/api-change-datazone-39974.json create mode 100644 .changes/next-release/api-change-ec2-55176.json create mode 100644 .changes/next-release/api-change-gameliftstreams-35421.json create mode 100644 .changes/next-release/api-change-invoicing-12241.json create mode 100644 .changes/next-release/api-change-pi-99677.json create mode 100644 .changes/next-release/api-change-qconnect-45740.json create mode 100644 .changes/next-release/api-change-securityagent-98787.json diff --git a/.changes/next-release/api-change-datazone-39974.json b/.changes/next-release/api-change-datazone-39974.json new file mode 100644 index 000000000000..e2b75913b448 --- /dev/null +++ b/.changes/next-release/api-change-datazone-39974.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``datazone``", + "description": "Add support for VPC connection" +} diff --git a/.changes/next-release/api-change-ec2-55176.json b/.changes/next-release/api-change-ec2-55176.json new file mode 100644 index 000000000000..bb1a8fd86549 --- /dev/null +++ b/.changes/next-release/api-change-ec2-55176.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ec2``", + "description": "The ModifyInstanceAttribute API now supports modification of EnclaveOptions for the instance as a typed parameter." +} diff --git a/.changes/next-release/api-change-gameliftstreams-35421.json b/.changes/next-release/api-change-gameliftstreams-35421.json new file mode 100644 index 000000000000..01d86fc3c26b --- /dev/null +++ b/.changes/next-release/api-change-gameliftstreams-35421.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``gameliftstreams``", + "description": "Added new Gen6 stream classes based on the EC2 G6e instance family. These classes are designed for streaming high-fidelity, graphically demanding games and applications that benefit from additional GPU memory and performance." +} diff --git a/.changes/next-release/api-change-invoicing-12241.json b/.changes/next-release/api-change-invoicing-12241.json new file mode 100644 index 000000000000..30641540da73 --- /dev/null +++ b/.changes/next-release/api-change-invoicing-12241.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``invoicing``", + "description": "Adds support for idempotency with a new ClientToken field for the CreateInvoiceUnit, DeleteInvoiceUnit, UpdateInvoiceUnit, DeleteProcurementPortalPreference, PutProcurementPortalPreference, and UpdateProcurementPortalPreferenceStatus APIs." +} diff --git a/.changes/next-release/api-change-pi-99677.json b/.changes/next-release/api-change-pi-99677.json new file mode 100644 index 000000000000..1a30e0b0daf9 --- /dev/null +++ b/.changes/next-release/api-change-pi-99677.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``pi``", + "description": "Added ListPerformanceAnalysisReportRecommendations API to retrieve recommendations for a performance analysis report. Added analysis configuration support to CreatePerformanceAnalysisReport for enhanced analysis types such as vacuum analysis." +} diff --git a/.changes/next-release/api-change-qconnect-45740.json b/.changes/next-release/api-change-qconnect-45740.json new file mode 100644 index 000000000000..337cb490bd5d --- /dev/null +++ b/.changes/next-release/api-change-qconnect-45740.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``qconnect``", + "description": "Added guardrail assessment results to inference spans in the ListSpans API. You can now see which AI Guardrail policies were evaluated, whether content was blocked or masked, and per-policy details for each Bedrock Converse call" +} diff --git a/.changes/next-release/api-change-securityagent-98787.json b/.changes/next-release/api-change-securityagent-98787.json new file mode 100644 index 000000000000..94793c012b31 --- /dev/null +++ b/.changes/next-release/api-change-securityagent-98787.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``securityagent``", + "description": "Adds support for verification scripts on penetration test findings. Customers can now download executable scripts to independently reproduce confirmed vulnerabilities, with instructions and required environment variables provided for each finding." +} diff --git a/awscli/botocore/data/datazone/2018-05-10/service-2.json b/awscli/botocore/data/datazone/2018-05-10/service-2.json index 97e52156ba63..b4da671ff755 100644 --- a/awscli/botocore/data/datazone/2018-05-10/service-2.json +++ b/awscli/botocore/data/datazone/2018-05-10/service-2.json @@ -6007,6 +6007,10 @@ "lakehouseProperties":{ "shape":"LakehousePropertiesInput", "documentation":"

The lakehouse properties of a connection.

" + }, + "vpcProperties":{ + "shape":"VpcPropertiesInput", + "documentation":"

The VPC properties of a connection.

" } }, "documentation":"

The properties of a connection.

", @@ -6066,6 +6070,10 @@ "lakehouseProperties":{ "shape":"LakehousePropertiesOutput", "documentation":"

The lakehouse properties of a connection.

" + }, + "vpcProperties":{ + "shape":"VpcPropertiesOutput", + "documentation":"

The VPC properties of a connection.

" } }, "documentation":"

The properties of a connection.

", @@ -6109,6 +6117,10 @@ "lakehouseProperties":{ "shape":"LakehousePropertiesPatch", "documentation":"

The lakehouse properties of a connection properties patch.

" + }, + "vpcProperties":{ + "shape":"VpcPropertiesPatch", + "documentation":"

The VPC properties of a connection properties patch.

" } }, "documentation":"

The connection properties patch.

", @@ -6225,7 +6237,8 @@ "VERTICA", "WORKFLOWS_MWAA", "AMAZON_Q", - "MLFLOW" + "MLFLOW", + "VPC" ] }, "CreateAccountPoolInput":{ @@ -23324,6 +23337,12 @@ } } }, + "SecurityGroupId":{ + "type":"string", + "max":32, + "min":0, + "pattern":"sg-[a-z0-9]+" + }, "SecurityGroupIdList":{ "type":"list", "member":{"shape":"SecurityGroupIdListMemberString"}, @@ -28061,6 +28080,89 @@ }, "exception":true }, + "VpcConnectionSubnetIdList":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":16, + "min":1 + }, + "VpcId":{ + "type":"string", + "max":32, + "min":0, + "pattern":"vpc-[a-z0-9]+" + }, + "VpcPropertiesInput":{ + "type":"structure", + "required":[ + "vpcId", + "subnetIds" + ], + "members":{ + "vpcId":{ + "shape":"VpcId", + "documentation":"

The identifier of the VPC. Must match the pattern ^vpc-[a-z0-9]+$. Maximum length of 32.

" + }, + "subnetIds":{ + "shape":"VpcConnectionSubnetIdList", + "documentation":"

The subnet IDs of the VPC connection. You can specify between 1 and 16 subnet IDs.

" + }, + "securityGroupId":{ + "shape":"SecurityGroupId", + "documentation":"

The security group ID of the VPC connection. Must match the pattern ^sg-[a-z0-9]+$. Maximum length of 32.

" + } + }, + "documentation":"

The VPC connection properties used when creating a connection.

" + }, + "VpcPropertiesOutput":{ + "type":"structure", + "required":[ + "vpcId", + "subnetIds", + "status" + ], + "members":{ + "vpcId":{ + "shape":"VpcId", + "documentation":"

The identifier of the VPC.

" + }, + "subnetIds":{ + "shape":"VpcConnectionSubnetIdList", + "documentation":"

The subnet IDs of the VPC connection.

" + }, + "status":{ + "shape":"ConnectionStatus", + "documentation":"

The status of the VPC connection.

" + }, + "securityGroupId":{ + "shape":"SecurityGroupId", + "documentation":"

The security group ID of the VPC connection.

" + }, + "glueConnectionNames":{ + "shape":"GlueConnectionNames", + "documentation":"

The Amazon Web Services Glue connection names associated with the VPC connection.

" + } + }, + "documentation":"

The VPC connection properties returned in responses.

" + }, + "VpcPropertiesPatch":{ + "type":"structure", + "members":{ + "vpcId":{ + "shape":"VpcId", + "documentation":"

The identifier of the VPC.

" + }, + "subnetIds":{ + "shape":"VpcConnectionSubnetIdList", + "documentation":"

The subnet IDs of the VPC connection.

" + }, + "securityGroupId":{ + "shape":"SecurityGroupId", + "documentation":"

The security group ID of the VPC connection.

" + } + }, + "documentation":"

The VPC connection properties used when updating a connection.

" + }, "WorkflowsMwaaPropertiesInput":{ "type":"structure", "members":{ diff --git a/awscli/botocore/data/ec2/2016-11-15/service-2.json b/awscli/botocore/data/ec2/2016-11-15/service-2.json index 4a367eea7690..cef90ee4b049 100644 --- a/awscli/botocore/data/ec2/2016-11-15/service-2.json +++ b/awscli/botocore/data/ec2/2016-11-15/service-2.json @@ -17076,7 +17076,7 @@ "idempotencyToken":true }, "LaunchTemplateName":{ - "shape":"LaunchTemplateName", + "shape":"String", "documentation":"

A name for the launch template.

" }, "VersionDescription":{ @@ -53943,6 +53943,10 @@ "shape":"AttributeBooleanValue", "documentation":"

Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is true, source/destination checks are enabled; otherwise, they are disabled. The default value is true. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.

" }, + "EnclaveOptions":{ + "shape":"EnclaveOptionsRequest", + "documentation":"

Enables or disables the instance for Amazon Web Services Nitro Enclaves. For more information, see the Amazon Web Services Nitro Enclaves User Guide.

" + }, "DisableApiStop":{ "shape":"AttributeBooleanValue", "documentation":"

Indicates whether an instance is enabled for stop protection. For more information, see Enable stop protection for your instance.

" @@ -53993,7 +53997,7 @@ "locationName":"ramdisk" }, "UserData":{ - "shape":"BlobAttributeValue", + "shape":"SecureBlobAttributeValue", "documentation":"

Changes the instance's user data to the specified value. User data must be base64-encoded. Depending on the tool or SDK that you're using, the base64-encoding might be performed for you. For more information, see Work with instance user data.

", "locationName":"userData" }, @@ -54027,8 +54031,12 @@ "ModifyInstanceAttributeUserDataRequest":{ "type":"structure", "members":{ - "Value":{"shape":"ModifyInstanceAttributeValue"} - } + "Value":{ + "shape":"ModifyInstanceAttributeValue", + "documentation":"

The value of the data.

" + } + }, + "documentation":"

Describes Base64-encoded binary data.

" }, "ModifyInstanceAttributeValue":{ "type":"string", @@ -65895,7 +65903,7 @@ "locationName":"prefix" }, "UploadPolicy":{ - "shape":"Blob", + "shape":"SecureBlob", "documentation":"

An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.

", "locationName":"uploadPolicy" }, @@ -67023,6 +67031,19 @@ "type":"string", "pattern":"^(?=.{20,2048}$)arn:aws[a-z-]*:secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=.@-]+" }, + "SecureBlob":{ + "type":"blob", + "sensitive":true + }, + "SecureBlobAttributeValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"SecureBlob", + "locationName":"value" + } + } + }, "SecurityGroup":{ "type":"structure", "members":{ @@ -77359,5 +77380,5 @@ "totalGpuMemory":{"type":"integer"}, "totalInferenceMemory":{"type":"integer"} }, - "documentation":"Amazon Elastic Compute Cloud

You can access the features of Amazon Elastic Compute Cloud (Amazon EC2) programmatically. For more information, see the Amazon EC2 Developer Guide.

" + "documentation":"Amazon Elastic Compute Cloud

This is the Amazon EC2 API Reference. It provides descriptions, API request parameters, and the XML response for each of the Amazon EC2 Query API actions. Note that the Amazon EC2 API includes actions for Amazon EC2 plus additional services, such as Amazon EBS and Amazon VPC.

Learn more

Alternatively, use one of the following methods to access the Amazon EC2 API, instead of using the Query API directly:

" } diff --git a/awscli/botocore/data/gameliftstreams/2018-05-10/service-2.json b/awscli/botocore/data/gameliftstreams/2018-05-10/service-2.json index 6836bb542032..8f47445ea221 100644 --- a/awscli/botocore/data/gameliftstreams/2018-05-10/service-2.json +++ b/awscli/botocore/data/gameliftstreams/2018-05-10/service-2.json @@ -697,7 +697,7 @@ }, "ApplicationLogPaths":{ "shape":"FilePaths", - "documentation":"

Locations of log files that your content generates during a stream session. Enter path values that are relative to the ApplicationSourceUri location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in ApplicationLogOutputUri at the end of a stream session. To retrieve stored log files, call GetStreamSession and get the LogFileLocationUri.

" + "documentation":"

Locations of log files that your content generates during a stream session. Enter path values that are relative to the ApplicationSourceUri location, or relative to the user's home directory when using a supported path variable. You can specify up to 10 log paths. Each individual log file cannot exceed 50 MB in size.

Each path can be a directory or an exact file path. When you specify a directory, Amazon GameLift Streams collects only files with the following extensions: .txt, .log, and .utrace. To collect files with other extensions, specify the exact file path. The copy operation is not performed recursively in subfolders.

The following path variables are recognized when they appear as the first component of a path: %USERPROFILE% (Windows and Proton), $HOME or ~ (Linux). Use a path variable when your application writes logs outside of the application directory.

Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in ApplicationLogOutputUri at the end of a stream session. To retrieve stored log files, call GetStreamSession and get the LogFileLocationUri.

" }, "ApplicationLogOutputUri":{ "shape":"ApplicationLogOutputUri", @@ -789,7 +789,7 @@ }, "StreamClass":{ "shape":"StreamClass", - "documentation":"

The target stream quality for sessions that are hosted in this stream group. Set a stream class that is appropriate to the type of content that you're streaming. Stream class determines the type of computing resources Amazon GameLift Streams uses and impacts the cost of streaming. The following options are available:

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" + "documentation":"

The target stream quality for sessions that are hosted in this stream group. Set a stream class that is appropriate to the type of content that you're streaming. Stream class determines the type of computing resources Amazon GameLift Streams uses and impacts the cost of streaming. The following options are available:

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" }, "DefaultApplicationIdentifier":{ "shape":"Identifier", @@ -832,7 +832,7 @@ }, "StreamClass":{ "shape":"StreamClass", - "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" + "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" }, "Id":{ "shape":"Id", @@ -1190,7 +1190,7 @@ }, "StreamClass":{ "shape":"StreamClass", - "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" + "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" }, "Id":{ "shape":"Id", @@ -2046,7 +2046,7 @@ }, "StreamClass":{ "shape":"StreamClass", - "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" + "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" }, "Status":{ "shape":"StreamGroupStatus", @@ -2281,7 +2281,7 @@ }, "ApplicationLogPaths":{ "shape":"FilePaths", - "documentation":"

Locations of log files that your content generates during a stream session. Enter path values that are relative to the ApplicationSourceUri location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in ApplicationLogOutputUri at the end of a stream session. To retrieve stored log files, call GetStreamSession and get the LogFileLocationUri.

" + "documentation":"

Locations of log files that your content generates during a stream session. Enter path values that are relative to the ApplicationSourceUri location, or relative to the user's home directory when using a supported path variable. You can specify up to 10 log paths. Each individual log file cannot exceed 50 MB in size.

Each path can be a directory or an exact file path. When you specify a directory, Amazon GameLift Streams collects only files with the following extensions: .txt, .log, and .utrace. To collect files with other extensions, specify the exact file path. The copy operation is not performed recursively in subfolders.

The following path variables are recognized when they appear as the first component of a path: %USERPROFILE% (Windows and Proton), $HOME or ~ (Linux). Use a path variable when your application writes logs outside of the application directory.

Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in ApplicationLogOutputUri at the end of a stream session. To retrieve stored log files, call GetStreamSession and get the LogFileLocationUri.

" }, "ApplicationLogOutputUri":{ "shape":"ApplicationLogOutputUri", @@ -2397,7 +2397,7 @@ }, "StreamClass":{ "shape":"StreamClass", - "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Uses NVIDIA L4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor Core GPU.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" + "documentation":"

The target stream quality for the stream group.

A stream class can be one of the following:

  • gen6n_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 64 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra_win2022 (NVIDIA, ultra) Supports applications with high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen6n_medium (NVIDIA, medium) Supports applications with moderate 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 6 GB VRAM

    • Tenancy: Supports up to 4 concurrent stream sessions

  • gen6n_small (NVIDIA, small) Supports applications with lightweight 3D scene complexity and low CPU usage. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 1 vCPUs, 4 GB RAM, 2 GB VRAM

    • Tenancy: Supports up to 12 concurrent stream sessions

  • gen6n_medium_win2022 (NVIDIA, medium) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 6 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6n_small_win2022 (NVIDIA, small) Supports applications with low 3D scene complexity. Powered by NVIDIA L4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 2 vCPUs, 8 GB RAM, 3 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro_win2022 (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen6e_pro (NVIDIA, pro) Supports applications with extremely high 3D scene complexity which require maximum resources. Powered by NVIDIA L40S Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 16 vCPUs, 128 GB RAM, 48 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen5n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen5n_ultra (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Powered by NVIDIA A10G Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_win2022 (NVIDIA, ultra) Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.6, 32 and 64-bit applications, and anti-cheat technology. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

  • gen4n_high (NVIDIA, high) Supports applications with moderate to high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM

    • Tenancy: Supports up to 2 concurrent stream sessions

  • gen4n_ultra (NVIDIA, ultra) Supports applications with high 3D scene complexity. Powered by NVIDIA T4 Tensor Core GPUs.

    • Reference resolution: 1080p

    • Reference frame rate: 60 fps

    • Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM

    • Tenancy: Supports 1 concurrent stream session

" }, "Id":{ "shape":"Id", diff --git a/awscli/botocore/data/invoicing/2024-12-01/service-2.json b/awscli/botocore/data/invoicing/2024-12-01/service-2.json index 4156f59840dd..c5d786935e52 100644 --- a/awscli/botocore/data/invoicing/2024-12-01/service-2.json +++ b/awscli/botocore/data/invoicing/2024-12-01/service-2.json @@ -47,7 +47,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

This creates a new invoice unit with the provided definition.

" + "documentation":"

This creates a new invoice unit with the provided definition.

", + "idempotent":true }, "CreateProcurementPortalPreference":{ "name":"CreateProcurementPortalPreference", @@ -83,7 +84,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

This deletes an invoice unit with the provided invoice unit ARN.

" + "documentation":"

This deletes an invoice unit with the provided invoice unit ARN.

", + "idempotent":true }, "DeleteProcurementPortalPreference":{ "name":"DeleteProcurementPortalPreference", @@ -101,7 +103,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Deletes an existing procurement portal preference. This action cannot be undone. Active e-invoice delivery and PO retrieval configurations will be terminated.

" + "documentation":"

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Deletes an existing procurement portal preference. This action cannot be undone. Active e-invoice delivery and PO retrieval configurations will be terminated.

", + "idempotent":true }, "GetInvoicePDF":{ "name":"GetInvoicePDF", @@ -245,7 +248,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Updates an existing procurement portal preference configuration. This operation can modify settings for e-invoice delivery and purchase order retrieval.

" + "documentation":"

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Updates an existing procurement portal preference configuration. This operation can modify settings for e-invoice delivery and purchase order retrieval.

", + "idempotent":true }, "TagResource":{ "name":"TagResource", @@ -297,7 +301,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

You can update the invoice unit configuration at any time, and Amazon Web Services will use the latest configuration at the end of the month.

" + "documentation":"

You can update the invoice unit configuration at any time, and Amazon Web Services will use the latest configuration at the end of the month.

", + "idempotent":true }, "UpdateProcurementPortalPreferenceStatus":{ "name":"UpdateProcurementPortalPreferenceStatus", @@ -316,7 +321,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Updates the status of a procurement portal preference, including the activation state of e-invoice delivery and purchase order retrieval features.

" + "documentation":"

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Updates the status of a procurement portal preference, including the activation state of e-invoice delivery and purchase order retrieval features.

", + "idempotent":true } }, "shapes":{ @@ -516,6 +522,11 @@ "ResourceTags":{ "shape":"ResourceTagList", "documentation":"

The tag structure that contains a tag key and value.

" + }, + "ClientToken":{ + "shape":"BasicStringWithoutSpace", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "idempotencyToken":true } } }, @@ -659,6 +670,11 @@ "InvoiceUnitArn":{ "shape":"InvoiceUnitArnString", "documentation":"

The ARN to identify an invoice unit. This information can't be modified or deleted.

" + }, + "ClientToken":{ + "shape":"BasicStringWithoutSpace", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "idempotencyToken":true } } }, @@ -678,6 +694,11 @@ "ProcurementPortalPreferenceArn":{ "shape":"ProcurementPortalPreferenceArnString", "documentation":"

The Amazon Resource Name (ARN) of the procurement portal preference to delete.

" + }, + "ClientToken":{ + "shape":"BasicStringWithoutSpace", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "idempotencyToken":true } } }, @@ -1302,7 +1323,7 @@ }, "NextToken":{ "shape":"NextTokenString", - "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + "documentation":"

The token for the next set of results. (You received this token from a previous call.)

" }, "MaxResults":{ "shape":"InvoiceSummariesMaxResults", @@ -1327,7 +1348,7 @@ }, "NextToken":{ "shape":"NextTokenString", - "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + "documentation":"

The token to use to retrieve the next set of results, or null if there are no more results.

" } } }, @@ -1747,6 +1768,11 @@ "Contacts":{ "shape":"Contacts", "documentation":"

Updated list of contact information for portal administrators and technical contacts.

" + }, + "ClientToken":{ + "shape":"BasicStringWithoutSpace", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "idempotencyToken":true } } }, @@ -2133,6 +2159,11 @@ "Rule":{ "shape":"InvoiceUnitRule", "documentation":"

The InvoiceUnitRule object used to update invoice units.

" + }, + "ClientToken":{ + "shape":"BasicStringWithoutSpace", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "idempotencyToken":true } } }, @@ -2168,6 +2199,11 @@ "PurchaseOrderRetrievalPreferenceStatusReason":{ "shape":"BasicString", "documentation":"

The reason for the purchase order retrieval preference status update, providing context for the change.

" + }, + "ClientToken":{ + "shape":"BasicStringWithoutSpace", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "idempotencyToken":true } } }, diff --git a/awscli/botocore/data/pi/2018-02-27/paginators-1.json b/awscli/botocore/data/pi/2018-02-27/paginators-1.json index ea142457a6a7..ab732fbec38e 100644 --- a/awscli/botocore/data/pi/2018-02-27/paginators-1.json +++ b/awscli/botocore/data/pi/2018-02-27/paginators-1.json @@ -1,3 +1,10 @@ { - "pagination": {} + "pagination": { + "ListPerformanceAnalysisReportRecommendations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Recommendations" + } + } } diff --git a/awscli/botocore/data/pi/2018-02-27/service-2.json b/awscli/botocore/data/pi/2018-02-27/service-2.json index 3becd9fb8e23..c32b2ddb5b35 100644 --- a/awscli/botocore/data/pi/2018-02-27/service-2.json +++ b/awscli/botocore/data/pi/2018-02-27/service-2.json @@ -151,6 +151,21 @@ ], "documentation":"

Retrieve metrics of the specified types that can be queried for a specified DB instance.

" }, + "ListPerformanceAnalysisReportRecommendations":{ + "name":"ListPerformanceAnalysisReportRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPerformanceAnalysisReportRecommendationsRequest"}, + "output":{"shape":"ListPerformanceAnalysisReportRecommendationsResponse"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"InternalServiceError"}, + {"shape":"NotAuthorizedException"} + ], + "documentation":"

Retrieves recommendations for a performance analysis report.

" + }, "ListPerformanceAnalysisReports":{ "name":"ListPerformanceAnalysisReports", "http":{ @@ -340,8 +355,7 @@ "required":[ "ServiceType", "Identifier", - "StartTime", - "EndTime" + "StartTime" ], "members":{ "ServiceType":{ @@ -1050,6 +1064,53 @@ } } }, + "ListPerformanceAnalysisReportRecommendationsRequest":{ + "type":"structure", + "required":[ + "ServiceType", + "Identifier", + "AnalysisReportId" + ], + "members":{ + "ServiceType":{ + "shape":"ServiceType", + "documentation":"

The Amazon Web Services service for which Performance Insights returns metrics. Valid value is RDS.

" + }, + "Identifier":{ + "shape":"IdentifierString", + "documentation":"

An immutable identifier for a data source that is unique for an Amazon Web Services Region. Performance Insights gathers metrics from this data source. In the console, the identifier is shown as ResourceID. When you call DescribeDBInstances, the identifier is returned as DbiResourceId.

To use a DB instance as a data source, specify its DbiResourceId value. For example, specify db-ABCDEFGHIJKLMNOPQRSTU1VW2X.

" + }, + "AnalysisReportId":{ + "shape":"AnalysisReportId", + "documentation":"

A unique identifier of the created analysis report. For example, report-12345678901234567

" + }, + "RecommendationIds":{ + "shape":"RecommendationIdList", + "documentation":"

A list of recommendation identifiers to filter the results.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of items to return in the response. If more items exist than the specified MaxResults value, a pagination token is included in the response so that the remaining results can be retrieved.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by MaxResults.

" + } + } + }, + "ListPerformanceAnalysisReportRecommendationsResponse":{ + "type":"structure", + "members":{ + "Recommendations":{ + "shape":"RecommendationList", + "documentation":"

The list of recommendations for the analysis report.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by MaxResults.

" + } + } + }, "ListPerformanceAnalysisReportsRequest":{ "type":"structure", "required":[ @@ -1261,10 +1322,18 @@ "RecommendationDescription":{ "shape":"MarkdownString", "documentation":"

The recommendation details to help resolve the performance issue. For example, Investigate the following SQLs that contributed to 100% of the total DBLoad during that time period: sql-id

" + }, + "RecommendationDetails":{ + "shape":"MarkdownString", + "documentation":"

Detailed information about the recommendation, including steps to resolve the performance issue.

" } }, "documentation":"

The list of recommendations for the insight.

" }, + "RecommendationIdList":{ + "type":"list", + "member":{"shape":"String"} + }, "RecommendationList":{ "type":"list", "member":{"shape":"Recommendation"} diff --git a/awscli/botocore/data/qconnect/2020-10-19/service-2.json b/awscli/botocore/data/qconnect/2020-10-19/service-2.json index 3c56b389d462..75d8f84481e6 100644 --- a/awscli/botocore/data/qconnect/2020-10-19/service-2.json +++ b/awscli/botocore/data/qconnect/2020-10-19/service-2.json @@ -6346,6 +6346,15 @@ "type":"list", "member":{"shape":"GroupingValue"} }, + "GuardrailAction":{ + "type":"string", + "documentation":"

The outcome of a guardrail assessment.

", + "enum":[ + "NONE", + "BLOCKED", + "MASKED" + ] + }, "GuardrailContentFilterConfig":{ "type":"structure", "required":[ @@ -6523,6 +6532,46 @@ ], "sensitive":true }, + "GuardrailPolicyResult":{ + "type":"structure", + "required":[ + "policyType", + "action" + ], + "members":{ + "policyType":{ + "shape":"GuardrailPolicyType", + "documentation":"

The type of guardrail policy that was evaluated.

" + }, + "action":{ + "shape":"GuardrailAction", + "documentation":"

Outcome of this specific policy.

" + }, + "details":{ + "shape":"NonEmptyString", + "documentation":"

Policy-specific detail.

" + } + }, + "documentation":"

Per-policy guardrail assessment result. Captures which policy triggered, its outcome, and a policy-specific detail string.

" + }, + "GuardrailPolicyResultList":{ + "type":"list", + "member":{"shape":"GuardrailPolicyResult"}, + "max":50, + "min":0 + }, + "GuardrailPolicyType":{ + "type":"string", + "documentation":"

Classification of a guardrail policy.

", + "enum":[ + "CONTENT_FILTER", + "TOPIC", + "WORD", + "SENSITIVE_INFORMATION_PII", + "SENSITIVE_INFORMATION_REGEX", + "CONTEXTUAL_GROUNDING" + ] + }, "GuardrailRegexConfig":{ "type":"structure", "required":[ @@ -6585,6 +6634,14 @@ ], "sensitive":true }, + "GuardrailSource":{ + "type":"string", + "documentation":"

Content source for a guardrail assessment.

", + "enum":[ + "INPUT", + "OUTPUT" + ] + }, "GuardrailTopicConfig":{ "type":"structure", "required":[ @@ -11231,6 +11288,10 @@ "timeToFirstTokenMs":{ "shape":"Integer", "documentation":"

Time to first token in milliseconds, measured from when Amazon Bedrock was invoked to when the first token was returned

" + }, + "guardrailAssessments":{ + "shape":"SpanGuardrailAssessmentList", + "documentation":"

Guardrail assessments for the inference span. Absent on other span types and when no AI Guardrail is attached to the AI Agent.

" } }, "documentation":"

Contextual attributes capturing operation details, LLM configuration, usage metrics, and conversation data

" @@ -11279,6 +11340,44 @@ "max":10, "min":0 }, + "SpanGuardrailAssessment":{ + "type":"structure", + "required":[ + "guardrailId", + "guardrailName", + "source", + "action" + ], + "members":{ + "guardrailId":{ + "shape":"NonEmptyString", + "documentation":"

Unique AI Guardrail identifier.

" + }, + "guardrailName":{ + "shape":"NonEmptyString", + "documentation":"

Customer-defined display name of the AI Guardrail resource.

" + }, + "source":{ + "shape":"GuardrailSource", + "documentation":"

Content source the guardrail was evaluated against.

" + }, + "action":{ + "shape":"GuardrailAction", + "documentation":"

Outcome of the guardrail assessment.

" + }, + "policies":{ + "shape":"GuardrailPolicyResultList", + "documentation":"

Per-policy assessment results. Absent or empty when action is NONE.

" + } + }, + "documentation":"

Result of a single guardrail assessment, covering either the input (customer/user message) or the output (LLM response) of a Bedrock Converse call.

" + }, + "SpanGuardrailAssessmentList":{ + "type":"list", + "member":{"shape":"SpanGuardrailAssessment"}, + "max":10, + "min":0 + }, "SpanList":{ "type":"list", "member":{"shape":"Span"}, diff --git a/awscli/botocore/data/securityagent/2025-09-06/service-2.json b/awscli/botocore/data/securityagent/2025-09-06/service-2.json index e314d5b44d90..0dc520a34207 100644 --- a/awscli/botocore/data/securityagent/2025-09-06/service-2.json +++ b/awscli/botocore/data/securityagent/2025-09-06/service-2.json @@ -2893,6 +2893,10 @@ "shape":"CodeLocationList", "documentation":"

The file locations involved in the vulnerability, as reported by the code scanner.

" }, + "verificationScript":{ + "shape":"VerificationScript", + "documentation":"

The verification script metadata for reproducing the finding, including download URL, instructions, and required environment variables.

" + }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The date and time the finding was created, in UTC format.

" @@ -5705,6 +5709,47 @@ }, "documentation":"

Contains the verification details for a target domain, including the verification method and provider-specific details.

" }, + "VerificationScript":{ + "type":"structure", + "members":{ + "scriptType":{ + "shape":"String", + "documentation":"

The type of script. Valid values are python and bash.

" + }, + "scriptUrl":{ + "shape":"String", + "documentation":"

URL to download the verification script.

" + }, + "instructions":{ + "shape":"String", + "documentation":"

Instructions for running the verification script, including prerequisites and how to interpret results.

" + }, + "envVars":{ + "shape":"VerificationScriptEnvVarList", + "documentation":"

The list of environment variables required to run the verification script.

" + } + }, + "documentation":"

Contains metadata for a verification script that can be used to reproduce a security finding.

" + }, + "VerificationScriptEnvVar":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the environment variable.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value of the environment variable.

" + } + }, + "documentation":"

Represents an environment variable required to run a verification script.

" + }, + "VerificationScriptEnvVarList":{ + "type":"list", + "member":{"shape":"VerificationScriptEnvVar"}, + "documentation":"

List of environment variables required to run a verification script.

" + }, "VerifyTargetDomainInput":{ "type":"structure", "required":["targetDomainId"], From 11501b5b56a0003b60828cee3e230efc564af1ba Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 22 May 2026 18:07:12 +0000 Subject: [PATCH 32/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 1 + 1 file changed, 1 insertion(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 66f329371dd5..cc16f6cf93e7 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -18725,6 +18725,7 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "polly-fips.ca-central-1.amazonaws.com", From c903565454c07676453a5456aa351488b3097c17 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 22 May 2026 18:09:18 +0000 Subject: [PATCH 33/73] Bump version to 2.34.53 --- .changes/2.34.53.json | 47 +++++++++++++++++++ .../api-change-datazone-39974.json | 5 -- .../next-release/api-change-ec2-55176.json | 5 -- .../api-change-gameliftstreams-35421.json | 5 -- .../api-change-invoicing-12241.json | 5 -- .../next-release/api-change-pi-99677.json | 5 -- .../api-change-qconnect-45740.json | 5 -- .../api-change-securityagent-98787.json | 5 -- .../enhancement-OpenSSL-85066.json | 5 -- .../enhancement-configure-34819.json | 5 -- CHANGELOG.rst | 14 ++++++ awscli/__init__.py | 2 +- configure | 14 +++--- configure.ac | 2 +- doc/source/conf.py | 2 +- 15 files changed, 71 insertions(+), 55 deletions(-) create mode 100644 .changes/2.34.53.json delete mode 100644 .changes/next-release/api-change-datazone-39974.json delete mode 100644 .changes/next-release/api-change-ec2-55176.json delete mode 100644 .changes/next-release/api-change-gameliftstreams-35421.json delete mode 100644 .changes/next-release/api-change-invoicing-12241.json delete mode 100644 .changes/next-release/api-change-pi-99677.json delete mode 100644 .changes/next-release/api-change-qconnect-45740.json delete mode 100644 .changes/next-release/api-change-securityagent-98787.json delete mode 100644 .changes/next-release/enhancement-OpenSSL-85066.json delete mode 100644 .changes/next-release/enhancement-configure-34819.json diff --git a/.changes/2.34.53.json b/.changes/2.34.53.json new file mode 100644 index 000000000000..4bdcc327556e --- /dev/null +++ b/.changes/2.34.53.json @@ -0,0 +1,47 @@ +[ + { + "category": "``invoicing``", + "description": "Adds support for idempotency with a new ClientToken field for the CreateInvoiceUnit, DeleteInvoiceUnit, UpdateInvoiceUnit, DeleteProcurementPortalPreference, PutProcurementPortalPreference, and UpdateProcurementPortalPreferenceStatus APIs.", + "type": "api-change" + }, + { + "category": "``pi``", + "description": "Added ListPerformanceAnalysisReportRecommendations API to retrieve recommendations for a performance analysis report. Added analysis configuration support to CreatePerformanceAnalysisReport for enhanced analysis types such as vacuum analysis.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "The ModifyInstanceAttribute API now supports modification of EnclaveOptions for the instance as a typed parameter.", + "type": "api-change" + }, + { + "category": "``securityagent``", + "description": "Adds support for verification scripts on penetration test findings. Customers can now download executable scripts to independently reproduce confirmed vulnerabilities, with instructions and required environment variables provided for each finding.", + "type": "api-change" + }, + { + "category": "``datazone``", + "description": "Add support for VPC connection", + "type": "api-change" + }, + { + "category": "``qconnect``", + "description": "Added guardrail assessment results to inference spans in the ListSpans API. You can now see which AI Guardrail policies were evaluated, whether content was blocked or masked, and per-policy details for each Bedrock Converse call", + "type": "api-change" + }, + { + "category": "configure", + "description": "Warn if the credentials file has permissions beyond the default of 0o600 when modifying the file. Fixes `#10019 `__.", + "type": "enhancement" + }, + { + "category": "``gameliftstreams``", + "description": "Added new Gen6 stream classes based on the EC2 G6e instance family. These classes are designed for streaming high-fidelity, graphically demanding games and applications that benefit from additional GPU memory and performance.", + "type": "api-change" + }, + { + "category": "OpenSSL", + "description": "Update bundled OpenSSL version to 3.5.6 for Linux installers", + "type": "enhancement" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-datazone-39974.json b/.changes/next-release/api-change-datazone-39974.json deleted file mode 100644 index e2b75913b448..000000000000 --- a/.changes/next-release/api-change-datazone-39974.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``datazone``", - "description": "Add support for VPC connection" -} diff --git a/.changes/next-release/api-change-ec2-55176.json b/.changes/next-release/api-change-ec2-55176.json deleted file mode 100644 index bb1a8fd86549..000000000000 --- a/.changes/next-release/api-change-ec2-55176.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ec2``", - "description": "The ModifyInstanceAttribute API now supports modification of EnclaveOptions for the instance as a typed parameter." -} diff --git a/.changes/next-release/api-change-gameliftstreams-35421.json b/.changes/next-release/api-change-gameliftstreams-35421.json deleted file mode 100644 index 01d86fc3c26b..000000000000 --- a/.changes/next-release/api-change-gameliftstreams-35421.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``gameliftstreams``", - "description": "Added new Gen6 stream classes based on the EC2 G6e instance family. These classes are designed for streaming high-fidelity, graphically demanding games and applications that benefit from additional GPU memory and performance." -} diff --git a/.changes/next-release/api-change-invoicing-12241.json b/.changes/next-release/api-change-invoicing-12241.json deleted file mode 100644 index 30641540da73..000000000000 --- a/.changes/next-release/api-change-invoicing-12241.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``invoicing``", - "description": "Adds support for idempotency with a new ClientToken field for the CreateInvoiceUnit, DeleteInvoiceUnit, UpdateInvoiceUnit, DeleteProcurementPortalPreference, PutProcurementPortalPreference, and UpdateProcurementPortalPreferenceStatus APIs." -} diff --git a/.changes/next-release/api-change-pi-99677.json b/.changes/next-release/api-change-pi-99677.json deleted file mode 100644 index 1a30e0b0daf9..000000000000 --- a/.changes/next-release/api-change-pi-99677.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``pi``", - "description": "Added ListPerformanceAnalysisReportRecommendations API to retrieve recommendations for a performance analysis report. Added analysis configuration support to CreatePerformanceAnalysisReport for enhanced analysis types such as vacuum analysis." -} diff --git a/.changes/next-release/api-change-qconnect-45740.json b/.changes/next-release/api-change-qconnect-45740.json deleted file mode 100644 index 337cb490bd5d..000000000000 --- a/.changes/next-release/api-change-qconnect-45740.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``qconnect``", - "description": "Added guardrail assessment results to inference spans in the ListSpans API. You can now see which AI Guardrail policies were evaluated, whether content was blocked or masked, and per-policy details for each Bedrock Converse call" -} diff --git a/.changes/next-release/api-change-securityagent-98787.json b/.changes/next-release/api-change-securityagent-98787.json deleted file mode 100644 index 94793c012b31..000000000000 --- a/.changes/next-release/api-change-securityagent-98787.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``securityagent``", - "description": "Adds support for verification scripts on penetration test findings. Customers can now download executable scripts to independently reproduce confirmed vulnerabilities, with instructions and required environment variables provided for each finding." -} diff --git a/.changes/next-release/enhancement-OpenSSL-85066.json b/.changes/next-release/enhancement-OpenSSL-85066.json deleted file mode 100644 index 8b586ba700aa..000000000000 --- a/.changes/next-release/enhancement-OpenSSL-85066.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "OpenSSL", - "description": "Update bundled OpenSSL version to 3.5.6 for Linux installers" -} diff --git a/.changes/next-release/enhancement-configure-34819.json b/.changes/next-release/enhancement-configure-34819.json deleted file mode 100644 index dcc146c4e6e9..000000000000 --- a/.changes/next-release/enhancement-configure-34819.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "configure", - "description": "Warn if the credentials file has permissions beyond the default of 0o600 when modifying the file. Fixes `#10019 `__." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d1ceb8e89836..7a20ebd8edd4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,20 @@ CHANGELOG ========= +2.34.53 +======= + +* api-change:``invoicing``: Adds support for idempotency with a new ClientToken field for the CreateInvoiceUnit, DeleteInvoiceUnit, UpdateInvoiceUnit, DeleteProcurementPortalPreference, PutProcurementPortalPreference, and UpdateProcurementPortalPreferenceStatus APIs. +* api-change:``pi``: Added ListPerformanceAnalysisReportRecommendations API to retrieve recommendations for a performance analysis report. Added analysis configuration support to CreatePerformanceAnalysisReport for enhanced analysis types such as vacuum analysis. +* api-change:``ec2``: The ModifyInstanceAttribute API now supports modification of EnclaveOptions for the instance as a typed parameter. +* api-change:``securityagent``: Adds support for verification scripts on penetration test findings. Customers can now download executable scripts to independently reproduce confirmed vulnerabilities, with instructions and required environment variables provided for each finding. +* api-change:``datazone``: Add support for VPC connection +* api-change:``qconnect``: Added guardrail assessment results to inference spans in the ListSpans API. You can now see which AI Guardrail policies were evaluated, whether content was blocked or masked, and per-policy details for each Bedrock Converse call +* enhancement:configure: Warn if the credentials file has permissions beyond the default of 0o600 when modifying the file. Fixes `#10019 `__. +* api-change:``gameliftstreams``: Added new Gen6 stream classes based on the EC2 G6e instance family. These classes are designed for streaming high-fidelity, graphically demanding games and applications that benefit from additional GPU memory and performance. +* enhancement:OpenSSL: Update bundled OpenSSL version to 3.5.6 for Linux installers + + 2.34.52 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 86931dd3285e..0851191463ab 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.52' +__version__ = '2.34.53' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 0d1a158b80df..1833e940d8ef 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.52. +# Generated by GNU Autoconf 2.71 for awscli 2.34.53. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.52' -PACKAGE_STRING='awscli 2.34.52' +PACKAGE_VERSION='2.34.53' +PACKAGE_STRING='awscli 2.34.53' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.52 +awscli configure 2.34.53 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.52, which was +It was created by awscli $as_me 2.34.53, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.52, which was +This file was extended by awscli $as_me 2.34.53, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.52 +awscli config.status 2.34.53 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 6117b024a8a1..d26f78299fdb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.52]) +AC_INIT([awscli], [2.34.53]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 3905eaf0bfe1..12a030d5e488 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.52' +release = '2.34.53' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From a993970b2458e6cbff8695274a27a49d6c11ea68 Mon Sep 17 00:00:00 2001 From: Steve <106777148+hssyoo@users.noreply.github.com> Date: Fri, 22 May 2026 19:52:35 -0400 Subject: [PATCH 34/73] Temporarily disable route53 smoke tests (#10344) --- tests/integration/botocore/test_route53.py | 48 +++++++++++----------- tests/integration/botocore/test_smoke.py | 4 +- tests/integration/smoke-tests.json | 14 ------- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/tests/integration/botocore/test_route53.py b/tests/integration/botocore/test_route53.py index d7c8ce07b25b..84eb7431fdba 100644 --- a/tests/integration/botocore/test_route53.py +++ b/tests/integration/botocore/test_route53.py @@ -21,30 +21,30 @@ def setUp(self): self.session = botocore.session.get_session() self.client = self.session.create_client('route53', 'us-west-2') - def test_paginate_with_max_items(self): - # Route53 has a string type for MaxItems. We need to ensure that this - # still works without any issues. - paginator = self.client.get_paginator('list_hosted_zones') - results = list(paginator.paginate(PaginationConfig={'MaxItems': '1'})) - self.assertTrue(len(results) >= 0) - - def test_paginate_with_deprecated_paginator_and_limited_input_tokens(self): - paginator = self.client.get_paginator('list_resource_record_sets') - - # We're making sure the paginator gets set without failing locally, so - # a ClientError is acceptable. In this case, the Hosted Zone specified - # does not exist. - with self.assertRaises(ClientError): - results = list( - paginator.paginate( - PaginationConfig={ - 'MaxItems': '1', - 'StartingToken': 'my.domain.name.', - }, - HostedZoneId="foo", - ) - ) - self.assertTrue(len(results) >= 0) + # def test_paginate_with_max_items(self): + # # Route53 has a string type for MaxItems. We need to ensure that this + # # still works without any issues. + # paginator = self.client.get_paginator('list_hosted_zones') + # results = list(paginator.paginate(PaginationConfig={'MaxItems': '1'})) + # self.assertTrue(len(results) >= 0) + + # def test_paginate_with_deprecated_paginator_and_limited_input_tokens(self): + # paginator = self.client.get_paginator('list_resource_record_sets') + + # # We're making sure the paginator gets set without failing locally, so + # # a ClientError is acceptable. In this case, the Hosted Zone specified + # # does not exist. + # with self.assertRaises(ClientError): + # results = list( + # paginator.paginate( + # PaginationConfig={ + # 'MaxItems': '1', + # 'StartingToken': 'my.domain.name.', + # }, + # HostedZoneId="foo", + # ) + # ) + # self.assertTrue(len(results) >= 0) if __name__ == '__main__': diff --git a/tests/integration/botocore/test_smoke.py b/tests/integration/botocore/test_smoke.py index 1d66d8b45007..582726dd81d1 100644 --- a/tests/integration/botocore/test_smoke.py +++ b/tests/integration/botocore/test_smoke.py @@ -76,7 +76,7 @@ 'logs': {'DescribeLogGroups': {}}, 'rds': {'DescribeDBInstances': {}}, 'redshift': {'DescribeClusters': {}}, - 'route53': {'ListHostedZones': {}}, + # 'route53': {'ListHostedZones': {}}, 'route53domains': {'ListDomains': {}}, 's3': {'ListBuckets': {}}, 'sdb': {'ListDomains': {}}, @@ -162,7 +162,7 @@ 'lambda': {'Invoke': {'FunctionName': 'fake'}}, 'rds': {'DescribeDBInstances': {'DBInstanceIdentifier': 'fake'}}, 'redshift': {'DescribeClusters': {'ClusterIdentifier': 'fake'}}, - 'route53': {'GetHostedZone': {'Id': 'fake'}}, + # 'route53': {'GetHostedZone': {'Id': 'fake'}}, 'route53domains': {'GetDomainDetail': {'DomainName': 'fake'}}, 's3': {'ListObjects': {'Bucket': 'thisbucketdoesnotexistasdf'}}, 'ses': {'VerifyEmailIdentity': {'EmailAddress': 'fake'}}, diff --git a/tests/integration/smoke-tests.json b/tests/integration/smoke-tests.json index 8cd55e060fc3..ca4bca61d76b 100644 --- a/tests/integration/smoke-tests.json +++ b/tests/integration/smoke-tests.json @@ -89,14 +89,6 @@ "redshift", "describe-clusters" ], - [ - "route53", - "list-hosted-zones" - ], - [ - "route53domains", - "list-domains" - ], [ "s3api", "list-buckets" @@ -240,12 +232,6 @@ "--cluster-identifier", "test-resource" ], - [ - "route53", - "delete-hosted-zone", - "--id", - "test-resource" - ], [ "route53domains", "get-domain-detail", From ab7c5bd42e8fb9568d3466f7b7f06b8e0e9067d3 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 26 May 2026 18:20:57 +0000 Subject: [PATCH 35/73] Update to latest models --- .../next-release/api-change-backup-4671.json | 5 + .../next-release/api-change-batch-29305.json | 5 + .../api-change-budgets-77102.json | 5 + .../api-change-datazone-1050.json | 5 + .../api-change-guardduty-25770.json | 5 + ...change-resourcegroupstaggingapi-14997.json | 5 + .../data/backup/2018-11-15/service-2.json | 107 ++++++++++++++++- .../data/batch/2016-08-10/service-2.json | 6 +- .../data/budgets/2016-10-20/service-2.json | 4 +- .../data/datazone/2018-05-10/service-2.json | 113 ++++++++++++++++++ .../data/guardduty/2017-11-28/service-2.json | 47 +++++++- .../2017-01-26/service-2.json | 4 + 12 files changed, 303 insertions(+), 8 deletions(-) create mode 100644 .changes/next-release/api-change-backup-4671.json create mode 100644 .changes/next-release/api-change-batch-29305.json create mode 100644 .changes/next-release/api-change-budgets-77102.json create mode 100644 .changes/next-release/api-change-datazone-1050.json create mode 100644 .changes/next-release/api-change-guardduty-25770.json create mode 100644 .changes/next-release/api-change-resourcegroupstaggingapi-14997.json diff --git a/.changes/next-release/api-change-backup-4671.json b/.changes/next-release/api-change-backup-4671.json new file mode 100644 index 000000000000..48c66b017d4a --- /dev/null +++ b/.changes/next-release/api-change-backup-4671.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``backup``", + "description": "Launching S3 PITR malware scanning support for AWS Backup" +} diff --git a/.changes/next-release/api-change-batch-29305.json b/.changes/next-release/api-change-batch-29305.json new file mode 100644 index 000000000000..cc62ffa64c31 --- /dev/null +++ b/.changes/next-release/api-change-batch-29305.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``batch``", + "description": "Increase the maximum value of jobExecutionTimeoutMinutes to support longer job timeouts during compute environment infrastructure updates." +} diff --git a/.changes/next-release/api-change-budgets-77102.json b/.changes/next-release/api-change-budgets-77102.json new file mode 100644 index 000000000000..10de61bf0e1b --- /dev/null +++ b/.changes/next-release/api-change-budgets-77102.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``budgets``", + "description": "AWS Budget Name Validation Documentation Updates." +} diff --git a/.changes/next-release/api-change-datazone-1050.json b/.changes/next-release/api-change-datazone-1050.json new file mode 100644 index 000000000000..f023db6f72d7 --- /dev/null +++ b/.changes/next-release/api-change-datazone-1050.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``datazone``", + "description": "Added resourceConfigurations and allowUserProvidedConfigurations fields to environment blueprint configuration APIs, enabling customers who migrated from V1 to V2 domains to update resource configurations (such as lineage schedules) programmatically via the SDK." +} diff --git a/.changes/next-release/api-change-guardduty-25770.json b/.changes/next-release/api-change-guardduty-25770.json new file mode 100644 index 000000000000..c7b71ee968ac --- /dev/null +++ b/.changes/next-release/api-change-guardduty-25770.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``guardduty``", + "description": "Add malware scan support for Continuous Backups, also known as Point-In-Time Recovery Points (PITR)." +} diff --git a/.changes/next-release/api-change-resourcegroupstaggingapi-14997.json b/.changes/next-release/api-change-resourcegroupstaggingapi-14997.json new file mode 100644 index 000000000000..bd27b5c42115 --- /dev/null +++ b/.changes/next-release/api-change-resourcegroupstaggingapi-14997.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``resourcegroupstaggingapi``", + "description": "The GetResources API now returns MissingTagKeys in ComplianceDetails, listing tag keys defined as required in the ReportRequiredTagBlock block of the effective tag policy that are absent from the resource." +} diff --git a/awscli/botocore/data/backup/2018-11-15/service-2.json b/awscli/botocore/data/backup/2018-11-15/service-2.json index 00700321b9ec..8f2313a90ca8 100644 --- a/awscli/botocore/data/backup/2018-11-15/service-2.json +++ b/awscli/botocore/data/backup/2018-11-15/service-2.json @@ -831,6 +831,24 @@ "documentation":"

This action returns details for a specified legal hold. The details are the body of a legal hold in JSON format, in addition to metadata.

", "idempotent":true }, + "GetPITRMalwareScanResults":{ + "name":"GetPITRMalwareScanResults", + "http":{ + "method":"GET", + "requestUri":"/scan/pitr-malware-scan-results", + "responseCode":200 + }, + "input":{"shape":"GetPITRMalwareScanResultsInput"}, + "output":{"shape":"GetPITRMalwareScanResultsOutput"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Returns the malware scan results for a specified point in time within a continuous (point-in-time recovery) backup.

", + "idempotent":true + }, "GetRecoveryPointIndexDetails":{ "name":"GetRecoveryPointIndexDetails", "http":{ @@ -4427,6 +4445,14 @@ "shape":"Timestamp", "documentation":"

The date and time that a backup index finished creation, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" }, + "ContinuousScanEndTime":{ + "shape":"Timestamp", + "documentation":"

The point in time the scan job scanned up to for a continuous backup.

" + }, + "ContinuousScanStartTime":{ + "shape":"Timestamp", + "documentation":"

The point in time the scan job started scan from for a continuous backup.

" + }, "CreatedBy":{"shape":"ScanJobCreator"}, "CreationDate":{ "shape":"Timestamp", @@ -4923,6 +4949,70 @@ } } }, + "GetPITRMalwareScanResultsInput":{ + "type":"structure", + "required":[ + "RecoveryPointArn", + "BackupVaultName", + "ScanEndTime", + "MalwareScanner" + ], + "members":{ + "RecoveryPointArn":{ + "shape":"String", + "documentation":"

An ARN that uniquely identifies the target recovery point for scanning; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.

", + "location":"querystring", + "locationName":"RecoveryPointArn" + }, + "BackupVaultName":{ + "shape":"String", + "documentation":"

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Amazon Web Services Region where they are created.

", + "location":"querystring", + "locationName":"BackupVaultName" + }, + "ScanEndTime":{ + "shape":"Timestamp", + "documentation":"

The point in time within the continuous backup to examine for malware scan results.

", + "location":"querystring", + "locationName":"ScanEndTime" + }, + "MalwareScanner":{ + "shape":"MalwareScanner", + "documentation":"

The scanning engine used for the corresponding scan job. Currently only GUARDDUTY is supported.

", + "location":"querystring", + "locationName":"MalwareScanner" + } + } + }, + "GetPITRMalwareScanResultsOutput":{ + "type":"structure", + "required":[ + "ScanEndTime", + "ScanResult" + ], + "members":{ + "ScanEndTime":{ + "shape":"Timestamp", + "documentation":"

The point in time that was queried. This echoes back the time specified in the request.

" + }, + "ScanResult":{ + "shape":"ScanResultInfo", + "documentation":"

Contains the ScanResultStatus for the scan and returns THREATS_FOUND, NO_THREATS_FOUND, or UNKNOWN.

" + }, + "LastScanJobTime":{ + "shape":"Timestamp", + "documentation":"

The completion time of the most recent scan job that covered the specified point in time.

" + }, + "ScanId":{ + "shape":"String", + "documentation":"

The scan ID generated by Amazon GuardDuty for the corresponding Scan Job ID request from Backup.

" + }, + "ScanMode":{ + "shape":"ScanMode", + "documentation":"

Specifies the scan type used for the scan job.

" + } + } + }, "GetRecoveryPointIndexDetailsInput":{ "type":"structure", "required":[ @@ -8375,6 +8465,14 @@ "shape":"Timestamp", "documentation":"

The date and time that a scan job is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" }, + "ContinuousScanEndTime":{ + "shape":"Timestamp", + "documentation":"

The point in time the scan job scanned up to for a continuous backup.

" + }, + "ContinuousScanStartTime":{ + "shape":"Timestamp", + "documentation":"

The point in time the scan job started scan from for a continuous backup.

" + }, "CreatedBy":{ "shape":"ScanJobCreator", "documentation":"

Contains identifying information about the creation of a scan job.

" @@ -8585,7 +8683,7 @@ "members":{ "ScanResultStatus":{ "shape":"ScanResultStatus", - "documentation":"

The status of the scan results.

Valid values: THREATS_FOUND | NO_THREATS_FOUND.

" + "documentation":"

The status of the scan results.

Valid values: THREATS_FOUND | NO_THREATS_FOUND | UNKNOWN.

" } }, "documentation":"

Contains information about the results of a scan job.

" @@ -8594,7 +8692,8 @@ "type":"string", "enum":[ "NO_THREATS_FOUND", - "THREATS_FOUND" + "THREATS_FOUND", + "UNKNOWN" ] }, "ScanResults":{ @@ -8892,6 +8991,10 @@ "shape":"String", "documentation":"

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Amazon Web Services Region where they are created.

Pattern: ^[a-zA-Z0-9\\-\\_]{2,50}$

" }, + "ContinuousScanEndTime":{ + "shape":"Timestamp", + "documentation":"

The point in time the scan job will scan up to for a continuous backup.

" + }, "IamRoleArn":{ "shape":"String", "documentation":"

Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access.

" diff --git a/awscli/botocore/data/batch/2016-08-10/service-2.json b/awscli/botocore/data/batch/2016-08-10/service-2.json index d417a6b624bb..636b0ebfbc28 100644 --- a/awscli/botocore/data/batch/2016-08-10/service-2.json +++ b/awscli/botocore/data/batch/2016-08-10/service-2.json @@ -1059,7 +1059,7 @@ }, "instanceTypes":{ "shape":"StringList", - "documentation":"

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge).

Batch can select the instance type for you if you choose one of the following:

  • optimal to select instance types (from the c4, m4, r4, c5, m5, and r5 instance families) that match the demand of your job queues.

  • default_x86_64 to choose x86 based instance types (from the m6i, c6i, r6i, and c7i instance families) that matches the resource demands of the job queue.

  • default_arm64 to choose ARM based instance types (from the m6g, c6g, r6g, and c7g instance families) that matches the resource demands of the job queue.

Starting on 11/01/2025 the behavior of optimal is going to be changed to match default_x86_64. During the change your instance families could be updated to a newer generation. You do not need to perform any actions for the upgrade to happen. For more information about change, see Optimal instance type configuration to receive automatic instance family updates.

Instance family availability varies by Amazon Web Services Region. For example, some Amazon Web Services Regions may not have any fourth generation instance families but have fifth and sixth generation instance families.

When using default_x86_64 or default_arm64 instance bundles, Batch selects instance families based on a balance of cost-effectiveness and performance. While newer generation instances often provide better price-performance, Batch may choose an earlier generation instance family if it provides the optimal combination of availability, cost, and performance for your workload. For example, in an Amazon Web Services Region where both c6i and c7i instances are available, Batch might select c6i instances if they offer better cost-effectiveness for your specific job requirements. For more information on Batch instance types and Amazon Web Services Region availability, see Instance type compute table in the Batch User Guide.

Batch periodically updates your instances in default bundles to newer, more cost-effective options. Updates happen automatically without requiring any action from you. Your workloads continue running during updates with no interruption

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

" + "documentation":"

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge).

Batch can select the instance type for you if you choose one of the following:

  • default_x86_64 to choose x86 based instance types (from the m6i, c6i, r6i, and c7i instance families) that matches the resource demands of the job queue.

  • default_arm64 to choose ARM based instance types (from the m6g, c6g, r6g, and c7g instance families) that matches the resource demands of the job queue.

  • optimal Semantically equivalent to default_x86_64, see Optimal instance type configuration to receive automatic instance family updates for details.

Instance family availability varies by Amazon Web Services Region. For example, some Amazon Web Services Regions may not have any fourth generation instance families but have fifth and sixth generation instance families.

When using default_x86_64 or default_arm64 instance bundles, Batch selects instance families based on a balance of cost-effectiveness and performance. While newer generation instances often provide better price-performance, Batch may choose an earlier generation instance family if it provides the optimal combination of availability, cost, and performance for your workload. For example, in an Amazon Web Services Region where both c6i and c7i instances are available, Batch might select c6i instances if they offer better cost-effectiveness for your specific job requirements. For more information on Batch instance types and Amazon Web Services Region availability, see Instance type compute table in the Batch User Guide.

Batch periodically updates your instances in default bundles to newer, more cost-effective options. Updates happen automatically without requiring any action from you. Your workloads continue running during updates with no interruption

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

" }, "imageId":{ "shape":"String", @@ -3742,7 +3742,7 @@ }, "JobExecutionTimeoutMinutes":{ "type":"long", - "max":360, + "max":7200, "min":1 }, "JobQueueDetail":{ @@ -6296,7 +6296,7 @@ }, "jobExecutionTimeoutMinutes":{ "shape":"JobExecutionTimeoutMinutes", - "documentation":"

Specifies the job timeout (in minutes) when the compute environment infrastructure is updated. The default value is 30.

" + "documentation":"

Specifies the job timeout (in minutes) when the compute environment infrastructure is updated. The default value is 30. The maximum value is 7200.

Increasing jobExecutionTimeoutMinutes during infrastructure updates delays the replacement of instances with new instances that include updates such as security patches, but provides more time for jobs to execute. Consider the security implications of this tradeoff when setting timeout values.

" } }, "documentation":"

Specifies the infrastructure update policy for the Amazon EC2 compute environment. For more information about infrastructure updates, see Updating compute environments in the Batch User Guide.

" diff --git a/awscli/botocore/data/budgets/2016-10-20/service-2.json b/awscli/botocore/data/budgets/2016-10-20/service-2.json index 89ae826e47d7..5179a2600145 100644 --- a/awscli/botocore/data/budgets/2016-10-20/service-2.json +++ b/awscli/botocore/data/budgets/2016-10-20/service-2.json @@ -723,7 +723,7 @@ "members":{ "BudgetName":{ "shape":"BudgetName", - "documentation":"

The name of a budget. The name must be unique within an account. The : and \\ characters, and the \"/action/\" substring, aren't allowed in BudgetName.

" + "documentation":"

The name of a budget. The name must be unique within an account. The : and \\ characters, and the \"/action/\" substring, aren't allowed in BudgetName.

Budget names are validated for content. Names that contain phone numbers, URLs, or email addresses combined with certain terms may be rejected.

" }, "BudgetLimit":{ "shape":"Spend", @@ -792,7 +792,7 @@ }, "BudgetName":{ "type":"string", - "documentation":"

A string that represents the budget name. The \":\" and \"\\\" characters, and the \"/action/\" substring, aren't allowed.

", + "documentation":"

A string that represents the budget name. The \":\" and \"\\\" characters, and the \"/action/\" substring, aren't allowed.

Budget names are validated for content. Names that contain phone numbers, URLs, or email addresses combined with certain terms may be rejected.

", "max":100, "min":1, "pattern":"^(?![^:\\\\]*/action/|(?i).*.*)[^:\\\\]+$" diff --git a/awscli/botocore/data/datazone/2018-05-10/service-2.json b/awscli/botocore/data/datazone/2018-05-10/service-2.json index b4da671ff755..5783be170b06 100644 --- a/awscli/botocore/data/datazone/2018-05-10/service-2.json +++ b/awscli/botocore/data/datazone/2018-05-10/service-2.json @@ -11543,6 +11543,10 @@ "shape":"RegionalParameterMap", "documentation":"

The regional parameters of the environment blueprint.

" }, + "allowUserProvidedConfigurations":{ + "shape":"Boolean", + "documentation":"

Specifies whether user-provided resource configurations are allowed for the environment blueprint.

" + }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The timestamp of when an environment blueprint was created.

" @@ -11551,6 +11555,10 @@ "shape":"SyntheticTimestamp_date_time", "documentation":"

The timestamp of when the environment blueprint was updated.

" }, + "resourceConfigurations":{ + "shape":"ResourceConfigurations", + "documentation":"

The resource configurations of the environment blueprint.

" + }, "provisioningConfigurations":{ "shape":"ProvisioningConfigurationList", "documentation":"

The provisioning configuration of a blueprint.

" @@ -13524,6 +13532,10 @@ "shape":"RegionalParameterMap", "documentation":"

The regional parameters of the blueprint.

" }, + "allowUserProvidedConfigurations":{ + "shape":"Boolean", + "documentation":"

Specifies whether user-provided resource configurations are allowed for the environment blueprint.

" + }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The timestamp of when this blueprint was created.

" @@ -13532,6 +13544,10 @@ "shape":"SyntheticTimestamp_date_time", "documentation":"

The timestamp of when this blueprint was upated.

" }, + "resourceConfigurations":{ + "shape":"ResourceConfigurations", + "documentation":"

The resource configurations of the environment blueprint.

" + }, "provisioningConfigurations":{ "shape":"ProvisioningConfigurationList", "documentation":"

The provisioning configuration of a blueprint.

" @@ -21374,6 +21390,14 @@ "shape":"RegionalParameterMap", "documentation":"

The regional parameters in the environment blueprint.

" }, + "resourceConfigurations":{ + "shape":"PutResourceConfigurations", + "documentation":"

The resource configurations of the environment blueprint.

" + }, + "allowUserProvidedConfigurations":{ + "shape":"Boolean", + "documentation":"

Specifies whether user-provided resource configurations are allowed for the environment blueprint.

" + }, "globalParameters":{ "shape":"GlobalParameterMap", "documentation":"

Region-agnostic environment blueprint parameters.

" @@ -21419,6 +21443,10 @@ "shape":"RegionalParameterMap", "documentation":"

The regional parameters in the environment blueprint.

" }, + "allowUserProvidedConfigurations":{ + "shape":"Boolean", + "documentation":"

Specifies whether user-provided resource configurations are allowed for the environment blueprint.

" + }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The timestamp of when the environment blueprint was created.

" @@ -21427,12 +21455,54 @@ "shape":"SyntheticTimestamp_date_time", "documentation":"

The timestamp of when the environment blueprint was updated.

" }, + "resourceConfigurations":{ + "shape":"ResourceConfigurations", + "documentation":"

The resource configurations of the environment blueprint.

" + }, "provisioningConfigurations":{ "shape":"ProvisioningConfigurationList", "documentation":"

The provisioning configuration of a blueprint.

" } } }, + "PutResourceConfiguration":{ + "type":"structure", + "required":[ + "name", + "region", + "parameters" + ], + "members":{ + "name":{ + "shape":"PutResourceConfigurationNameString", + "documentation":"

The name of the resource configuration.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the resource configuration.

" + }, + "region":{ + "shape":"RegionName", + "documentation":"

The Amazon Web Services Region of the resource configuration.

" + }, + "parameters":{ + "shape":"ResourceConfigurationParameterMap", + "documentation":"

The parameters of the resource configuration.

" + } + }, + "documentation":"

The resource configuration that is used to configure the environment blueprint.

" + }, + "PutResourceConfigurationNameString":{ + "type":"string", + "max":64, + "min":1 + }, + "PutResourceConfigurations":{ + "type":"list", + "member":{"shape":"PutResourceConfiguration"}, + "max":10, + "min":0 + }, "QueryGraphInput":{ "type":"structure", "required":[ @@ -22281,6 +22351,49 @@ }, "documentation":"

The details of a provisioned resource of this Amazon DataZone environment.

" }, + "ResourceConfiguration":{ + "type":"structure", + "required":[ + "identifier", + "name", + "region", + "parameters" + ], + "members":{ + "identifier":{ + "shape":"String", + "documentation":"

The identifier of the resource configuration.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the resource configuration.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the resource configuration.

" + }, + "region":{ + "shape":"RegionName", + "documentation":"

The Amazon Web Services Region of the resource configuration.

" + }, + "parameters":{ + "shape":"ResourceConfigurationParameterMap", + "documentation":"

The parameters of the resource configuration.

" + } + }, + "documentation":"

The details of the resource configuration.

" + }, + "ResourceConfigurationParameterMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ResourceConfigurations":{ + "type":"list", + "member":{"shape":"ResourceConfiguration"}, + "max":10, + "min":0 + }, "ResourceList":{ "type":"list", "member":{"shape":"Resource"} diff --git a/awscli/botocore/data/guardduty/2017-11-28/service-2.json b/awscli/botocore/data/guardduty/2017-11-28/service-2.json index ca306c77c93c..69bec0fac101 100644 --- a/awscli/botocore/data/guardduty/2017-11-28/service-2.json +++ b/awscli/botocore/data/guardduty/2017-11-28/service-2.json @@ -2351,6 +2351,23 @@ "type":"list", "member":{"shape":"Container"} }, + "ContinuousScanDetails":{ + "type":"structure", + "required":["EndTime"], + "members":{ + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp representing the start of the time range to scan. Reserved for internal use.

", + "locationName":"startTime" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp representing the end of the time range to scan.

", + "locationName":"endTime" + } + }, + "documentation":"

Contains information about the time range within the continuous backup in Amazon Web Services Backup to scan for a point-in-time recovery resource.

" + }, "CountByCoverageStatus":{ "type":"map", "key":{"shape":"CoverageStatus"}, @@ -7906,7 +7923,8 @@ "EC2_INSTANCE", "EC2_RECOVERY_POINT", "S3_RECOVERY_POINT", - "S3_BUCKET" + "S3_BUCKET", + "S3_POINT_IN_TIME_RECOVERY" ] }, "MalwareProtectionScanStatus":{ @@ -9376,6 +9394,11 @@ "shape":"String", "documentation":"

The name of the Amazon Web Services Backup vault that contains the name of the recovery point to be scanned.

", "locationName":"backupVaultName" + }, + "ContinuousScanDetails":{ + "shape":"ContinuousScanDetails", + "documentation":"

Contains information about the time range within the continuous backup in Amazon Web Services Backup to scan.

", + "locationName":"continuousScanDetails" } }, "documentation":"

Contains information about the recovery point configuration for scanning backup data from Amazon Web Services Backup.

" @@ -10287,6 +10310,23 @@ }, "documentation":"

Contains information about the configuration used for the malware scan.

" }, + "ScanConfigurationContinuousScanDetails":{ + "type":"structure", + "required":["EndTime"], + "members":{ + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp representing the start of the time range that was scanned.

", + "locationName":"startTime" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp representing the end of the time range that was scanned.

", + "locationName":"endTime" + } + }, + "documentation":"

Contains information about the time range within the continuous backup in Amazon Web Services Backup that was scanned for a point-in-time recovery resource.

" + }, "ScanConfigurationRecoveryPoint":{ "type":"structure", "members":{ @@ -10294,6 +10334,11 @@ "shape":"NonEmptyString", "documentation":"

The name of the Amazon Web Services Backup vault that contains the recovery point for the scanned.

", "locationName":"backupVaultName" + }, + "ContinuousScanDetails":{ + "shape":"ScanConfigurationContinuousScanDetails", + "documentation":"

The time range within the continuous backup in Amazon Web Services Backup that was scanned for a point-in-time recovery resource.

", + "locationName":"continuousScanDetails" } }, "documentation":"

Contains information about the recovery point configuration used in the scan.

" diff --git a/awscli/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json b/awscli/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json index 85155fb7e5fe..b227a8a4be57 100644 --- a/awscli/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json +++ b/awscli/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json @@ -181,6 +181,10 @@ "shape":"TagKeyList", "documentation":"

These are keys defined in the effective policy that are on the resource with either incorrect case treatment or noncompliant values.

" }, + "MissingTagKeys":{ + "shape":"TagKeyList", + "documentation":"

These tag keys are defined as required in the report_required_tag_for block of the effective tag policy, but are missing from the resource.

" + }, "ComplianceStatus":{ "shape":"ComplianceStatus", "documentation":"

Whether a resource is compliant with the effective tag policy.

" From 7ddeba5ed016030455ef509df3ac77cafe0d4432 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 26 May 2026 18:22:51 +0000 Subject: [PATCH 36/73] Bump version to 2.34.54 --- .changes/2.34.54.json | 32 +++++++++++++++++++ .../next-release/api-change-backup-4671.json | 5 --- .../next-release/api-change-batch-29305.json | 5 --- .../api-change-budgets-77102.json | 5 --- .../api-change-datazone-1050.json | 5 --- .../api-change-guardduty-25770.json | 5 --- ...change-resourcegroupstaggingapi-14997.json | 5 --- CHANGELOG.rst | 11 +++++++ awscli/__init__.py | 2 +- configure | 14 ++++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 12 files changed, 53 insertions(+), 40 deletions(-) create mode 100644 .changes/2.34.54.json delete mode 100644 .changes/next-release/api-change-backup-4671.json delete mode 100644 .changes/next-release/api-change-batch-29305.json delete mode 100644 .changes/next-release/api-change-budgets-77102.json delete mode 100644 .changes/next-release/api-change-datazone-1050.json delete mode 100644 .changes/next-release/api-change-guardduty-25770.json delete mode 100644 .changes/next-release/api-change-resourcegroupstaggingapi-14997.json diff --git a/.changes/2.34.54.json b/.changes/2.34.54.json new file mode 100644 index 000000000000..34e1b93142fc --- /dev/null +++ b/.changes/2.34.54.json @@ -0,0 +1,32 @@ +[ + { + "category": "``guardduty``", + "description": "Add malware scan support for Continuous Backups, also known as Point-In-Time Recovery Points (PITR).", + "type": "api-change" + }, + { + "category": "``resourcegroupstaggingapi``", + "description": "The GetResources API now returns MissingTagKeys in ComplianceDetails, listing tag keys defined as required in the ReportRequiredTagBlock block of the effective tag policy that are absent from the resource.", + "type": "api-change" + }, + { + "category": "``backup``", + "description": "Launching S3 PITR malware scanning support for AWS Backup", + "type": "api-change" + }, + { + "category": "``batch``", + "description": "Increase the maximum value of jobExecutionTimeoutMinutes to support longer job timeouts during compute environment infrastructure updates.", + "type": "api-change" + }, + { + "category": "``budgets``", + "description": "AWS Budget Name Validation Documentation Updates.", + "type": "api-change" + }, + { + "category": "``datazone``", + "description": "Added resourceConfigurations and allowUserProvidedConfigurations fields to environment blueprint configuration APIs, enabling customers who migrated from V1 to V2 domains to update resource configurations (such as lineage schedules) programmatically via the SDK.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-backup-4671.json b/.changes/next-release/api-change-backup-4671.json deleted file mode 100644 index 48c66b017d4a..000000000000 --- a/.changes/next-release/api-change-backup-4671.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``backup``", - "description": "Launching S3 PITR malware scanning support for AWS Backup" -} diff --git a/.changes/next-release/api-change-batch-29305.json b/.changes/next-release/api-change-batch-29305.json deleted file mode 100644 index cc62ffa64c31..000000000000 --- a/.changes/next-release/api-change-batch-29305.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``batch``", - "description": "Increase the maximum value of jobExecutionTimeoutMinutes to support longer job timeouts during compute environment infrastructure updates." -} diff --git a/.changes/next-release/api-change-budgets-77102.json b/.changes/next-release/api-change-budgets-77102.json deleted file mode 100644 index 10de61bf0e1b..000000000000 --- a/.changes/next-release/api-change-budgets-77102.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``budgets``", - "description": "AWS Budget Name Validation Documentation Updates." -} diff --git a/.changes/next-release/api-change-datazone-1050.json b/.changes/next-release/api-change-datazone-1050.json deleted file mode 100644 index f023db6f72d7..000000000000 --- a/.changes/next-release/api-change-datazone-1050.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``datazone``", - "description": "Added resourceConfigurations and allowUserProvidedConfigurations fields to environment blueprint configuration APIs, enabling customers who migrated from V1 to V2 domains to update resource configurations (such as lineage schedules) programmatically via the SDK." -} diff --git a/.changes/next-release/api-change-guardduty-25770.json b/.changes/next-release/api-change-guardduty-25770.json deleted file mode 100644 index c7b71ee968ac..000000000000 --- a/.changes/next-release/api-change-guardduty-25770.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``guardduty``", - "description": "Add malware scan support for Continuous Backups, also known as Point-In-Time Recovery Points (PITR)." -} diff --git a/.changes/next-release/api-change-resourcegroupstaggingapi-14997.json b/.changes/next-release/api-change-resourcegroupstaggingapi-14997.json deleted file mode 100644 index bd27b5c42115..000000000000 --- a/.changes/next-release/api-change-resourcegroupstaggingapi-14997.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``resourcegroupstaggingapi``", - "description": "The GetResources API now returns MissingTagKeys in ComplianceDetails, listing tag keys defined as required in the ReportRequiredTagBlock block of the effective tag policy that are absent from the resource." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7a20ebd8edd4..454cac2f0e25 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,17 @@ CHANGELOG ========= +2.34.54 +======= + +* api-change:``guardduty``: Add malware scan support for Continuous Backups, also known as Point-In-Time Recovery Points (PITR). +* api-change:``resourcegroupstaggingapi``: The GetResources API now returns MissingTagKeys in ComplianceDetails, listing tag keys defined as required in the ReportRequiredTagBlock block of the effective tag policy that are absent from the resource. +* api-change:``backup``: Launching S3 PITR malware scanning support for AWS Backup +* api-change:``batch``: Increase the maximum value of jobExecutionTimeoutMinutes to support longer job timeouts during compute environment infrastructure updates. +* api-change:``budgets``: AWS Budget Name Validation Documentation Updates. +* api-change:``datazone``: Added resourceConfigurations and allowUserProvidedConfigurations fields to environment blueprint configuration APIs, enabling customers who migrated from V1 to V2 domains to update resource configurations (such as lineage schedules) programmatically via the SDK. + + 2.34.53 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 0851191463ab..dc5589bb68a4 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.53' +__version__ = '2.34.54' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 1833e940d8ef..f43b069bf7cc 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.53. +# Generated by GNU Autoconf 2.71 for awscli 2.34.54. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.53' -PACKAGE_STRING='awscli 2.34.53' +PACKAGE_VERSION='2.34.54' +PACKAGE_STRING='awscli 2.34.54' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.53 +awscli configure 2.34.54 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.53, which was +It was created by awscli $as_me 2.34.54, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.53, which was +This file was extended by awscli $as_me 2.34.54, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.53 +awscli config.status 2.34.54 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index d26f78299fdb..1f6d4f207c90 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.53]) +AC_INIT([awscli], [2.34.54]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 12a030d5e488..ed195a3a2544 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.53' +release = '2.34.54' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 9a0030d9f4c9a3f72eca02fd87f9d7929e30d774 Mon Sep 17 00:00:00 2001 From: Alex Shovlin Date: Wed, 27 May 2026 09:46:16 -0500 Subject: [PATCH 37/73] Add CODEOWNERS (#10351) --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000000..0f6874e52129 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @aws/sync-team-aws-cli-team From 2e576d37a9d4d384e41305b5cdc62aa7c6d0a9cb Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 27 May 2026 19:03:20 +0000 Subject: [PATCH 38/73] Update to latest models --- ...pi-change-bedrockdataautomation-99488.json | 5 + .../next-release/api-change-ecs-59679.json | 5 + .../api-change-elementalinference-99816.json | 5 + .../api-change-medialive-66687.json | 5 + .../api-change-opensearch-48708.json | 5 + .../api-change-organizations-3123.json | 5 + .../api-change-sagemaker-71737.json | 5 + .../2023-07-26/service-2.json | 17 +- .../data/ecs/2014-11-13/service-2.json | 32 +- .../2018-11-14/paginators-1.json | 6 + .../2018-11-14/service-2.json | 658 ++++++++++++++++-- .../data/medialive/2017-10-14/service-2.json | 68 ++ .../data/opensearch/2021-01-01/service-2.json | 2 +- .../organizations/2016-11-28/service-2.json | 18 +- .../data/sagemaker/2017-07-24/service-2.json | 89 ++- 15 files changed, 842 insertions(+), 83 deletions(-) create mode 100644 .changes/next-release/api-change-bedrockdataautomation-99488.json create mode 100644 .changes/next-release/api-change-ecs-59679.json create mode 100644 .changes/next-release/api-change-elementalinference-99816.json create mode 100644 .changes/next-release/api-change-medialive-66687.json create mode 100644 .changes/next-release/api-change-opensearch-48708.json create mode 100644 .changes/next-release/api-change-organizations-3123.json create mode 100644 .changes/next-release/api-change-sagemaker-71737.json diff --git a/.changes/next-release/api-change-bedrockdataautomation-99488.json b/.changes/next-release/api-change-bedrockdataautomation-99488.json new file mode 100644 index 000000000000..cb8ecdef50e6 --- /dev/null +++ b/.changes/next-release/api-change-bedrockdataautomation-99488.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-data-automation``", + "description": "Matcher Fallback extends the CustomOutputConfiguration for the Document modality in DataAutomationProjects, enabling a fallback blueprint when no match is found. A FALLBACK match status is returned, improving the matching experience and guaranteeing customers always receive CustomOutputResults." +} diff --git a/.changes/next-release/api-change-ecs-59679.json b/.changes/next-release/api-change-ecs-59679.json new file mode 100644 index 000000000000..948f96d091a4 --- /dev/null +++ b/.changes/next-release/api-change-ecs-59679.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ecs``", + "description": "Add support for Neuron device resource requirements for Amazon ECS" +} diff --git a/.changes/next-release/api-change-elementalinference-99816.json b/.changes/next-release/api-change-elementalinference-99816.json new file mode 100644 index 000000000000..910611b32c33 --- /dev/null +++ b/.changes/next-release/api-change-elementalinference-99816.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``elementalinference``", + "description": "Added support for smart subtitles in Elemental Inference, enabling automatic generation of subtitles for media content. Available in English, Spanish, French, German, Italian, and Portuguese." +} diff --git a/.changes/next-release/api-change-medialive-66687.json b/.changes/next-release/api-change-medialive-66687.json new file mode 100644 index 000000000000..d1d6eec76ce8 --- /dev/null +++ b/.changes/next-release/api-change-medialive-66687.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``medialive``", + "description": "AWS Elemental MediaLive now supports Smart Subtitles, a new caption source that uses AWS Elemental Inference to automatically generate WebVTT and TTML captions from source audio. Available in English, Spanish, French, German, Italian, and Portuguese." +} diff --git a/.changes/next-release/api-change-opensearch-48708.json b/.changes/next-release/api-change-opensearch-48708.json new file mode 100644 index 000000000000..e9ee17f457a8 --- /dev/null +++ b/.changes/next-release/api-change-opensearch-48708.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``opensearch``", + "description": "OpenSearch will now support multi-segment paths in JWKS URLs." +} diff --git a/.changes/next-release/api-change-organizations-3123.json b/.changes/next-release/api-change-organizations-3123.json new file mode 100644 index 000000000000..080db516dfbf --- /dev/null +++ b/.changes/next-release/api-change-organizations-3123.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``organizations``", + "description": "AWS Organizations now emits CloudTrail events (AccountJoinedOrganization, AccountDepartedOrganization) to the management account for membership changes, including join and departure method and timestamp." +} diff --git a/.changes/next-release/api-change-sagemaker-71737.json b/.changes/next-release/api-change-sagemaker-71737.json new file mode 100644 index 000000000000..762b6177ef7c --- /dev/null +++ b/.changes/next-release/api-change-sagemaker-71737.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemaker``", + "description": "Adds shared environment support for Restricted Instance Groups (RIGs) on SageMaker HyperPod, enabling cross-RIG workload scheduling and FSx sharing. This unlocks shared CPU-GPU environments needed for cost-efficient RL training (e.g., Nova Forge). Adds p6 instance support for recommendation jobs" +} diff --git a/awscli/botocore/data/bedrock-data-automation/2023-07-26/service-2.json b/awscli/botocore/data/bedrock-data-automation/2023-07-26/service-2.json index b15f5b17c18b..a0caac5860bb 100644 --- a/awscli/botocore/data/bedrock-data-automation/2023-07-26/service-2.json +++ b/awscli/botocore/data/bedrock-data-automation/2023-07-26/service-2.json @@ -1016,7 +1016,8 @@ "CustomOutputConfiguration":{ "type":"structure", "members":{ - "blueprints":{"shape":"BlueprintItems"} + "blueprints":{"shape":"BlueprintItems"}, + "document":{"shape":"DocumentCustomOutputConfiguration"} }, "documentation":"

Custom output configuration

" }, @@ -1430,6 +1431,13 @@ }, "documentation":"

Bounding Box Configuration of Document Extraction

" }, + "DocumentCustomOutputConfiguration":{ + "type":"structure", + "members":{ + "fallbackBlueprints":{"shape":"FallbackBlueprintItems"} + }, + "documentation":"

Custom Configuration of Document

" + }, "DocumentExtractionGranularity":{ "type":"structure", "members":{ @@ -1618,6 +1626,13 @@ }, "documentation":"

Event bridge configuration.

" }, + "FallbackBlueprintItems":{ + "type":"list", + "member":{"shape":"BlueprintItem"}, + "documentation":"

List of Fallback Blueprint Items

", + "max":1, + "min":0 + }, "GetBlueprintOptimizationStatusRequest":{ "type":"structure", "required":["invocationArn"], diff --git a/awscli/botocore/data/ecs/2014-11-13/service-2.json b/awscli/botocore/data/ecs/2014-11-13/service-2.json index 56f5f3053e16..4a1bcee18d4b 100644 --- a/awscli/botocore/data/ecs/2014-11-13/service-2.json +++ b/awscli/botocore/data/ecs/2014-11-13/service-2.json @@ -2328,6 +2328,10 @@ "gpuIds":{ "shape":"GpuIds", "documentation":"

The IDs of each GPU assigned to the container.

" + }, + "neuronDeviceIds":{ + "shape":"NeuronDeviceIds", + "documentation":"

The IDs of each Neuron device assigned to the container.

" } }, "documentation":"

A Docker container that's part of a task.

" @@ -2502,7 +2506,7 @@ }, "resourceRequirements":{ "shape":"ResourceRequirements", - "documentation":"

The type and amount of a resource to assign to a container. The only supported resource is a GPU.

" + "documentation":"

The type and amount of a resource to assign to a container. The supported resources are GPUs and Neuron devices.

" }, "firelensConfiguration":{ "shape":"FirelensConfiguration", @@ -2713,7 +2717,7 @@ }, "resourceRequirements":{ "shape":"ResourceRequirements", - "documentation":"

The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU.

" + "documentation":"

The type and amount of a resource to assign to a container, instead of the default value from the task definition. The supported resources are GPUs and Neuron devices.

" } }, "documentation":"

The overrides that are sent to a container. An empty container override can be passed in. An example of an empty container override is {\"containerOverrides\": [ ] }. If a non-empty container override is specified, the name parameter must be included.

You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the sensitive data. For more information, see Retrieve secrets through environment variables in the Amazon ECS Developer Guide.

" @@ -7794,6 +7798,10 @@ "none" ] }, + "NeuronDeviceIds":{ + "type":"list", + "member":{"shape":"String"} + }, "NoUpdateAvailableException":{ "type":"structure", "members":{ @@ -7887,18 +7895,21 @@ "members":{ "id":{ "shape":"String", - "documentation":"

The ID for the GPUs on the container instance. The available GPU IDs can also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json file.

" + "documentation":"

The ID for the GPU or Neuron device on the container instance. For GPUs, the available GPU IDs can also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json file. For Neuron devices, the ID corresponds to the device index (for example, 0 for /dev/neuron0).

" }, "type":{ "shape":"PlatformDeviceType", - "documentation":"

The type of device that's available on the container instance. The only supported value is GPU.

" + "documentation":"

The type of device that's available on the container instance. The supported values are GPU and NEURON_DEVICE.

" } }, - "documentation":"

The devices that are available on the container instance. The only supported device type is a GPU.

" + "documentation":"

The devices that are available on the container instance. The supported device types are GPUs and Neuron devices.

" }, "PlatformDeviceType":{ "type":"string", - "enum":["GPU"] + "enum":[ + "GPU", + "NEURON_DEVICE" + ] }, "PlatformDevices":{ "type":"list", @@ -8175,7 +8186,7 @@ }, "platformDevices":{ "shape":"PlatformDevices", - "documentation":"

The devices that are available on the container instance. The only supported device type is a GPU.

" + "documentation":"

The devices that are available on the container instance. The supported device types are GPUs and Neuron devices.

" }, "tags":{ "shape":"Tags", @@ -8441,14 +8452,14 @@ "members":{ "value":{ "shape":"String", - "documentation":"

The value for the specified resource type.

When the type is GPU, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on.

When the type is InferenceAccelerator, the value matches the deviceName for an InferenceAccelerator specified in a task definition.

" + "documentation":"

The value for the specified resource type.

When the type is GPU, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. You can also specify ALL to allocate all available GPUs on the instance to the container.

When the type is NeuronDevice, the value must be ALL. This allocates all available Neuron devices on the instance to the container. Only one container in a task can specify NeuronDevice resources. This resource type is only supported on Managed Instances.

When the type is InferenceAccelerator, the value matches the deviceName for an InferenceAccelerator specified in a task definition.

" }, "type":{ "shape":"ResourceType", "documentation":"

The type of resource to assign to a container.

" } }, - "documentation":"

The type and amount of a resource to assign to a container. The supported resource types are GPUs and Elastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS or Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide

" + "documentation":"

The type and amount of a resource to assign to a container. The supported resource types are GPUs, Neuron devices, and Elastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS or Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide

" }, "ResourceRequirements":{ "type":"list", @@ -8458,7 +8469,8 @@ "type":"string", "enum":[ "GPU", - "InferenceAccelerator" + "InferenceAccelerator", + "NeuronDevice" ] }, "Resources":{ diff --git a/awscli/botocore/data/elementalinference/2018-11-14/paginators-1.json b/awscli/botocore/data/elementalinference/2018-11-14/paginators-1.json index e1799661a3dd..ddd6b028a59c 100644 --- a/awscli/botocore/data/elementalinference/2018-11-14/paginators-1.json +++ b/awscli/botocore/data/elementalinference/2018-11-14/paginators-1.json @@ -5,6 +5,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "feeds" + }, + "ListDictionaries": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dictionaries" } } } diff --git a/awscli/botocore/data/elementalinference/2018-11-14/service-2.json b/awscli/botocore/data/elementalinference/2018-11-14/service-2.json index d9f1a03569f9..60352851748d 100644 --- a/awscli/botocore/data/elementalinference/2018-11-14/service-2.json +++ b/awscli/botocore/data/elementalinference/2018-11-14/service-2.json @@ -31,7 +31,27 @@ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Associates a resource with the feed. The resource provides the input that Elemental Inference needs needs in order to perform an Elemental Inference feature, such as cropping video. You always provide the resource by associating it with a feed. You can associate only one resource with each feed.

", + "documentation":"

Associates a resource with the feed. The resource provides the input that Elemental Inference needs in order to perform an Elemental Inference feature, such as cropping video. You always provide the resource by associating it with a feed. You can associate only one resource with each feed. With an association, a specific source media is claiming ownership of the feed.

AssociateFeed is a PATCH operation, which means that you can include only parameters that you want to change. Parameters that you don't include will not be affected by the operation.

Specifically:

  • You can add more outputs to the existing outputs. New outputs will be appended.

  • You can't modify an existing output (for example to change its name). Instead, use UpdateFeed.

  • You can't delete an existing output. Instead, use UpdateFeed.

Also note that you can't change the feed name with AssociateFeed. Instead, use UpdateFeed.

", + "idempotent":true + }, + "CreateDictionary":{ + "name":"CreateDictionary", + "http":{ + "method":"POST", + "requestUri":"/v1/dictionary", + "responseCode":202 + }, + "input":{"shape":"CreateDictionaryRequest"}, + "output":{"shape":"CreateDictionaryResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a custom dictionary for improving transcription accuracy. A dictionary contains custom words and phrases that the ASR engine might not recognize, such as brand names, technical terms, or proper nouns. You can reference a dictionary when configuring a smart subtitles output.

", "idempotent":true }, "CreateFeed":{ @@ -51,7 +71,27 @@ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a feed. The feed is the target for live streams being sent by the calling application. An example of a calling application is AWS Elemental MediaLive. After you create the feed, you can associate a resource with the feed.

", + "documentation":"

Creates a feed. The feed is the target for the live media stream that is being sent by the calling application. An example of a calling application is AWS Elemental MediaLive.

The key contents of the feed is an array of outputs. Each output represents an Elemental Inference feature. After you create the feed, you must associate a resource with the feed. At that point, you will have a useable feed: resource - feed - output or outputs.

", + "idempotent":true + }, + "DeleteDictionary":{ + "name":"DeleteDictionary", + "http":{ + "method":"DELETE", + "requestUri":"/v1/dictionary/{id}", + "responseCode":202 + }, + "input":{"shape":"DeleteDictionaryRequest"}, + "output":{"shape":"DeleteDictionaryResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes the specified dictionary. You cannot delete a dictionary that is referenced by a feed. You must first remove the dictionary reference from the feed's subtitling configuration.

", "idempotent":true }, "DeleteFeed":{ @@ -71,7 +111,7 @@ {"shape":"TooManyRequestException"}, {"shape":"ConflictException"} ], - "documentation":"

Deletes the specified feed. The feed can be deleted at any time.

", + "documentation":"

Deletes the specified feed. You can delete the feed at any time. Elemental Inference doesn't block you from deleting a feed when the calling application is calling PutMedia or GetMetadata on that feed, although both these calls will start to fail. For more information about managing inactive feeds, see the Elemental Inference User Guide.

", "idempotent":true }, "DisassociateFeed":{ @@ -91,9 +131,47 @@ {"shape":"TooManyRequestException"}, {"shape":"ConflictException"} ], - "documentation":"

Releases the resource (for example, an MediaLive channel) that is associated with this feed. The outputs in the feed become disabled.

", + "documentation":"

Releases the resource (the source media) that is associated with this feed. The outputs in the feed become DISABLED.

", "idempotent":true }, + "ExportDictionaryEntries":{ + "name":"ExportDictionaryEntries", + "http":{ + "method":"GET", + "requestUri":"/v1/dictionary/{id}/entries/export", + "responseCode":200 + }, + "input":{"shape":"ExportDictionaryEntriesRequest"}, + "output":{"shape":"ExportDictionaryEntriesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestException"} + ], + "documentation":"

Exports the entries from the specified dictionary.

", + "readonly":true + }, + "GetDictionary":{ + "name":"GetDictionary", + "http":{ + "method":"GET", + "requestUri":"/v1/dictionary/{id}", + "responseCode":200 + }, + "input":{"shape":"GetDictionaryRequest"}, + "output":{"shape":"GetDictionaryResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestException"} + ], + "documentation":"

Retrieves information about the specified dictionary.

", + "readonly":true + }, "GetFeed":{ "name":"GetFeed", "http":{ @@ -112,6 +190,24 @@ "documentation":"

Retrieves information about the specified feed.

", "readonly":true }, + "ListDictionaries":{ + "name":"ListDictionaries", + "http":{ + "method":"GET", + "requestUri":"/v1/dictionaries", + "responseCode":200 + }, + "input":{"shape":"ListDictionariesRequest"}, + "output":{"shape":"ListDictionariesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestException"} + ], + "documentation":"

Lists the dictionaries in your account.

", + "readonly":true + }, "ListFeeds":{ "name":"ListFeeds", "http":{ @@ -166,7 +262,7 @@ {"shape":"TooManyRequestException"}, {"shape":"ConflictException"} ], - "documentation":"

Associates the specified tags to the resource identified by the specified resourceArn in the current region. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

", + "documentation":"

Associates the specified tags to the resource identified by the specified resourceArn in the current region. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

", "idempotent":true }, "UntagResource":{ @@ -188,6 +284,25 @@ "documentation":"

Deletes specified tags from the specified resource in the current region.

", "idempotent":true }, + "UpdateDictionary":{ + "name":"UpdateDictionary", + "http":{ + "method":"PATCH", + "requestUri":"/v1/dictionary/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateDictionaryRequest"}, + "output":{"shape":"UpdateDictionaryResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates the specified dictionary.

" + }, "UpdateFeed":{ "name":"UpdateFeed", "http":{ @@ -206,7 +321,7 @@ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Updates the name and/or outputs in a feed.

", + "documentation":"

Updates the name and/or outputs in a feed.

UpdateFeed is a PUT operation, which means that the payload that you specify completely overwrites the existing payload.

This means that if you want to touch the array of outputs, you must pass in the full new list. So you must omit outputs you want to delete, and include outputs you want to add or modify.

If you want to patch the array of outputs to make selective additions, use AssociateFeed.

", "idempotent":true } }, @@ -224,6 +339,24 @@ }, "exception":true }, + "AspectRatio":{ + "type":"structure", + "required":[ + "width", + "height" + ], + "members":{ + "width":{ + "shape":"Integer", + "documentation":"

The width component of the aspect ratio (for example, 16 in a 16:9 ratio).

" + }, + "height":{ + "shape":"Integer", + "documentation":"

The height component of the aspect ratio (for example, 9 in a 16:9 ratio).

" + } + }, + "documentation":"

The width and height of the output video. Used in SubtitlingConfig to determine subtitle layout.

" + }, "AssociateFeedRequest":{ "type":"structure", "required":[ @@ -240,16 +373,16 @@ }, "associatedResourceName":{ "shape":"AssociatedResourceName", - "documentation":"

An identifier for the resource. If the resource is from an AWS service, this identifier must be the full ARN of that resource. Otherwise, the identifier is a name that you assign and that is appropriate for the application that owns the resource. This name must not resemble an ARN.

", + "documentation":"

An identifier for the resource. This name must not resemble an ARN.

The resource is the source media that the feed will process. The name you assign should help you to later identify the source media that belongs to the feed. In this way, you will know which source media to push to the feed (using PutMedia).

", "idempotencyToken":true }, "outputs":{ "shape":"CreateOutputList", - "documentation":"

The outputs to add to this feed. You must specify at least one output. You can later use the UpdateFeed action to change the list of outputs.

" + "documentation":"

An array of one or more outputs that you want to add to this feed now, to supplement any outputs that you specified when you created or updated the feed.

" }, "dryRun":{ "shape":"Boolean", - "documentation":"

Set to true if you want to do a dry run of the associate action.

" + "documentation":"

Set to true if you want to do a dry run of the associate action.

Elemental Inference will validate that the real request would succeed without actually making any changes. A dry run catches errors such as missing IAM permissions, quota limits exceeded, conflicting outputs, and so on. If the dry run fails, the action returns a 4xx error code. After you've fixed the errors, resubmit the request.

" } } }, @@ -262,11 +395,11 @@ "members":{ "arn":{ "shape":"FeedArn", - "documentation":"

The AWS ARN for this association.

" + "documentation":"

The ARN of the feed.

" }, "id":{ "shape":"FeedId", - "documentation":"

An ID for this response. It is unique in Elemental Inference for this AWS account.

" + "documentation":"

The ID of the feed.

" } } }, @@ -285,7 +418,7 @@ "members":{ "callbackMetadata":{ "shape":"ResourceDescription", - "documentation":"

The metadata that is the result of the clip request to Elemental Inference.

" + "documentation":"

A string that you want Elemental Inference to always include in the event clipping metadata for this output. The string might identify the sports event in the source media, for example.

" } }, "documentation":"

A type of OutputConfig, used when the output in a feed is for the clip feature.

" @@ -304,6 +437,71 @@ "exception":true, "retryable":{"throttling":false} }, + "CreateDictionaryRequest":{ + "type":"structure", + "required":[ + "name", + "language" + ], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

A user-friendly name for this dictionary.

" + }, + "language":{ + "shape":"DictionaryLanguage", + "documentation":"

The language of the dictionary entries. Specify the language using an ISO 639-2/T three-letter code. Supported values: eng, fra, ita, deu, spa, por.

" + }, + "entries":{ + "shape":"DictionaryEntriesPayload", + "documentation":"

The dictionary entries payload. Contains the custom words and phrases for the dictionary. Maximum size is 40,960 characters.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Optional tags to associate with the dictionary.

" + } + } + }, + "CreateDictionaryResponse":{ + "type":"structure", + "required":[ + "name", + "arn", + "id", + "language", + "status" + ], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The name that you specified in the request.

" + }, + "arn":{ + "shape":"DictionaryArn", + "documentation":"

The ARN of the dictionary.

" + }, + "id":{ + "shape":"DictionaryId", + "documentation":"

A unique ID that Elemental Inference assigns to the dictionary.

" + }, + "language":{ + "shape":"DictionaryLanguage", + "documentation":"

The language of the dictionary.

" + }, + "status":{ + "shape":"DictionaryStatus", + "documentation":"

The current status of the dictionary. After creation succeeds, the status will be AVAILABLE.

" + }, + "references":{ + "shape":"FeedReferences", + "documentation":"

A list of feed IDs that reference this dictionary.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Any tags that you included when you created the dictionary.

" + } + } + }, "CreateFeedRequest":{ "type":"structure", "required":[ @@ -313,15 +511,15 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

A name for this feed.

" + "documentation":"

A user-friendly name for this feed.

" }, "outputs":{ "shape":"CreateOutputList", - "documentation":"

An array of outputs for this feed. Each output represents a specific Elemental Inference feature. For example, an output might represent the crop feature.

" + "documentation":"

An array of outputs for this feed. Each output represents a specific Elemental Inference feature. For example, there is one output type for the smart crop feature. You must specify at least one output, but you can later add outputs using AssociateFeed, or add, modify, and delete outputs using UpdateFeed.

" }, "tags":{ "shape":"TagMap", - "documentation":"

If you want to include tags, add them now. You won't be able to add them later.

" + "documentation":"

Optional tags. You can also add tags later, using TagResource.

" } } }, @@ -342,7 +540,7 @@ }, "name":{ "shape":"ResourceName", - "documentation":"

The name that you specified.

" + "documentation":"

The name that you specified in the request.

" }, "id":{ "shape":"FeedId", @@ -350,19 +548,19 @@ }, "dataEndpoints":{ "shape":"StringList", - "documentation":"

A unique ARN that Elemental Inference assigns to the feed.

" + "documentation":"

An array of endpoints for the feed. Typically, there is only one endpoint. The feed receives source media at this endpoint (when the calling application calls PutMedia) and returns the resulting metadata to this endpoint (when the calling application calls GetMetadata).

" }, "outputs":{ "shape":"GetOutputList", - "documentation":"

Data endpoints that Elemental Inference assigns to the feed.

" + "documentation":"

Repeats the outputs that you specified in the request.

" }, "status":{ "shape":"FeedStatus", - "documentation":"

The current status of the feed. After creation of the feed has succeeded, the status will be AVAILABLE.

" + "documentation":"

The current status of the feed. After creation of the feed has succeeded, the status will be AVAILABLE.

" }, "association":{ "shape":"FeedAssociation", - "documentation":"

The association for this feed. When you create the feed, this property is empty. You must associate a resource with the feed using AssociateFeed.

" + "documentation":"

The association for this feed. When you create the feed, this property is empty. You must associate a resource with the feed using AssociateFeed or UpdateFeed.

" }, "tags":{ "shape":"TagMap", @@ -384,7 +582,7 @@ }, "outputConfig":{ "shape":"OutputConfig", - "documentation":"

A typed property for an output in a feed. It is used in the CreateFeed and AssociateFeed actions. It identifies the action for Elemental Inference to perform. It also provides a repository for the results of that action. For example, CroppingConfig output will contain the metadata for the crop feature.

" + "documentation":"

A typed property for an output in a feed. It identifies the action for Elemental Inference to perform. It also provides a repository for the results of that action. For example, CroppingConfig output will contain the metadata for the crop feature.

" }, "status":{ "shape":"OutputStatus", @@ -395,7 +593,7 @@ "documentation":"

A description for the output.

" } }, - "documentation":"

Contains configuration information about one output in a feed. It is used in the AssociateFeed and the CreateFeed actions.

" + "documentation":"

Contains configuration information about one output in a feed. It is used in the AssociateFeed and the CreateFeed actions.

" }, "CreateOutputList":{ "type":"list", @@ -406,6 +604,40 @@ "members":{}, "documentation":"

A type of OutputConfig, used when the output in a feed is for the crop feature.

" }, + "DeleteDictionaryRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary to delete.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteDictionaryResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "status" + ], + "members":{ + "arn":{ + "shape":"DictionaryArn", + "documentation":"

The ARN of the deleted dictionary.

" + }, + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the deleted dictionary.

" + }, + "status":{ + "shape":"DictionaryStatus", + "documentation":"

The status of the dictionary after deletion.

" + } + } + }, "DeleteFeedRequest":{ "type":"structure", "required":["id"], @@ -436,10 +668,80 @@ }, "status":{ "shape":"FeedStatus", - "documentation":"

The current status of the feed. When deletion of the feed has succeeded, the status will be DELETED.

" + "documentation":"

The current status of the feed. When deletion of the feed has succeeded, the status will be DELETED.

" } } }, + "DictionaryArn":{"type":"string"}, + "DictionaryEntriesPayload":{ + "type":"string", + "max":40960, + "min":0 + }, + "DictionaryId":{ + "type":"string", + "max":19, + "min":1, + "pattern":"[a-zA-Z0-9]+" + }, + "DictionaryLanguage":{ + "type":"string", + "enum":[ + "eng", + "fra", + "ita", + "deu", + "spa", + "por" + ] + }, + "DictionaryStatus":{ + "type":"string", + "enum":[ + "CREATING", + "AVAILABLE", + "REFERENCED", + "DELETING", + "DELETED" + ] + }, + "DictionarySummary":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "language", + "status" + ], + "members":{ + "arn":{ + "shape":"DictionaryArn", + "documentation":"

The ARN of the dictionary.

" + }, + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the dictionary.

" + }, + "language":{ + "shape":"DictionaryLanguage", + "documentation":"

The language of the dictionary.

" + }, + "status":{ + "shape":"DictionaryStatus", + "documentation":"

The status of the dictionary.

" + } + }, + "documentation":"

Contains summary information about a dictionary. Used in the ListDictionaries response.

" + }, + "DictionarySummaryList":{ + "type":"list", + "member":{"shape":"DictionarySummary"} + }, "DisassociateFeedRequest":{ "type":"structure", "required":[ @@ -455,12 +757,12 @@ }, "associatedResourceName":{ "shape":"AssociatedResourceName", - "documentation":"

The name of the resource currently associated with the feed'.

", + "documentation":"

The name of the resource currently associated with the feed.

", "idempotencyToken":true }, "dryRun":{ "shape":"Boolean", - "documentation":"

Set to true if you want to do a dry run of the disassociate action.

" + "documentation":"

Set to true if you want to do a dry run of the disassociate action.

Elemental Inference will validate that the real request would succeed without actually making any changes. A dry run catches errors such as missing IAM permissions. If the dry run fails, the action returns a 4xx error code.

" } } }, @@ -473,11 +775,32 @@ "members":{ "arn":{ "shape":"FeedArn", - "documentation":"

The ID of the feed where you deleted the associated resource.

" + "documentation":"

The ARN of the feed.

" }, "id":{ "shape":"FeedId", - "documentation":"

The ARN of the resource that you deleted.

" + "documentation":"

The ID of the feed.

" + } + } + }, + "ExportDictionaryEntriesRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary whose entries you want to export.

", + "location":"uri", + "locationName":"id" + } + } + }, + "ExportDictionaryEntriesResponse":{ + "type":"structure", + "members":{ + "entries":{ + "shape":"DictionaryEntriesPayload", + "documentation":"

The dictionary entries payload.

" } } }, @@ -491,12 +814,16 @@ "documentation":"

The name of the associated resource.

" } }, - "documentation":"

Contains information about the resource that is associated with a feed. It is used in the FeedSummary that is used in the response of a ListFeeds action.

" + "documentation":"

Contains information about the resource that is associated with a feed. It is used in the FeedSummary that is used in the response of a ListFeeds action.

" }, "FeedId":{ "type":"string", "pattern":"[a-z0-9]{19}" }, + "FeedReferences":{ + "type":"list", + "member":{"shape":"FeedId"} + }, "FeedStatus":{ "type":"string", "enum":[ @@ -539,12 +866,64 @@ "documentation":"

The status of the feed.

" } }, - "documentation":"

Contains configuration information about a feed. It is used in the ListFeeds action.

" + "documentation":"

Contains configuration information about a feed. It is used in the ListFeeds response.

" }, "FeedSummaryList":{ "type":"list", "member":{"shape":"FeedSummary"} }, + "GetDictionaryRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary to retrieve.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetDictionaryResponse":{ + "type":"structure", + "required":[ + "name", + "arn", + "id", + "language", + "status" + ], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the dictionary.

" + }, + "arn":{ + "shape":"DictionaryArn", + "documentation":"

The ARN of the dictionary.

" + }, + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary.

" + }, + "language":{ + "shape":"DictionaryLanguage", + "documentation":"

The language of the dictionary.

" + }, + "status":{ + "shape":"DictionaryStatus", + "documentation":"

The current status of the dictionary.

" + }, + "references":{ + "shape":"FeedReferences", + "documentation":"

A list of feed IDs that reference this dictionary.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags associated with the dictionary.

" + } + } + }, "GetFeedRequest":{ "type":"structure", "required":["id"], @@ -574,31 +953,31 @@ }, "name":{ "shape":"ResourceName", - "documentation":"

The name of the feed being queried.

" + "documentation":"

The name of the feed.

" }, "id":{ "shape":"FeedId", - "documentation":"

The ID of the feed being queried.

" + "documentation":"

The ID of the feed.

" }, "dataEndpoints":{ "shape":"StringList", - "documentation":"

The dataEndpoints of the feed being queried.

" + "documentation":"

The dataEndpoints of the feed.

" }, "outputs":{ "shape":"GetOutputList", - "documentation":"

An array of the outputs in the feed being queried.

" + "documentation":"

An array of the outputs in the feed.

" }, "status":{ "shape":"FeedStatus", - "documentation":"

The status of the feed being queried.

" + "documentation":"

The status of the feed.

" }, "association":{ "shape":"FeedAssociation", - "documentation":"

Information about the resource, if any, associated with the feed being queried.

" + "documentation":"

Information about the resource that is associated with the feed. It's possible that there is no associated resource. This is not an error.

" }, "tags":{ "shape":"TagMap", - "documentation":"

A list of the tags, if any, for the feed being queried.

" + "documentation":"

A list of the tags, if any, for the feed.

" } } }, @@ -612,11 +991,11 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The ARN of the output.

" + "documentation":"

The name of the output.

" }, "outputConfig":{ "shape":"OutputConfig", - "documentation":"

A typed property for an output in a feed. It is used in the GetFeed action. It identifies the action for Elemental Inference to perform. It also provides a repository for the results of that action. For example, CroppingConfig output will contain the metadata for the crop feature.

" + "documentation":"

A typed property for an output in a feed. It identifies the action for Elemental Inference to perform. It also provides a repository for the results of that action. For example, CroppingConfig output will contain the metadata for the crop feature.

" }, "status":{ "shape":"OutputStatus", @@ -628,39 +1007,80 @@ }, "fromAssociation":{ "shape":"Boolean", - "documentation":"

True means that the output was originally created in the feed by the AssociateFeed operation. False means it was created using CreateFeed or UpdateFeed. You will need this value if you use the UpdateFeed operation to modify the list of outputs in the feed.

" + "documentation":"

True means that the output was originally created in the feed using AssociateFeed. False means it was created using CreateFeed or UpdateFeed.

You will need this value if you use UpdateFeed to modify the list of outputs in the feed.

" } }, - "documentation":"

Contains configuration information about one output in a feed. It is used in the GetFeed action.

" + "documentation":"

Contains configuration information about one output in a feed. It is used in the GetFeed response.

" }, "GetOutputList":{ "type":"list", "member":{"shape":"GetOutput"} }, + "Integer":{ + "type":"integer", + "box":true + }, "InternalServerErrorException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, - "documentation":"

An internal server error occurred. This is a temporary condition and the request can be retried. If the problem persists, contact AWS Support.

", + "documentation":"

An internal server error occurred. This is a temporary condition and the request can be retried. If the problem persists, contact AWS Support.

", "error":{"httpStatusCode":500}, "exception":true, "fault":true, "retryable":{"throttling":false} }, + "ListDictionariesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListDictionariesRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return per API request. Valid range: 1 to 100.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token that identifies the next batch of results to return.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDictionariesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListDictionariesResponse":{ + "type":"structure", + "required":["dictionaries"], + "members":{ + "dictionaries":{ + "shape":"DictionarySummaryList", + "documentation":"

A list of DictionarySummary objects.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token to use to retrieve the next batch of results.

" + } + } + }, "ListFeedsRequest":{ "type":"structure", "members":{ "maxResults":{ "shape":"ListFeedsRequestMaxResultsInteger", - "documentation":"

The maximum number of results to return per API request.

For example, you submit a list request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.)

The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page.

Valid Range: Minimum value of 1. Maximum value of 1000.

", + "documentation":"

The maximum number of results to return per API request.

For example, you submit a list request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.)

The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page.

Valid Range: Minimum value of 1. Maximum value of 1000.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"String", - "documentation":"

The token that identifies the batch of results that you want to see.

For example, you submit a ListBridges request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListBridges request a second time and specify the NextToken value.

", + "documentation":"

The token that identifies the batch of results that you want to see.

For example, you submit a ListFeeds request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListFeeds request a second time and specify the NextToken value.

", "location":"querystring", "locationName":"nextToken" } @@ -678,11 +1098,11 @@ "members":{ "feeds":{ "shape":"FeedSummaryList", - "documentation":"

A list of feed summaries.

" + "documentation":"

A list of FeedSummary objects.

" }, "nextToken":{ "shape":"String", - "documentation":"

The token that identifies the batch of results that you want to see. For example, you submit a list request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the list request a second time and specify the NextToken value.

" + "documentation":"

The token that identifies the batch of results that you want to see. For example, you submit a list request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the list request a second time and specify the NextToken value.

" } } }, @@ -692,7 +1112,7 @@ "members":{ "resourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN of the resource whose tags you want to query.

", + "documentation":"

The ARN of the resource whose tags you want to query.

", "location":"uri", "locationName":"resourceArn" } @@ -717,9 +1137,13 @@ "clipping":{ "shape":"ClippingConfig", "documentation":"

The output config type that applies to the clipping feature.

" + }, + "subtitling":{ + "shape":"SubtitlingConfig", + "documentation":"

The output config type that applies to the smart subtitling feature.

" } }, - "documentation":"

Contains one typed output. It is used in the CreateOutput, GetOutput, and Update Output structures.

", + "documentation":"

Contains one typed output. It is used in the CreateOutput, GetOutput, and Update Output structures.

", "union":true }, "OutputStatus":{ @@ -729,7 +1153,18 @@ "DISABLED" ] }, - "ResourceArn":{"type":"string"}, + "ProfanityFilterMode":{ + "type":"string", + "enum":[ + "DISABLED", + "CENSOR", + "DROP" + ] + }, + "ResourceArn":{ + "type":"string", + "pattern":"arn:aws[a-z\\-]*:elemental-inference[a-z\\-]*:[a-z0-9\\-]+:[0-9]{12}:(feed|dictionary)/[a-zA-Z0-9]{1,19}" + }, "ResourceDescription":{ "type":"string", "max":1024, @@ -759,7 +1194,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

The request was rejected because it would exceed one or more service quotas for your account. Review your service quotas and either delete unused resources or request a quota increase.

", + "documentation":"

The request was rejected because it would exceed one or more service quotas for your account. Review your service quotas and either delete unused resources or request a quota increase.

", "error":{ "httpStatusCode":402, "senderFault":true @@ -771,6 +1206,29 @@ "type":"list", "member":{"shape":"String"} }, + "SubtitlingConfig":{ + "type":"structure", + "required":["language"], + "members":{ + "language":{ + "shape":"TranscriptionLanguage", + "documentation":"

The language of the audio in the source media. Elemental Inference uses this setting to optimize transcription accuracy. Specify the language using an ISO 639-2/T three-letter code, optionally with a region subtag. Supported values: eng, eng-au, eng-gb, eng-us, fra, ita, deu, spa, por.

" + }, + "aspectRatio":{ + "shape":"AspectRatio", + "documentation":"

The aspect ratio of the output video, specified as width and height integer values. Elemental Inference uses the aspect ratio to determine subtitle layout and line lengths.

" + }, + "dictionary":{ + "shape":"DictionaryId", + "documentation":"

The ID of a custom dictionary to improve transcription accuracy for domain-specific terminology. Use the CreateDictionary operation to create a dictionary.

" + }, + "profanityFilter":{ + "shape":"ProfanityFilterMode", + "documentation":"

Controls how profanity is handled in the generated subtitles. Valid values: DISABLED (no filtering, default), CENSOR (replace profanity with asterisks), DROP (remove profanity from the transcript).

" + } + }, + "documentation":"

A type of OutputConfig, used when the output in a feed is for the smart subtitling feature. smart subtitling uses automatic speech recognition (ASR) to generate live TTML subtitles from the audio in your source media.

" + }, "TagKey":{ "type":"string", "max":128, @@ -794,7 +1252,7 @@ "members":{ "resourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN of the resource where you want to add tags.

", + "documentation":"

The ARN of the resource where you want to add tags.

", "location":"uri", "locationName":"resourceArn" }, @@ -815,7 +1273,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

The request was denied due to request throttling. Too many requests have been made within a given time period. Reduce the frequency of requests and use exponential backoff when retrying.

", + "documentation":"

The request was denied due to request throttling. Too many requests have been made within a given time period. Reduce the frequency of requests and use exponential backoff when retrying.

", "error":{ "httpStatusCode":429, "senderFault":true @@ -823,6 +1281,20 @@ "exception":true, "retryable":{"throttling":false} }, + "TranscriptionLanguage":{ + "type":"string", + "enum":[ + "eng", + "eng-au", + "eng-gb", + "eng-us", + "fra", + "ita", + "deu", + "spa", + "por" + ] + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -844,6 +1316,70 @@ } } }, + "UpdateDictionaryRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary to update.

", + "location":"uri", + "locationName":"id" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

A new name for the dictionary. If not specified, the name is not changed.

" + }, + "language":{ + "shape":"DictionaryLanguage", + "documentation":"

A new language for the dictionary. If not specified, the language is not changed.

" + }, + "entries":{ + "shape":"DictionaryEntriesPayload", + "documentation":"

New dictionary entries. If not specified, the entries are not changed.

" + } + } + }, + "UpdateDictionaryResponse":{ + "type":"structure", + "required":[ + "name", + "arn", + "id", + "language", + "status" + ], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The updated or original name of the dictionary.

" + }, + "arn":{ + "shape":"DictionaryArn", + "documentation":"

The ARN of the dictionary.

" + }, + "id":{ + "shape":"DictionaryId", + "documentation":"

The ID of the dictionary.

" + }, + "language":{ + "shape":"DictionaryLanguage", + "documentation":"

The updated or original language of the dictionary.

" + }, + "status":{ + "shape":"DictionaryStatus", + "documentation":"

The current status of the dictionary.

" + }, + "references":{ + "shape":"FeedReferences", + "documentation":"

A list of feed IDs that reference this dictionary.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Any tags associated with the dictionary.

" + } + } + }, "UpdateFeedRequest":{ "type":"structure", "required":[ @@ -854,7 +1390,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

Required. You can specify the existing name (to leave it unchanged) or a new name.

" + "documentation":"

Required. You can specify the existing name (to leave it unchanged) or a new name.

" }, "id":{ "shape":"FeedId", @@ -897,19 +1433,19 @@ }, "outputs":{ "shape":"GetOutputList", - "documentation":"

The array of outputs in the feed. You might have left this array unchanged, or you might have changed it.

" + "documentation":"

The array of outputs in the feed. You might have left this array unchanged, or you might have changed it.

" }, "status":{ "shape":"FeedStatus", - "documentation":"

The status of the output.

" + "documentation":"

The status of the feed.

" }, "association":{ "shape":"FeedAssociation", - "documentation":"

True means that the output was originally created in the feed by the AssociateFeed operation. False means it was created using CreateFeed or UpdateFeed. You will need this value if you use the UpdateFeed operation to modify the list of outputs in the feed.

" + "documentation":"

Information about the resource that is associated with the feed, if any.

" }, "tags":{ "shape":"TagMap", - "documentation":"

The name of the resource currently associated with the feed, if any.

" + "documentation":"

The tags associated with the feed.

" } } }, @@ -923,11 +1459,11 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name start here

" + "documentation":"

The name of the output.

" }, "outputConfig":{ "shape":"OutputConfig", - "documentation":"

A typed property for an output in a feed. It is used in the UpdateFeed action. It identifies the action for Elemental Inference to perform. It also provides a repository for the results of that action. For example, CroppingConfig output will contain the metadata for the crop feature.

" + "documentation":"

A typed property for an output in a feed. It identifies the action for Elemental Inference to perform. It also provides a repository for the results of that action. For example, CroppingConfig output will contain the metadata for the crop feature.

" }, "status":{ "shape":"OutputStatus", @@ -939,10 +1475,10 @@ }, "fromAssociation":{ "shape":"Boolean", - "documentation":"

This property is set by the service when you add the output to the feed, and indicates how you added the output. True means that you used the AssociateFeed operation. False means that you used the CreateFeed or UpdateFeed operation. Use GetFeed to obtain the value. If the value is True, include this field here with a value of True. If the value is False, omit the field here.

" + "documentation":"

Elemental Inference originally sets this parameter to True if this output was created by AssociateFeed or to False if this output was created by CreateFeed or UpdateFeed.

You must not change this value. Therefore, use GetFeed to determine the current value. Then in the UpdateFeed request, if the current value is True, include this parameter with a value of True. If it's False, omit the parameter.

" } }, - "documentation":"

Contains configuration information about one output in a feed. It is used in the UpdateFeed action.

" + "documentation":"

Contains configuration information about one output in a feed. It is used in the UpdateFeed action.

" }, "UpdateOutputList":{ "type":"list", @@ -954,7 +1490,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

The input fails to satisfy the constraints specified by the service. Check the error message for details about which parameter or field is invalid and correct the request before retrying.

", + "documentation":"

The input fails to satisfy the constraints specified by the service. Check the error message for details about which parameter or field is invalid and correct the request before retrying.

", "error":{ "httpStatusCode":400, "senderFault":true diff --git a/awscli/botocore/data/medialive/2017-10-14/service-2.json b/awscli/botocore/data/medialive/2017-10-14/service-2.json index a1b837c00651..a8561aa6fa65 100644 --- a/awscli/botocore/data/medialive/2017-10-14/service-2.json +++ b/awscli/botocore/data/medialive/2017-10-14/service-2.json @@ -7319,6 +7319,10 @@ "TeletextSourceSettings": { "shape": "TeletextSourceSettings", "locationName": "teletextSourceSettings" + }, + "SmartSubtitleSourceSettings": { + "shape": "SmartSubtitleSourceSettings", + "locationName": "smartSubtitleSourceSettings" } }, "documentation": "Caption Selector Settings" @@ -30524,6 +30528,11 @@ "shape": "__string", "locationName": "feedArn", "documentation": "The ARN of the feed resource that is associated with this channel. The feed is a resource in the Elemental Inference service." + }, + "AudioFeedInputs": { + "shape": "__listOfAudioFeedInput", + "locationName": "audioFeedInputs", + "documentation": "A list of audio feed inputs that map audio selectors in the channel to feed inputs on the associated Elemental Inference feed." } }, "documentation": "Configures Elemental Inference features in a channel." @@ -30535,6 +30544,11 @@ "shape": "__string", "locationName": "feedArn", "documentation": "The ARN of the feed resource that is associated with this channel. The feed is a resource in the Elemental Inference service." + }, + "AudioFeedInputs": { + "shape": "__listOfAudioFeedInput", + "locationName": "audioFeedInputs", + "documentation": "A list of audio feed inputs that map audio selectors in the channel to feed inputs on the associated Elemental Inference feed." } }, "documentation": "Configures Elemental Inference features in a channel." @@ -30631,6 +30645,13 @@ }, "documentation": "Placeholder documentation for __listOfMediaConnectRouterOutputDestinationSettings" }, + "__listOfOutputLocationRef": { + "type": "list", + "member": { + "shape": "OutputLocationRef" + }, + "documentation": "Placeholder documentation for __listOfOutputLocationRef" + }, "MediaConnectRouterOutputConnection": { "type": "structure", "members": { @@ -30651,6 +30672,53 @@ "value": { "shape": "MediaConnectRouterOutputConnection" } + }, + "AudioFeedInput": { + "type": "structure", + "members": { + "AudioSelectorName": { + "shape": "__string", + "locationName": "audioSelectorName", + "documentation": "The name of the audio selector in the channel that will be sent to the Elemental Inference feed input." + }, + "FeedInput": { + "shape": "__string", + "locationName": "feedInput", + "documentation": "The name of the feed input on the Elemental Inference feed that will receive the audio from the specified audio selector." + } + }, + "documentation": "Maps an audio selector in the channel to a feed input on the associated Elemental Inference feed." + }, + "CaptionSynchronizationMode": { + "type": "string", + "documentation": "Controls how MediaLive synchronizes Elemental Inference generated subtitles with video output.\n\nvideo_aligned_captions - MediaLive delays video to ensure captions are synchronized with\n audio and video.\nno_video_delay - MediaLive does not delay video for caption alignment. Captions output\n timing is adjusted to align with video as captions become available.", + "enum": [ + "NO_VIDEO_DELAY", + "VIDEO_ALIGNED_CAPTIONS" + ] + }, + "SmartSubtitleSourceSettings": { + "type": "structure", + "members": { + "CaptionSynchronizationMode": { + "shape": "CaptionSynchronizationMode", + "locationName": "captionSynchronizationMode", + "documentation": "Controls whether MediaLive delays video to synchronize captions with audio and video output." + }, + "InferenceFeedOutput": { + "shape": "__string", + "locationName": "inferenceFeedOutput", + "documentation": "The name of the Elemental Inference feed output that supplies subtitle input into this caption selector." + } + }, + "documentation": "Smart Subtitle Source Settings" + }, + "__listOfAudioFeedInput": { + "type": "list", + "member": { + "shape": "AudioFeedInput" + }, + "documentation": "Placeholder documentation for __listOfAudioFeedInput" } }, "documentation": "API for AWS Elemental MediaLive" diff --git a/awscli/botocore/data/opensearch/2021-01-01/service-2.json b/awscli/botocore/data/opensearch/2021-01-01/service-2.json index 8c499283cfc5..79864ed46392 100644 --- a/awscli/botocore/data/opensearch/2021-01-01/service-2.json +++ b/awscli/botocore/data/opensearch/2021-01-01/service-2.json @@ -6191,7 +6191,7 @@ "type":"string", "max":2048, "min":0, - "pattern":"^$|^https://(?!(?:10|127|169\\.254|192\\.168|172\\.(?:1[6-9]|2[0-9]|3[01]))\\.)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\\.[a-zA-Z]{2,}(?::[0-9]{1,5})?(?:/[a-zA-Z0-9\\-._~%!$&'()*+,;=:']*)?$" + "pattern":"^$|^https://(?!(?:10|127|169\\.254|192\\.168|172\\.(?:1[6-9]|2[0-9]|3[01]))\\.)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\\.[a-zA-Z]{2,}(?::[0-9]{1,5})?(?:/[a-zA-Z0-9\\-._~%!$&'()*+,;=:'@]*(?:/[a-zA-Z0-9\\-._~%!$&'()*+,;=:'@]*)*)?(?:\\?[a-zA-Z0-9\\-._~%!$&'()*+,;=:'/@?]+)?$" }, "KeyStoreAccessOption":{ "type":"structure", diff --git a/awscli/botocore/data/organizations/2016-11-28/service-2.json b/awscli/botocore/data/organizations/2016-11-28/service-2.json index 77f2477aae37..a92e350f11f8 100644 --- a/awscli/botocore/data/organizations/2016-11-28/service-2.json +++ b/awscli/botocore/data/organizations/2016-11-28/service-2.json @@ -38,7 +38,7 @@ {"shape":"ConstraintViolationException"}, {"shape":"MasterCannotLeaveOrganizationException"} ], - "documentation":"

Accepts a handshake by sending an ACCEPTED response to the sender. You can view accepted handshakes in API responses for 30 days before they are deleted.

Only the management account can accept the following handshakes:

  • Enable all features final confirmation (APPROVE_ALL_FEATURES)

  • Billing transfer (TRANSFER_RESPONSIBILITY)

For more information, see Enabling all features and Responding to a billing transfer invitation in the Organizations User Guide.

Only a member account can accept the following handshakes:

  • Invitation to join (INVITE)

  • Approve all features request (ENABLE_ALL_FEATURES)

For more information, see Responding to invitations and Enabling all features in the Organizations User Guide.

" + "documentation":"

Accepts a handshake by sending an ACCEPTED response to the sender. You can view accepted handshakes in API responses for 30 days before they are deleted.

Only the management account can accept the following handshakes:

  • Enable all features final confirmation (APPROVE_ALL_FEATURES)

  • Billing transfer (TRANSFER_RESPONSIBILITY)

For more information, see Enabling all features and Responding to a billing transfer invitation in the Organizations User Guide.

Only a member account can accept the following handshakes:

  • Invitation to join (INVITE)

  • Approve all features request (ENABLE_ALL_FEATURES)

For more information, see Responding to invitations and Enabling all features in the Organizations User Guide.

When a handshake is accepted, Organizations logs membership events in CloudTrail, available only in the management account's event history. If the account was standalone and joined a new organization, an AccountJoinedOrganization event is logged with joinedMethod:Invited and joinedTime fields. If the account departed one organization and joined another, both an AccountDepartedOrganization event with departedMethod:Left and departedTime and an AccountJoinedOrganization event with joinedMethod:Invited and joinedTime are logged in their respective management accounts.

" }, "AttachPolicy":{ "name":"AttachPolicy", @@ -104,7 +104,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

Closes an Amazon Web Services member account within an organization. You can close an account when all features are enabled . You can't close the management account with this API. This is an asynchronous request that Amazon Web Services performs in the background. Because CloseAccount operates asynchronously, it can return a successful completion message even though account closure might still be in progress. You need to wait a few minutes before the account is fully closed. To check the status of the request, do one of the following:

  • Use the AccountId that you sent in the CloseAccount request to provide as a parameter to the DescribeAccount operation.

    While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close account request completes, the status will change to SUSPENDED.

  • Check the CloudTrail log for the CloseAccountResult event that gets published after the account closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

  • Resources remaining within the account after closing will be automatically deleted after 90 days. During this 90-day period, the resources won't be available unless you contact Amazon Web Services Support to reopen the account. After 90 days, you can't reopen an account. You might still receive a bill after account closure.

  • Within a rolling 30 day period you can close the higher of either 250 or 20% of the member accounts in your organization, up to a maximum of 1,000. This quota is not bound by a calendar month, but starts when you close an account. After you reach this limit, you can't close additional accounts. For more information, see Closing a member account in your organization and Quotas for Organizations in the Organizations User Guide.

  • To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the account is in SUSPENDED status.

  • If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US) account, the CloseAccount request will close both accounts. To learn important pre-closure details, see Closing an Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.

" + "documentation":"

Closes an Amazon Web Services member account within an organization. You can close an account when all features are enabled . You can't close the management account with this API. This is an asynchronous request that Amazon Web Services performs in the background. Because CloseAccount operates asynchronously, it can return a successful completion message even though account closure might still be in progress. You need to wait a few minutes before the account is fully closed. To check the status of the request, do one of the following:

  • Use the AccountId that you sent in the CloseAccount request to provide as a parameter to the DescribeAccount operation.

    While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close account request completes, the status will change to SUSPENDED.

  • Check the CloudTrail log for the CloseAccountResult event that gets published after the account closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

  • Resources remaining within the account after closing will be automatically deleted after 90 days. During this 90-day period, the resources won't be available unless you contact Amazon Web Services Support to reopen the account. After 90 days, you can't reopen an account. You might still receive a bill after account closure.

  • Within a rolling 30 day period you can close the higher of either 250 or 20% of the member accounts in your organization, up to a maximum of 1,000. This quota is not bound by a calendar month, but starts when you close an account. After you reach this limit, you can't close additional accounts. For more information, see Closing a member account in your organization and Quotas for Organizations in the Organizations User Guide.

  • To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the account is in SUSPENDED status.

  • If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US) account, the CloseAccount request will close both accounts. To learn important pre-closure details, see Closing an Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.

After the permanent termination of the account after the 90-day waiting period, Organizations logs a membership event in CloudTrail. The event is an AccountDepartedOrganization event with departedMethod:Cleaned and departedTime. This event is available only in the management account's event history.

" }, "CreateAccount":{ "name":"CreateAccount", @@ -125,7 +125,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

Creates an Amazon Web Services account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that Amazon Web Services performs in the background. Because CreateAccount operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following:

  • Use the Id value of the CreateAccountStatus response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation.

  • Check the CloudTrail log for the CreateAccountResult event. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

The user who calls the API to create an account must have the organizations:CreateAccount permission. If you enabled all features in the organization, Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and service-linked roles in the Organizations User Guide.

If the request includes tags, then the requester must have the organizations:TagResource permission.

Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the management account administrator permissions in the new member account. Principals in the management account can assume the role. Organizations clones the company name and address information for the new account from the organization's management account.

You can only call this operation from the management account.

For more information about creating accounts, see Creating a member account in your organization in the Organizations User Guide.

  • When you create an account in an organization using the Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method is not automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.

  • If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact Amazon Web Services Support.

  • It isn't recommended to use CreateAccount to create multiple temporary accounts, and using the CreateAccount API to close accounts is subject to a 30-day usage quota. For information on the requirements and process for closing an account, see Closing a member account in your organization in the Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see Granting access to your billing information and tools.

" + "documentation":"

Creates an Amazon Web Services account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that Amazon Web Services performs in the background. Because CreateAccount operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following:

  • Use the Id value of the CreateAccountStatus response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation.

  • Check the CloudTrail log for the CreateAccountResult event. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

Additionally, the AccountJoinedOrganization event is logged in CloudTrail and is available only in the management account's event history. This event includes joinedMethod:Created and joinedTime fields to provide context on how and when the account joined the organization.

The user who calls the API to create an account must have the organizations:CreateAccount permission. If you enabled all features in the organization, Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and service-linked roles in the Organizations User Guide.

If the request includes tags, then the requester must have the organizations:TagResource permission.

Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the management account administrator permissions in the new member account. Principals in the management account can assume the role. Organizations clones the company name and address information for the new account from the organization's management account.

You can only call this operation from the management account.

For more information about creating accounts, see Creating a member account in your organization in the Organizations User Guide.

  • When you create an account in an organization using the Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method is not automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.

  • If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact Amazon Web Services Support.

  • It isn't recommended to use CreateAccount to create multiple temporary accounts, and using the CreateAccount API to close accounts is subject to a 30-day usage quota. For information on the requirements and process for closing an account, see Closing a member account in your organization in the Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see Granting access to your billing information and tools.

" }, "CreateGovCloudAccount":{ "name":"CreateGovCloudAccount", @@ -146,7 +146,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

This action is available if all of the following are true:

  • You're authorized to create accounts in the Amazon Web Services GovCloud (US) Region. For more information on the Amazon Web Services GovCloud (US) Region, see the Amazon Web Services GovCloud User Guide.

  • You already have an account in the Amazon Web Services GovCloud (US) Region that is paired with a management account of an organization in the commercial Region.

  • You call this action from the management account of your organization in the commercial Region.

  • You have the organizations:CreateGovCloudAccount permission.

Organizations automatically creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and service-linked roles in the Organizations User Guide.

Amazon Web Services automatically enables CloudTrail for Amazon Web Services GovCloud (US) accounts, but you should also do the following:

  • Verify that CloudTrail is enabled to store logs.

  • Create an Amazon S3 bucket for CloudTrail log storage.

    For more information, see Verifying CloudTrail Is Enabled in the Amazon Web Services GovCloud User Guide.

If the request includes tags, then the requester must have the organizations:TagResource permission. The tags are attached to the commercial account associated with the GovCloud account, rather than the GovCloud account itself. To add tags to the GovCloud account, call the TagResource operation in the GovCloud Region after the new GovCloud account exists.

You call this action from the management account of your organization in the commercial Region to create a standalone Amazon Web Services account in the Amazon Web Services GovCloud (US) Region. After the account is created, the management account of an organization in the Amazon Web Services GovCloud (US) Region can invite it to that organization. For more information on inviting standalone accounts in the Amazon Web Services GovCloud (US) to join an organization, see Organizations in the Amazon Web Services GovCloud User Guide.

Calling CreateGovCloudAccount is an asynchronous request that Amazon Web Services performs in the background. Because CreateGovCloudAccount operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following:

When you call the CreateGovCloudAccount action, you create two accounts: a standalone account in the Amazon Web Services GovCloud (US) Region and an associated account in the commercial Region for billing and support purposes. The account in the commercial Region is automatically a member of the organization whose credentials made the request. Both accounts are associated with the same email address.

A role is created in the new account in the commercial Region that allows the management account in the organization in the commercial Region to assume it. An Amazon Web Services GovCloud (US) account is then created and associated with the commercial account that you just created. A role is also created in the new Amazon Web Services GovCloud (US) account that can be assumed by the Amazon Web Services GovCloud (US) account that is associated with the management account of the commercial organization. For more information and to view a diagram that explains how account access works, see Organizations in the Amazon Web Services GovCloud User Guide.

For more information about creating accounts, see Creating a member account in your organization in the Organizations User Guide.

  • When you create an account in an organization using the Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account is not automatically collected. This includes a payment method and signing the end user license agreement (EULA). If you must remove an account from your organization later, you can do so only after you provide the missing information. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.

  • If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact Amazon Web Services Support.

  • Using CreateGovCloudAccount to create multiple temporary accounts isn't recommended. You can only close an account from the Amazon Web Services Billing and Cost Management console, and you must be signed in as the root user. For information on the requirements and process for closing an account, see Closing a member account in your organization in the Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see Granting access to your billing information and tools.

" + "documentation":"

This action is available if all of the following are true:

  • You're authorized to create accounts in the Amazon Web Services GovCloud (US) Region. For more information on the Amazon Web Services GovCloud (US) Region, see the Amazon Web Services GovCloud User Guide.

  • You already have an account in the Amazon Web Services GovCloud (US) Region that is paired with a management account of an organization in the commercial Region.

  • You call this action from the management account of your organization in the commercial Region.

  • You have the organizations:CreateGovCloudAccount permission.

Organizations automatically creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and service-linked roles in the Organizations User Guide.

Amazon Web Services automatically enables CloudTrail for Amazon Web Services GovCloud (US) accounts, but you should also do the following:

  • Verify that CloudTrail is enabled to store logs.

  • Create an Amazon S3 bucket for CloudTrail log storage.

    For more information, see Verifying CloudTrail Is Enabled in the Amazon Web Services GovCloud User Guide.

If the request includes tags, then the requester must have the organizations:TagResource permission. The tags are attached to the commercial account associated with the GovCloud account, rather than the GovCloud account itself. To add tags to the GovCloud account, call the TagResource operation in the GovCloud Region after the new GovCloud account exists.

You call this action from the management account of your organization in the commercial Region to create a standalone Amazon Web Services account in the Amazon Web Services GovCloud (US) Region. After the account is created, the management account of an organization in the Amazon Web Services GovCloud (US) Region can invite it to that organization. For more information on inviting standalone accounts in the Amazon Web Services GovCloud (US) to join an organization, see Organizations in the Amazon Web Services GovCloud User Guide.

Calling CreateGovCloudAccount is an asynchronous request that Amazon Web Services performs in the background. Because CreateGovCloudAccount operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following:

Additionally, the AccountJoinedOrganization event is logged in CloudTrail and is available only in the management account's event history only for the linked commercial account. This event includes joinedMethod:Created and joinedTime fields to provide context on how and when the account joined the organization.

When you call the CreateGovCloudAccount action, you create two accounts: a standalone account in the Amazon Web Services GovCloud (US) Region and an associated account in the commercial Region for billing and support purposes. The account in the commercial Region is automatically a member of the organization whose credentials made the request. Both accounts are associated with the same email address.

A role is created in the new account in the commercial Region that allows the management account in the organization in the commercial Region to assume it. An Amazon Web Services GovCloud (US) account is then created and associated with the commercial account that you just created. A role is also created in the new Amazon Web Services GovCloud (US) account that can be assumed by the Amazon Web Services GovCloud (US) account that is associated with the management account of the commercial organization. For more information and to view a diagram that explains how account access works, see Organizations in the Amazon Web Services GovCloud User Guide.

For more information about creating accounts, see Creating a member account in your organization in the Organizations User Guide.

  • When you create an account in an organization using the Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account is not automatically collected. This includes a payment method and signing the end user license agreement (EULA). If you must remove an account from your organization later, you can do so only after you provide the missing information. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.

  • If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact Amazon Web Services Support.

  • Using CreateGovCloudAccount to create multiple temporary accounts isn't recommended. You can only close an account from the Amazon Web Services Billing and Cost Management console, and you must be signed in as the root user. For information on the requirements and process for closing an account, see Closing a member account in your organization in the Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see Granting access to your billing information and tools.

" }, "CreateOrganization":{ "name":"CreateOrganization", @@ -166,7 +166,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"AccessDeniedForDependencyException"} ], - "documentation":"

Creates an Amazon Web Services organization. The account whose user is calling the CreateOrganization operation automatically becomes the management account of the new organization.

This operation must be called using credentials from the account that is to become the new organization's management account. The principal must also have the relevant IAM permissions.

By default (or if you set the FeatureSet parameter to ALL), the new organization is created with all features enabled and service control policies automatically enabled in the root. If you instead choose to create the organization supporting only the consolidated billing features by setting the FeatureSet parameter to CONSOLIDATED_BILLING, no policy types are enabled by default and you can't use organization policies.

" + "documentation":"

Creates an Amazon Web Services organization. The account whose user is calling the CreateOrganization operation automatically becomes the management account of the new organization.

This operation must be called using credentials from the account that is to become the new organization's management account. The principal must also have the relevant IAM permissions.

By default (or if you set the FeatureSet parameter to ALL), the new organization is created with all features enabled and service control policies automatically enabled in the root. If you instead choose to create the organization supporting only the consolidated billing features by setting the FeatureSet parameter to CONSOLIDATED_BILLING, no policy types are enabled by default and you can't use organization policies.

The AccountJoinedOrganization event is logged in CloudTrail and is available only in the management account's event history. This event includes joinedMethod:Invited and joinedTime fields to provide context on how and when the account joined the organization.

" }, "CreateOrganizationalUnit":{ "name":"CreateOrganizationalUnit", @@ -248,7 +248,7 @@ {"shape":"ServiceException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Deletes the organization. You can delete an organization only by using credentials from the management account. The organization must be empty of member accounts.

" + "documentation":"

Deletes the organization. You can delete an organization only by using credentials from the management account. The organization must be empty of member accounts.

When an organization is deleted, Organizations logs a membership event in CloudTrail. The event is an AccountDepartedOrganization event with departedMethod:Left and departedTime. This event is available only in the management account's event history.

" }, "DeleteOrganizationalUnit":{ "name":"DeleteOrganizationalUnit", @@ -684,7 +684,7 @@ {"shape":"ServiceException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the management account, use RemoveAccountFromOrganization instead.

You can only call from operation from a member account.

  • The management account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do. This includes preventing them from successfully calling LeaveOrganization and leaving the organization.

  • You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For each account that you want to make standalone, you must perform the following steps. If any of the steps are already completed for this account, that step doesn't appear.

    • Choose a support plan

    • Provide and verify the required contact information

    • Provide a current payment method

    Amazon Web Services uses the payment method to charge for any billable (not free tier) Amazon Web Services activity that occurs while the account isn't attached to an organization. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • The account that you want to leave must not be a delegated administrator account for any Amazon Web Services service enabled for your organization. If the account is a delegated administrator, you must first change the delegated administrator account to another account that is remaining in the organization.

  • After the account leaves the organization, all tags that were attached to the account object in the organization are deleted. Amazon Web Services accounts outside of an organization do not support tags.

  • A newly created account has a waiting period before it can be removed from its organization. You must wait until at least four days after the account was created. Invited accounts aren't subject to this waiting period.

  • If you are using an organization principal to call LeaveOrganization across multiple accounts, you can only do this up to 5 accounts per second in a single organization.

" + "documentation":"

Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the management account, use RemoveAccountFromOrganization instead.

You can only call from operation from a member account.

When an account leaves an organization, Organizations logs a membership event in CloudTrail. The event is an AccountDepartedOrganization event with departedMethod:Left and departedTime. This event is available only in the management account's event history.

  • The management account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do. This includes preventing them from successfully calling LeaveOrganization and leaving the organization.

  • You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For each account that you want to make standalone, you must perform the following steps. If any of the steps are already completed for this account, that step doesn't appear.

    • Choose a support plan

    • Provide and verify the required contact information

    • Provide a current payment method

    Amazon Web Services uses the payment method to charge for any billable (not free tier) Amazon Web Services activity that occurs while the account isn't attached to an organization. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • The account that you want to leave must not be a delegated administrator account for any Amazon Web Services service enabled for your organization. If the account is a delegated administrator, you must first change the delegated administrator account to another account that is remaining in the organization.

  • After the account leaves the organization, all tags that were attached to the account object in the organization are deleted. Amazon Web Services accounts outside of an organization do not support tags.

  • A newly created account has a waiting period before it can be removed from its organization. You must wait until at least four days after the account was created. Invited accounts aren't subject to this waiting period.

  • If you are using an organization principal to call LeaveOrganization across multiple accounts, you can only do this up to 5 accounts per second in a single organization.

" }, "ListAWSServiceAccessForOrganization":{ "name":"ListAWSServiceAccessForOrganization", @@ -1138,7 +1138,7 @@ {"shape":"ServiceException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Removes the specified account from the organization.

The removed account becomes a standalone account that isn't a member of any organization. It's no longer subject to any policies and is responsible for its own bill payments. The organization's management account is no longer charged for any expenses accrued by the member account after it's removed from the organization.

You can only call this operation from the management account. Member accounts can remove themselves with LeaveOrganization instead.

  • You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • The account that you want to leave must not be a delegated administrator account for any Amazon Web Services service enabled for your organization. If the account is a delegated administrator, you must first change the delegated administrator account to another account that is remaining in the organization.

  • After the account leaves the organization, all tags that were attached to the account object in the organization are deleted. Amazon Web Services accounts outside of an organization do not support tags.

" + "documentation":"

Removes the specified account from the organization.

The removed account becomes a standalone account that isn't a member of any organization. It's no longer subject to any policies and is responsible for its own bill payments. The organization's management account is no longer charged for any expenses accrued by the member account after it's removed from the organization.

You can only call this operation from the management account. Member accounts can remove themselves with LeaveOrganization instead.

When an account is removed from an organization, Organizations logs a membership event in CloudTrail. The event is an AccountDepartedOrganization event with departedMethod:Removed and departedTime. This event is available only in the management account's event history.

  • You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

  • The account that you want to leave must not be a delegated administrator account for any Amazon Web Services service enabled for your organization. If the account is a delegated administrator, you must first change the delegated administrator account to another account that is remaining in the organization.

  • After the account leaves the organization, all tags that were attached to the account object in the organization are deleted. Amazon Web Services accounts outside of an organization do not support tags.

" }, "TagResource":{ "name":"TagResource", @@ -2642,7 +2642,7 @@ "Message":{"shape":"ExceptionMessage"}, "Reason":{"shape":"InvalidInputExceptionReason"} }, - "documentation":"

The requested operation failed because you provided invalid values for one or more of the request parameters. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation.

  • CALLER_REQUIRED_FIELD_MISSING: At least one of the required field is missing: Caller Account Id, Management Account Id or Organization Id.

  • DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.

  • END_DATE_NOT_END_OF_MONTH: You provided an invalid end date. The end date must be the end of the last day of the month (23.59.59.999).

  • END_DATE_TOO_EARLY: You provided an invalid end date. It is too early for the transfer to end.

  • IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.

  • INPUT_REQUIRED: You must include a value for all required parameters.

  • INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.

  • INVALID_END_DATE: The selected withdrawal date doesn't meet the terms of your partner agreement. Visit Amazon Web Services Partner Central to view your partner agreements or contact your Amazon Web Services Partner for help.

  • INVALID_ENUM: You specified an invalid value.

  • INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.

  • INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.

  • INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.

  • INVALID_PAGINATION_TOKEN: Get the value for the NextToken parameter from the response to a previous call of the operation.

  • INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a party.

  • INVALID_PATTERN: You provided a value that doesn't match the required pattern.

  • INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.

  • INVALID_PRINCIPAL: You specified an invalid principal element in the policy.

  • INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved prefix AWSServiceRoleFor.

  • INVALID_START_DATE: The start date doesn't meet the minimum requirements.

  • INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the organization.

  • INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

  • INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count against your tags per resource limit.

  • MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.

  • MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.

  • MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.

  • MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.

  • MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.

  • MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.

  • NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.

  • START_DATE_NOT_BEGINNING_OF_DAY: You provided an invalid start date. The start date must be the beginning of the day (00:00:00.000).

  • START_DATE_NOT_BEGINNING_OF_MONTH: You provided an invalid start date. The start date must be the first day of the month.

  • START_DATE_TOO_EARLY: You provided an invalid start date. The start date is too early.

  • START_DATE_TOO_LATE: You provided an invalid start date. The start date is too late.

  • TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.

  • UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.

  • UNSUPPORTED_ACTION_IN_RESPONSIBILITY_TRANSFER: You provided a value that is not supported by this operation.

", + "documentation":"

The requested operation failed because you provided invalid values for one or more of the request parameters. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation.

  • CALLER_REQUIRED_FIELD_MISSING: At least one of the required field is missing: Caller Account Id, Management Account Id or Organization Id.

  • DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.

  • END_DATE_NOT_END_OF_MONTH: You provided an invalid end date. The end date must be the end of the last day of the month (23.59.59.999).

  • END_DATE_TOO_EARLY: You provided an invalid end date. The end date is too early.

  • END_DATE_TOO_LATE: You provided an invalid end date. The end date is too late.

  • IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.

  • INPUT_REQUIRED: You must include a value for all required parameters.

  • INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.

  • INVALID_END_DATE: The selected withdrawal date doesn't meet the terms of your partner agreement. Visit Amazon Web Services Partner Central to view your partner agreements or contact your Amazon Web Services Partner for help.

  • INVALID_ENUM: You specified an invalid value.

  • INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.

  • INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.

  • INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.

  • INVALID_PAGINATION_TOKEN: Get the value for the NextToken parameter from the response to a previous call of the operation.

  • INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a party.

  • INVALID_PATTERN: You provided a value that doesn't match the required pattern.

  • INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.

  • INVALID_PRINCIPAL: You specified an invalid principal element in the policy.

  • INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved prefix AWSServiceRoleFor.

  • INVALID_START_DATE: The start date doesn't meet the minimum requirements.

  • INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the organization.

  • INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

  • INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count against your tags per resource limit.

  • MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.

  • MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.

  • MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.

  • MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.

  • MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.

  • MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.

  • NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.

  • START_DATE_NOT_BEGINNING_OF_DAY: You provided an invalid start date. The start date must be the beginning of the day (00:00:00.000).

  • START_DATE_NOT_BEGINNING_OF_MONTH: You provided an invalid start date. The start date must be the first day of the month.

  • START_DATE_TOO_EARLY: You provided an invalid start date. The start date is too early.

  • START_DATE_TOO_LATE: You provided an invalid start date. The start date is too late.

  • TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.

  • UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.

  • UNSUPPORTED_ACTION_IN_RESPONSIBILITY_TRANSFER: You provided a value that is not supported by this operation.

", "exception":true }, "InvalidInputExceptionReason":{ diff --git a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json index b8a68f37779e..1c6c94ffe30b 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json @@ -5339,7 +5339,8 @@ "ml.p5.4xlarge", "ml.p5.48xlarge", "ml.p5e.48xlarge", - "ml.p5en.48xlarge" + "ml.p5en.48xlarge", + "ml.p6-b200.48xlarge" ] }, "AIRecommendationInstanceTypeList":{ @@ -10069,6 +10070,14 @@ }, "documentation":"

A summary of an event in a HyperPod cluster.

" }, + "ClusterFSxLustreDeletionPolicy":{ + "type":"string", + "documentation":"

The deletion policy for the Amazon FSx for Lustre file system used in the shared environment of restricted instance groups (RIG).

", + "enum":[ + "DeleteIfNotUsed", + "Keep" + ] + }, "ClusterFsxLustreConfig":{ "type":"structure", "required":[ @@ -11181,6 +11190,28 @@ "max":100, "min":1 }, + "ClusterRestrictedInstanceGroupsConfig":{ + "type":"structure", + "required":["SharedEnvironmentConfig"], + "members":{ + "SharedEnvironmentConfig":{ + "shape":"ClusterSharedEnvironmentConfig", + "documentation":"

The shared environment configuration for the restricted instance groups (RIG).

" + } + }, + "documentation":"

The configuration for the restricted instance groups (RIG) in the SageMaker HyperPod cluster.

" + }, + "ClusterRestrictedInstanceGroupsConfigOutput":{ + "type":"structure", + "required":["SharedEnvironmentConfig"], + "members":{ + "SharedEnvironmentConfig":{ + "shape":"ClusterSharedEnvironmentConfigDetails", + "documentation":"

The shared environment configuration details for the restricted instance groups (RIG).

" + } + }, + "documentation":"

The output configuration for the restricted instance groups (RIG) in the SageMaker HyperPod cluster.

" + }, "ClusterSchedulerConfigArn":{ "type":"string", "max":256, @@ -11249,6 +11280,46 @@ "type":"string", "pattern":"[a-z0-9]([-a-z0-9]*[a-z0-9]){0,39}?" }, + "ClusterSharedEnvironmentConfig":{ + "type":"structure", + "required":[ + "FSxLustreDeletionPolicy", + "FSxLustreConfig" + ], + "members":{ + "FSxLustreDeletionPolicy":{ + "shape":"ClusterFSxLustreDeletionPolicy", + "documentation":"

The deletion policy for the Amazon FSx for Lustre file system in the shared environment.

" + }, + "FSxLustreConfig":{ + "shape":"FSxLustreConfig", + "documentation":"

Configuration settings for an Amazon FSx for Lustre file system in the shared environment.

" + } + }, + "documentation":"

The shared environment configuration for the restricted instance groups (RIG).

" + }, + "ClusterSharedEnvironmentConfigDetails":{ + "type":"structure", + "members":{ + "CurrentFSxLustreConfig":{ + "shape":"FSxLustreConfig", + "documentation":"

The current Amazon FSx for Lustre file system configuration in the shared environment.

" + }, + "DesiredFSxLustreConfig":{ + "shape":"FSxLustreConfig", + "documentation":"

The desired Amazon FSx for Lustre file system configuration in the shared environment.

" + }, + "CurrentFSxLustreDeletionPolicy":{ + "shape":"ClusterFSxLustreDeletionPolicy", + "documentation":"

The current deletion policy for the Amazon FSx for Lustre file system in the shared environment.

" + }, + "DesiredFSxLustreDeletionPolicy":{ + "shape":"ClusterFSxLustreDeletionPolicy", + "documentation":"

The desired deletion policy for the Amazon FSx for Lustre file system in the shared environment.

" + } + }, + "documentation":"

The shared environment configuration details for the restricted instance groups (RIG).

" + }, "ClusterSlurmConfig":{ "type":"structure", "required":["NodeType"], @@ -12696,6 +12767,10 @@ "shape":"ClusterRestrictedInstanceGroupSpecifications", "documentation":"

The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.

" }, + "RestrictedInstanceGroupsConfig":{ + "shape":"ClusterRestrictedInstanceGroupsConfig", + "documentation":"

The configuration for the restricted instance groups (RIG) in the SageMaker HyperPod cluster.

" + }, "VpcConfig":{ "shape":"VpcConfig", "documentation":"

Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see Give SageMaker access to resources in your Amazon VPC.

When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform:

  • Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications.

  • In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see Amazon EKS IPv6 Cluster Deployment.

Additional resources for IPv6 configuration:

" @@ -18265,6 +18340,10 @@ "shape":"ClusterRestrictedInstanceGroupDetailsList", "documentation":"

The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.

" }, + "RestrictedInstanceGroupsConfig":{ + "shape":"ClusterRestrictedInstanceGroupsConfigOutput", + "documentation":"

The configuration for the restricted instance groups (RIG) in the SageMaker HyperPod cluster.

" + }, "VpcConfig":{"shape":"VpcConfig"}, "Orchestrator":{ "shape":"ClusterOrchestrator", @@ -42213,6 +42292,10 @@ "shape":"AvailabilityZone", "documentation":"

The availability zone for the reserved capacity.

" }, + "AvailabilityZoneId":{ + "shape":"AvailabilityZoneId", + "documentation":"

The Availability Zone ID of the reserved capacity.

" + }, "DurationHours":{ "shape":"ReservedCapacityDurationHours", "documentation":"

The number of whole hours in the total duration for this reserved capacity.

" @@ -48000,6 +48083,10 @@ "shape":"ClusterRestrictedInstanceGroupSpecifications", "documentation":"

The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.

" }, + "RestrictedInstanceGroupsConfig":{ + "shape":"ClusterRestrictedInstanceGroupsConfig", + "documentation":"

The configuration for the restricted instance groups (RIG) in the SageMaker HyperPod cluster.

" + }, "TieredStorageConfig":{ "shape":"ClusterTieredStorageConfig", "documentation":"

Updates the configuration for managed tier checkpointing on the HyperPod cluster. For example, you can enable or disable the feature and modify the percentage of cluster memory allocated for checkpoint storage.

" From d3de7eaced8603e3738303a171a29700df4b2aac Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 27 May 2026 19:05:06 +0000 Subject: [PATCH 39/73] Bump version to 2.34.55 --- .changes/2.34.55.json | 37 +++++++++++++++++++ ...pi-change-bedrockdataautomation-99488.json | 5 --- .../next-release/api-change-ecs-59679.json | 5 --- .../api-change-elementalinference-99816.json | 5 --- .../api-change-medialive-66687.json | 5 --- .../api-change-opensearch-48708.json | 5 --- .../api-change-organizations-3123.json | 5 --- .../api-change-sagemaker-71737.json | 5 --- CHANGELOG.rst | 12 ++++++ awscli/__init__.py | 2 +- configure | 14 +++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 13 files changed, 59 insertions(+), 45 deletions(-) create mode 100644 .changes/2.34.55.json delete mode 100644 .changes/next-release/api-change-bedrockdataautomation-99488.json delete mode 100644 .changes/next-release/api-change-ecs-59679.json delete mode 100644 .changes/next-release/api-change-elementalinference-99816.json delete mode 100644 .changes/next-release/api-change-medialive-66687.json delete mode 100644 .changes/next-release/api-change-opensearch-48708.json delete mode 100644 .changes/next-release/api-change-organizations-3123.json delete mode 100644 .changes/next-release/api-change-sagemaker-71737.json diff --git a/.changes/2.34.55.json b/.changes/2.34.55.json new file mode 100644 index 000000000000..bc0bb8ba8148 --- /dev/null +++ b/.changes/2.34.55.json @@ -0,0 +1,37 @@ +[ + { + "category": "``medialive``", + "description": "AWS Elemental MediaLive now supports Smart Subtitles, a new caption source that uses AWS Elemental Inference to automatically generate WebVTT and TTML captions from source audio. Available in English, Spanish, French, German, Italian, and Portuguese.", + "type": "api-change" + }, + { + "category": "``elementalinference``", + "description": "Added support for smart subtitles in Elemental Inference, enabling automatic generation of subtitles for media content. Available in English, Spanish, French, German, Italian, and Portuguese.", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "Add support for Neuron device resource requirements for Amazon ECS", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "Adds shared environment support for Restricted Instance Groups (RIGs) on SageMaker HyperPod, enabling cross-RIG workload scheduling and FSx sharing. This unlocks shared CPU-GPU environments needed for cost-efficient RL training (e.g., Nova Forge). Adds p6 instance support for recommendation jobs", + "type": "api-change" + }, + { + "category": "``bedrock-data-automation``", + "description": "Matcher Fallback extends the CustomOutputConfiguration for the Document modality in DataAutomationProjects, enabling a fallback blueprint when no match is found. A FALLBACK match status is returned, improving the matching experience and guaranteeing customers always receive CustomOutputResults.", + "type": "api-change" + }, + { + "category": "``organizations``", + "description": "AWS Organizations now emits CloudTrail events (AccountJoinedOrganization, AccountDepartedOrganization) to the management account for membership changes, including join and departure method and timestamp.", + "type": "api-change" + }, + { + "category": "``opensearch``", + "description": "OpenSearch will now support multi-segment paths in JWKS URLs.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-bedrockdataautomation-99488.json b/.changes/next-release/api-change-bedrockdataautomation-99488.json deleted file mode 100644 index cb8ecdef50e6..000000000000 --- a/.changes/next-release/api-change-bedrockdataautomation-99488.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-data-automation``", - "description": "Matcher Fallback extends the CustomOutputConfiguration for the Document modality in DataAutomationProjects, enabling a fallback blueprint when no match is found. A FALLBACK match status is returned, improving the matching experience and guaranteeing customers always receive CustomOutputResults." -} diff --git a/.changes/next-release/api-change-ecs-59679.json b/.changes/next-release/api-change-ecs-59679.json deleted file mode 100644 index 948f96d091a4..000000000000 --- a/.changes/next-release/api-change-ecs-59679.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ecs``", - "description": "Add support for Neuron device resource requirements for Amazon ECS" -} diff --git a/.changes/next-release/api-change-elementalinference-99816.json b/.changes/next-release/api-change-elementalinference-99816.json deleted file mode 100644 index 910611b32c33..000000000000 --- a/.changes/next-release/api-change-elementalinference-99816.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``elementalinference``", - "description": "Added support for smart subtitles in Elemental Inference, enabling automatic generation of subtitles for media content. Available in English, Spanish, French, German, Italian, and Portuguese." -} diff --git a/.changes/next-release/api-change-medialive-66687.json b/.changes/next-release/api-change-medialive-66687.json deleted file mode 100644 index d1d6eec76ce8..000000000000 --- a/.changes/next-release/api-change-medialive-66687.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``medialive``", - "description": "AWS Elemental MediaLive now supports Smart Subtitles, a new caption source that uses AWS Elemental Inference to automatically generate WebVTT and TTML captions from source audio. Available in English, Spanish, French, German, Italian, and Portuguese." -} diff --git a/.changes/next-release/api-change-opensearch-48708.json b/.changes/next-release/api-change-opensearch-48708.json deleted file mode 100644 index e9ee17f457a8..000000000000 --- a/.changes/next-release/api-change-opensearch-48708.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``opensearch``", - "description": "OpenSearch will now support multi-segment paths in JWKS URLs." -} diff --git a/.changes/next-release/api-change-organizations-3123.json b/.changes/next-release/api-change-organizations-3123.json deleted file mode 100644 index 080db516dfbf..000000000000 --- a/.changes/next-release/api-change-organizations-3123.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``organizations``", - "description": "AWS Organizations now emits CloudTrail events (AccountJoinedOrganization, AccountDepartedOrganization) to the management account for membership changes, including join and departure method and timestamp." -} diff --git a/.changes/next-release/api-change-sagemaker-71737.json b/.changes/next-release/api-change-sagemaker-71737.json deleted file mode 100644 index 762b6177ef7c..000000000000 --- a/.changes/next-release/api-change-sagemaker-71737.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemaker``", - "description": "Adds shared environment support for Restricted Instance Groups (RIGs) on SageMaker HyperPod, enabling cross-RIG workload scheduling and FSx sharing. This unlocks shared CPU-GPU environments needed for cost-efficient RL training (e.g., Nova Forge). Adds p6 instance support for recommendation jobs" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 454cac2f0e25..92612f0f8823 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ CHANGELOG ========= +2.34.55 +======= + +* api-change:``medialive``: AWS Elemental MediaLive now supports Smart Subtitles, a new caption source that uses AWS Elemental Inference to automatically generate WebVTT and TTML captions from source audio. Available in English, Spanish, French, German, Italian, and Portuguese. +* api-change:``elementalinference``: Added support for smart subtitles in Elemental Inference, enabling automatic generation of subtitles for media content. Available in English, Spanish, French, German, Italian, and Portuguese. +* api-change:``ecs``: Add support for Neuron device resource requirements for Amazon ECS +* api-change:``sagemaker``: Adds shared environment support for Restricted Instance Groups (RIGs) on SageMaker HyperPod, enabling cross-RIG workload scheduling and FSx sharing. This unlocks shared CPU-GPU environments needed for cost-efficient RL training (e.g., Nova Forge). Adds p6 instance support for recommendation jobs +* api-change:``bedrock-data-automation``: Matcher Fallback extends the CustomOutputConfiguration for the Document modality in DataAutomationProjects, enabling a fallback blueprint when no match is found. A FALLBACK match status is returned, improving the matching experience and guaranteeing customers always receive CustomOutputResults. +* api-change:``organizations``: AWS Organizations now emits CloudTrail events (AccountJoinedOrganization, AccountDepartedOrganization) to the management account for membership changes, including join and departure method and timestamp. +* api-change:``opensearch``: OpenSearch will now support multi-segment paths in JWKS URLs. + + 2.34.54 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index dc5589bb68a4..108a89e34195 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.54' +__version__ = '2.34.55' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index f43b069bf7cc..fa9ceb5a5baf 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.54. +# Generated by GNU Autoconf 2.71 for awscli 2.34.55. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.54' -PACKAGE_STRING='awscli 2.34.54' +PACKAGE_VERSION='2.34.55' +PACKAGE_STRING='awscli 2.34.55' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.54 +awscli configure 2.34.55 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.54, which was +It was created by awscli $as_me 2.34.55, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.54, which was +This file was extended by awscli $as_me 2.34.55, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.54 +awscli config.status 2.34.55 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 1f6d4f207c90..a74f173e5a6a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.54]) +AC_INIT([awscli], [2.34.55]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index ed195a3a2544..7c43262642c5 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.54' +release = '2.34.55' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From b7b1514842757e109570212a0a1c5d1e84928ce4 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 28 May 2026 18:16:20 +0000 Subject: [PATCH 40/73] Merge customizations for resiliencehubv2 --- .../2026-02-17/paginators-1.sdk-extras.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.sdk-extras.json diff --git a/awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.sdk-extras.json b/awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.sdk-extras.json new file mode 100644 index 000000000000..286151895776 --- /dev/null +++ b/awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.sdk-extras.json @@ -0,0 +1,12 @@ +{ + "version": 1.0, + "merge": { + "pagination": { + "ListResources": { + "non_aggregate_keys": [ + "serviceFunctionId" + ] + } + } + } +} From ea871008e7abf3945c6e169c488a0e1d8bd2e744 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 28 May 2026 18:16:25 +0000 Subject: [PATCH 41/73] Update to latest models --- .../api-change-appstream-95654.json | 5 + .../api-change-bedrock-83183.json | 5 + .../api-change-bedrockagentcore-73017.json | 5 + ...-change-bedrockagentcorecontrol-66721.json | 5 + .../api-change-bedrockruntime-24190.json | 5 + .../api-change-controlcatalog-82837.json | 5 + .../api-change-customerprofiles-12418.json | 5 + .../api-change-deadline-59642.json | 5 + .../next-release/api-change-iot-90188.json | 5 + .../api-change-iotdata-73773.json | 5 + ...api-change-opensearchserverless-70748.json | 5 + .../next-release/api-change-pcs-28199.json | 5 + .../api-change-resiliencehubv2-11209.json | 5 + .../api-change-s3control-83140.json | 5 + .../data/appstream/2016-12-01/service-2.json | 27 +- .../2023-06-05/service-2.json | 162 +- .../2024-02-28/service-2.json | 217 +- .../bedrock-runtime/2023-09-30/service-2.json | 3 +- .../data/bedrock/2023-04-20/service-2.json | 183 +- .../controlcatalog/2018-05-10/service-2.json | 61 +- .../2020-08-15/service-2.json | 142 +- .../deadline/2023-10-12/paginators-1.json | 6 + .../data/deadline/2023-10-12/service-2.json | 376 +- .../iot-data/2015-05-28/paginators-1.json | 6 + .../data/iot-data/2015-05-28/service-2.json | 310 +- .../data/iot/2015-05-28/service-2.json | 111 +- .../2021-11-01/service-2.json | 140 +- .../data/pcs/2023-02-10/service-2.json | 30 + .../2026-02-17/endpoint-rule-set-1.json | 350 ++ .../2026-02-17/paginators-1.json | 94 + .../resiliencehubv2/2026-02-17/service-2.json | 5311 +++++++++++++++++ .../resiliencehubv2/2026-02-17/waiters-2.json | 88 + .../data/s3control/2018-08-20/service-2.json | 2 +- .../resiliencehubv2/endpoint-tests-1.json | 270 + 34 files changed, 7809 insertions(+), 150 deletions(-) create mode 100644 .changes/next-release/api-change-appstream-95654.json create mode 100644 .changes/next-release/api-change-bedrock-83183.json create mode 100644 .changes/next-release/api-change-bedrockagentcore-73017.json create mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-66721.json create mode 100644 .changes/next-release/api-change-bedrockruntime-24190.json create mode 100644 .changes/next-release/api-change-controlcatalog-82837.json create mode 100644 .changes/next-release/api-change-customerprofiles-12418.json create mode 100644 .changes/next-release/api-change-deadline-59642.json create mode 100644 .changes/next-release/api-change-iot-90188.json create mode 100644 .changes/next-release/api-change-iotdata-73773.json create mode 100644 .changes/next-release/api-change-opensearchserverless-70748.json create mode 100644 .changes/next-release/api-change-pcs-28199.json create mode 100644 .changes/next-release/api-change-resiliencehubv2-11209.json create mode 100644 .changes/next-release/api-change-s3control-83140.json create mode 100644 awscli/botocore/data/resiliencehubv2/2026-02-17/endpoint-rule-set-1.json create mode 100644 awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.json create mode 100644 awscli/botocore/data/resiliencehubv2/2026-02-17/service-2.json create mode 100644 awscli/botocore/data/resiliencehubv2/2026-02-17/waiters-2.json create mode 100644 tests/functional/botocore/endpoint-rules/resiliencehubv2/endpoint-tests-1.json diff --git a/.changes/next-release/api-change-appstream-95654.json b/.changes/next-release/api-change-appstream-95654.json new file mode 100644 index 000000000000..108ec2fd36af --- /dev/null +++ b/.changes/next-release/api-change-appstream-95654.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``appstream``", + "description": "Amazon WorkSpaces Applications now supports BYOL (Bring Your Own License). This enables customers to import their own WorkSpaces images and use them in WorkSpaces Applications." +} diff --git a/.changes/next-release/api-change-bedrock-83183.json b/.changes/next-release/api-change-bedrock-83183.json new file mode 100644 index 000000000000..9ff7258a3bb1 --- /dev/null +++ b/.changes/next-release/api-change-bedrock-83183.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock``", + "description": "Add support for ModelPackageArn in Bedrock's CreateCustomModel API" +} diff --git a/.changes/next-release/api-change-bedrockagentcore-73017.json b/.changes/next-release/api-change-bedrockagentcore-73017.json new file mode 100644 index 000000000000..922dec8c374c --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcore-73017.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore``", + "description": "Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId and runtimeClientError to InvokeHarness." +} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-66721.json b/.changes/next-release/api-change-bedrockagentcorecontrol-66721.json new file mode 100644 index 000000000000..ca3543150f38 --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcorecontrol-66721.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore-control``", + "description": "Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId parameter to InvokeHarness for end-user identification." +} diff --git a/.changes/next-release/api-change-bedrockruntime-24190.json b/.changes/next-release/api-change-bedrockruntime-24190.json new file mode 100644 index 000000000000..78c09e1b4a45 --- /dev/null +++ b/.changes/next-release/api-change-bedrockruntime-24190.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-runtime``", + "description": "Support system role in message" +} diff --git a/.changes/next-release/api-change-controlcatalog-82837.json b/.changes/next-release/api-change-controlcatalog-82837.json new file mode 100644 index 000000000000..b72957d91f1f --- /dev/null +++ b/.changes/next-release/api-change-controlcatalog-82837.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``controlcatalog``", + "description": "AWS Control Catalog - Added GovernedProviders response field and inclusion filter to GetControl and ListControls APIs to identify and filter by cloud provider. Added ParameterRequirementSummary response field indicating parameter requirements." +} diff --git a/.changes/next-release/api-change-customerprofiles-12418.json b/.changes/next-release/api-change-customerprofiles-12418.json new file mode 100644 index 000000000000..0d0662931c78 --- /dev/null +++ b/.changes/next-release/api-change-customerprofiles-12418.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``customer-profiles``", + "description": "BatchPutProfileObject API adds multiple profile objects to a domain of a given ObjectType in a single API call." +} diff --git a/.changes/next-release/api-change-deadline-59642.json b/.changes/next-release/api-change-deadline-59642.json new file mode 100644 index 000000000000..9c50c462a133 --- /dev/null +++ b/.changes/next-release/api-change-deadline-59642.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``deadline``", + "description": "Added support for persistent storage on Service-Managed Fleets, allowing customers to configure persistent storage that preserves data across worker sessions which reduces job startup times for workloads with large software installations or asset caches." +} diff --git a/.changes/next-release/api-change-iot-90188.json b/.changes/next-release/api-change-iot-90188.json new file mode 100644 index 000000000000..c7d6c1af9a24 --- /dev/null +++ b/.changes/next-release/api-change-iot-90188.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``iot``", + "description": "Adds new connectivity-related fields to Fleet Indexing API requests and responses." +} diff --git a/.changes/next-release/api-change-iotdata-73773.json b/.changes/next-release/api-change-iotdata-73773.json new file mode 100644 index 000000000000..d9fe31ef6f4b --- /dev/null +++ b/.changes/next-release/api-change-iotdata-73773.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``iot-data``", + "description": "Adding GetConnection, ListSubscriptions, and SendDirectMessage APIs to IoT Data Plane" +} diff --git a/.changes/next-release/api-change-opensearchserverless-70748.json b/.changes/next-release/api-change-opensearchserverless-70748.json new file mode 100644 index 000000000000..decd174a72d9 --- /dev/null +++ b/.changes/next-release/api-change-opensearchserverless-70748.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``opensearchserverless``", + "description": "Adds support for deletion protection on collections, ability to create NEXTGEN collection groups and autoscaling visibility for NEXTGEN collection groups" +} diff --git a/.changes/next-release/api-change-pcs-28199.json b/.changes/next-release/api-change-pcs-28199.json new file mode 100644 index 000000000000..79e50955e538 --- /dev/null +++ b/.changes/next-release/api-change-pcs-28199.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``pcs``", + "description": "This release adds support for configuring scaleDownIdleTimeInSeconds at the compute node group level, allowing customers to set different idle timeouts per node group. Previously this setting was only available at the cluster level." +} diff --git a/.changes/next-release/api-change-resiliencehubv2-11209.json b/.changes/next-release/api-change-resiliencehubv2-11209.json new file mode 100644 index 000000000000..7186d9e2ed60 --- /dev/null +++ b/.changes/next-release/api-change-resiliencehubv2-11209.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``resiliencehubv2``", + "description": "This is the initial SDK release for the next generation of Resilience Hub." +} diff --git a/.changes/next-release/api-change-s3control-83140.json b/.changes/next-release/api-change-s3control-83140.json new file mode 100644 index 000000000000..b7cb713571f7 --- /dev/null +++ b/.changes/next-release/api-change-s3control-83140.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``s3control``", + "description": "Update the minimum value of MinStorageBytesPercentage in StorageLensPrefixLevel.SelectionCriteria from 0.1 to 1, aligning the model with the documented contract." +} diff --git a/awscli/botocore/data/appstream/2016-12-01/service-2.json b/awscli/botocore/data/appstream/2016-12-01/service-2.json index 3924f8913aa2..828419c3ccf1 100644 --- a/awscli/botocore/data/appstream/2016-12-01/service-2.json +++ b/awscli/botocore/data/appstream/2016-12-01/service-2.json @@ -345,7 +345,8 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ResourceNotFoundException"}, {"shape":"IncompatibleImageException"}, - {"shape":"DryRunOperationException"} + {"shape":"DryRunOperationException"}, + {"shape":"InvalidParameterCombinationException"} ], "documentation":"

Creates a custom WorkSpaces Applications image by importing an EC2 AMI. This allows you to use your own customized AMI to create WorkSpaces Applications images that support additional instance types beyond the standard stream.* instances.

" }, @@ -2894,11 +2895,7 @@ }, "CreateImportedImageRequest":{ "type":"structure", - "required":[ - "Name", - "SourceAmiId", - "IamRoleArn" - ], + "required":["Name"], "members":{ "Name":{ "shape":"Name", @@ -2906,7 +2903,11 @@ }, "SourceAmiId":{ "shape":"PhotonAmiId", - "documentation":"

The ID of the EC2 AMI to import. The AMI must meet specific requirements including Windows Server 2022 Full Base, UEFI boot mode, TPM 2.0 support, and proper drivers.

" + "documentation":"

The ID of the EC2 AMI to import.

" + }, + "WorkspaceImageId":{ + "shape":"WorkspaceImageId", + "documentation":"

The ID of the Workspaces Image to import.

" }, "IamRoleArn":{ "shape":"Arn", @@ -4475,7 +4476,8 @@ "enum":[ "EXPORTING", "COMPLETED", - "FAILED" + "FAILED", + "TIMED_OUT" ] }, "ExportImageTasks":{ @@ -5067,7 +5069,8 @@ "documentation":"The image type is the type of AppStream image resource.", "enum":[ "CUSTOM", - "NATIVE" + "NATIVE", + "BYOL" ] }, "IncompatibleImageException":{ @@ -6901,6 +6904,12 @@ } }, "documentation":"

Describes VPC configuration information for fleets and image builders.

" + }, + "WorkspaceImageId":{ + "type":"string", + "max":67, + "min":12, + "pattern":"^wsi-[0-9a-z]{8,63}$" } }, "documentation":"Amazon WorkSpaces Applications

This is the Amazon WorkSpaces Applications API Reference. This documentation provides descriptions and syntax for each of the actions and data types in WorkSpaces Applications. WorkSpaces Applications is a fully managed, secure application streaming service that lets you stream desktop applications to users without rewriting applications. WorkSpaces Applications manages the AWS resources that are required to host and run your applications, scales automatically, and provides access to your users on demand.

You can call the WorkSpaces Applications API operations by using an interface VPC endpoint (interface endpoint). For more information, see Access WorkSpaces Applications API Operations and CLI Commands Through an Interface VPC Endpoint in the Amazon WorkSpaces Applications Administration Guide.

To learn more about WorkSpaces Applications, see the following resources:

" diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json index 4654727554dc..7c9f15e9e280 100644 --- a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json @@ -4354,6 +4354,10 @@ "description":{ "shape":"ConfigurationBundleDescription", "documentation":"

The description of the configuration bundle.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the configuration bundle was created.

" } }, "documentation":"

Summary information about a configuration bundle.

" @@ -11244,7 +11248,7 @@ "type":"structure", "members":{ "browserArn":{ - "shape":"BrowserArn", + "shape":"HarnessBrowserArn", "documentation":"

If not populated, the built-in Browser ARN is used.

" } }, @@ -11254,7 +11258,7 @@ "type":"structure", "members":{ "codeInterpreterArn":{ - "shape":"CodeInterpreterArn", + "shape":"HarnessCodeInterpreterArn", "documentation":"

If not populated, the built-in Code Interpreter ARN is used.

" } }, @@ -11378,6 +11382,14 @@ "type":"string", "pattern":"arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}" }, + "HarnessBedrockApiFormat":{ + "type":"string", + "enum":[ + "converse_stream", + "responses", + "chat_completions" + ] + }, "HarnessBedrockModelConfig":{ "type":"structure", "required":["modelId"], @@ -11397,10 +11409,28 @@ "topP":{ "shape":"TopP", "documentation":"

The topP set when calling the model.

" + }, + "apiFormat":{ + "shape":"HarnessBedrockApiFormat", + "documentation":"

The API format to use when calling the Bedrock provider.

" + }, + "additionalParams":{ + "shape":"Document", + "documentation":"

Provider-specific parameters passed through to the model provider unchanged.

" } }, "documentation":"

Configuration for an Amazon Bedrock model provider.

" }, + "HarnessBrowserArn":{ + "type":"string", + "documentation":"

Browser ARN for Harness tool configuration. Accepts both managed (aws.browser.v1) and custom browser ARNs.

", + "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})" + }, + "HarnessCodeInterpreterArn":{ + "type":"string", + "documentation":"

Code Interpreter ARN for Harness tool configuration. Accepts both managed (aws.codeinterpreter.v1) and custom code interpreter ARNs.

", + "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})" + }, "HarnessEnvironmentArtifact":{ "type":"structure", "members":{ @@ -11442,7 +11472,10 @@ "shape":"Unit", "documentation":"

No authentication.

" }, - "oauth":{"shape":"OAuthCredentialProvider"} + "oauth":{ + "shape":"OAuthCredentialProvider", + "documentation":"

Use OAuth credentials for outbound authentication to the gateway.

" + } }, "documentation":"

Authentication method for calling a Gateway.

", "union":true @@ -11509,6 +11542,47 @@ "min":1, "sensitive":true }, + "HarnessLiteLlmApiBase":{ + "type":"string", + "max":16383, + "min":1, + "sensitive":true + }, + "HarnessLiteLlmModelConfig":{ + "type":"structure", + "required":["modelId"], + "members":{ + "modelId":{ + "shape":"ModelId", + "documentation":"

The LiteLLM model identifier (e.g., \"anthropic/claude-3-sonnet\").

" + }, + "apiKeyArn":{ + "shape":"ApiKeyArn", + "documentation":"

The ARN of the API key in AgentCore Identity for authenticating with the model provider.

" + }, + "apiBase":{ + "shape":"HarnessLiteLlmApiBase", + "documentation":"

The base URL for the model provider's API endpoint.

" + }, + "maxTokens":{ + "shape":"MaxTokens", + "documentation":"

The maximum number of tokens to allow in the generated response per iteration.

" + }, + "temperature":{ + "shape":"Temperature", + "documentation":"

The temperature to set when calling the model.

" + }, + "topP":{ + "shape":"TopP", + "documentation":"

The topP set when calling the model.

" + }, + "additionalParams":{ + "shape":"Document", + "documentation":"

Provider-specific parameters passed through to the model provider unchanged.

" + } + }, + "documentation":"

Configuration for a LiteLLM model provider, enabling connection to third-party model providers.

" + }, "HarnessMemoryConfiguration":{ "type":"structure", "members":{ @@ -11534,6 +11608,10 @@ "geminiModelConfig":{ "shape":"HarnessGeminiModelConfig", "documentation":"

Configuration for a Google Gemini model.

" + }, + "liteLlmModelConfig":{ + "shape":"HarnessLiteLlmModelConfig", + "documentation":"

The LiteLLM model configuration for connecting to third-party model providers.

" } }, "documentation":"

Specification of which model to use.

", @@ -11543,6 +11621,13 @@ "type":"string", "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,39}" }, + "HarnessOpenAiApiFormat":{ + "type":"string", + "enum":[ + "chat_completions", + "responses" + ] + }, "HarnessOpenAiModelConfig":{ "type":"structure", "required":[ @@ -11569,6 +11654,14 @@ "topP":{ "shape":"TopP", "documentation":"

The topP set when calling the model.

" + }, + "apiFormat":{ + "shape":"HarnessOpenAiApiFormat", + "documentation":"

The API format to use when calling the OpenAI provider.

" + }, + "additionalParams":{ + "shape":"Document", + "documentation":"

Provider-specific parameters passed through to the model provider unchanged.

" } }, "documentation":"

Configuration for an OpenAI model provider. Requires an API key stored in AgentCore Identity.

" @@ -11600,15 +11693,78 @@ "path":{ "shape":"HarnessSkillPath", "documentation":"

The filesystem path to the skill definition.

" + }, + "s3":{ + "shape":"HarnessSkillS3Source", + "documentation":"

An S3 source containing the skill.

" + }, + "git":{ + "shape":"HarnessSkillGitSource", + "documentation":"

A git repository containing the skill.

" } }, "documentation":"

A skill available to the agent.

", "union":true }, + "HarnessSkillGitAuth":{ + "type":"structure", + "required":["credentialArn"], + "members":{ + "credentialArn":{ + "shape":"ApiKeyArn", + "documentation":"

The ARN of the credential in AgentCore Identity containing the password or personal access token.

" + }, + "username":{ + "shape":"String", + "documentation":"

Username for authentication. Defaults to 'oauth2' if not specified.

" + } + }, + "documentation":"

Authentication configuration for accessing a private git repository.

" + }, + "HarnessSkillGitSource":{ + "type":"structure", + "required":["url"], + "members":{ + "url":{ + "shape":"HarnessSkillGitUrl", + "documentation":"

The HTTPS URL of the git repository.

" + }, + "path":{ + "shape":"String", + "documentation":"

Subdirectory within the repository containing the skill.

" + }, + "auth":{ + "shape":"HarnessSkillGitAuth", + "documentation":"

Authentication configuration for private repositories.

" + } + }, + "documentation":"

A git repository source for a skill.

" + }, + "HarnessSkillGitUrl":{ + "type":"string", + "min":8, + "pattern":"https://.*" + }, "HarnessSkillPath":{ "type":"string", "min":1 }, + "HarnessSkillS3Source":{ + "type":"structure", + "required":["uri"], + "members":{ + "uri":{ + "shape":"HarnessSkillS3Uri", + "documentation":"

The S3 URI pointing to the skill directory (e.g., s3://bucket/skills/my-skill/).

" + } + }, + "documentation":"

An S3 source for a skill.

" + }, + "HarnessSkillS3Uri":{ + "type":"string", + "min":5, + "pattern":"s3://.*" + }, "HarnessSkills":{ "type":"list", "member":{"shape":"HarnessSkill"} diff --git a/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json b/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json index 1ae31d8bcb88..0a73b0683f43 100644 --- a/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json +++ b/awscli/botocore/data/bedrock-agentcore/2024-02-28/service-2.json @@ -758,6 +758,7 @@ "output":{"shape":"InvokeHarnessResponse"}, "errors":[ {"shape":"AccessDeniedException"}, + {"shape":"RuntimeClientError"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, @@ -1714,7 +1715,7 @@ }, "BatchEvaluationArn":{ "type":"string", - "documentation":"

ARN for a batch evaluation

" + "documentation":"

The Amazon Resource Name (ARN) of a batch evaluation.

" }, "BatchEvaluationDescription":{ "type":"string", @@ -1723,16 +1724,17 @@ }, "BatchEvaluationId":{ "type":"string", - "documentation":"

Unique identifier for a batch evaluation (name-prefixed format)

", + "documentation":"

The unique identifier for a batch evaluation.

", "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}" }, "BatchEvaluationName":{ "type":"string", - "documentation":"

Human-readable name for a batch evaluation

", + "documentation":"

A human-readable name for a batch evaluation.

", "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}" }, "BatchEvaluationStatus":{ "type":"string", + "documentation":"

The lifecycle status of a batch evaluation job.

", "enum":[ "PENDING", "IN_PROGRESS", @@ -1981,10 +1983,6 @@ "FAILED" ] }, - "BrowserArn":{ - "type":"string", - "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})" - }, "BrowserEnterprisePolicies":{ "type":"list", "member":{"shape":"BrowserEnterprisePolicy"}, @@ -2212,6 +2210,7 @@ }, "CloudWatchLogsFilterOperator":{ "type":"string", + "documentation":"

The comparison operator used to filter CloudWatch Logs entries.

", "enum":[ "Equals", "NotEquals", @@ -2323,10 +2322,6 @@ }, "documentation":"

CloudWatch Logs destination for batch evaluation results.

" }, - "CodeInterpreterArn":{ - "type":"string", - "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})" - }, "CodeInterpreterResult":{ "type":"structure", "required":["content"], @@ -3081,7 +3076,7 @@ "members":{ "cloudWatchLogs":{ "shape":"CloudWatchLogsSource", - "documentation":"

Pull session spans from CloudWatch

" + "documentation":"

Configuration for pulling agent session traces from CloudWatch Logs.

" } }, "documentation":"

Configuration for the data source used in evaluation.

", @@ -3380,8 +3375,7 @@ "Document":{ "type":"structure", "members":{}, - "document":true, - "sensitive":true + "document":true }, "DomainPattern":{ "type":"string", @@ -3602,7 +3596,10 @@ "type":"structure", "required":["context"], "members":{ - "context":{"shape":"Context"}, + "context":{ + "shape":"Context", + "documentation":"

The span context that identifies which session or trace this reference input applies to, used for correlating ground truth with agent output.

" + }, "expectedResponse":{ "shape":"EvaluationContent", "documentation":"

The expected response for trace-level evaluation. Built-in evaluators that support this field compare the agent's actual response against this value for assessment. Custom evaluators can access it through the {expected_response} placeholder in their instructions.

" @@ -3621,6 +3618,7 @@ "EvaluationReferenceInputs":{ "type":"list", "member":{"shape":"EvaluationReferenceInput"}, + "documentation":"

A list of reference inputs containing ground truth data for evaluation.

", "max":1000, "min":1, "sensitive":true @@ -3683,7 +3681,8 @@ }, "EvaluationResults":{ "type":"list", - "member":{"shape":"EvaluationResultContent"} + "member":{"shape":"EvaluationResultContent"}, + "documentation":"

A list of evaluation results from the evaluators applied to the session.

" }, "EvaluationTarget":{ "type":"structure", @@ -4939,7 +4938,7 @@ "members":{ "inline":{ "shape":"InlineGroundTruth", - "documentation":"

Provide ground truth inline

" + "documentation":"

Inline ground truth data provided directly in the request.

" } }, "documentation":"

Where to pull ground truth from.

", @@ -4979,7 +4978,7 @@ "type":"structure", "members":{ "browserArn":{ - "shape":"BrowserArn", + "shape":"HarnessBrowserArn", "documentation":"

If not populated, the built-in Browser ARN is used.

" } }, @@ -4989,7 +4988,7 @@ "type":"structure", "members":{ "codeInterpreterArn":{ - "shape":"CodeInterpreterArn", + "shape":"HarnessCodeInterpreterArn", "documentation":"

If not populated, the built-in Code Interpreter ARN is used.

" } }, @@ -5024,6 +5023,14 @@ "type":"string", "pattern":"arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}" }, + "HarnessBedrockApiFormat":{ + "type":"string", + "enum":[ + "converse_stream", + "responses", + "chat_completions" + ] + }, "HarnessBedrockModelConfig":{ "type":"structure", "required":["modelId"], @@ -5043,10 +5050,28 @@ "topP":{ "shape":"TopP", "documentation":"

The topP set when calling the model.

" + }, + "apiFormat":{ + "shape":"HarnessBedrockApiFormat", + "documentation":"

The API format to use when calling the Bedrock provider.

" + }, + "additionalParams":{ + "shape":"Document", + "documentation":"

Provider-specific parameters passed through to the model provider unchanged.

" } }, "documentation":"

Configuration for an Amazon Bedrock model provider.

" }, + "HarnessBrowserArn":{ + "type":"string", + "documentation":"

Browser ARN for Harness tool configuration. Accepts both managed (aws.browser.v1) and custom browser ARNs.

", + "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})" + }, + "HarnessCodeInterpreterArn":{ + "type":"string", + "documentation":"

Code Interpreter ARN for Harness tool configuration. Accepts both managed (aws.codeinterpreter.v1) and custom code interpreter ARNs.

", + "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})" + }, "HarnessContentBlock":{ "type":"structure", "members":{ @@ -5246,6 +5271,47 @@ "min":1, "sensitive":true }, + "HarnessLiteLlmApiBase":{ + "type":"string", + "max":16383, + "min":1, + "sensitive":true + }, + "HarnessLiteLlmModelConfig":{ + "type":"structure", + "required":["modelId"], + "members":{ + "modelId":{ + "shape":"ModelId", + "documentation":"

The LiteLLM model identifier (e.g., \"anthropic/claude-3-sonnet\").

" + }, + "apiKeyArn":{ + "shape":"ApiKeyArn", + "documentation":"

The ARN of the API key in AgentCore Identity for authenticating with the model provider.

" + }, + "apiBase":{ + "shape":"HarnessLiteLlmApiBase", + "documentation":"

The base URL for the model provider's API endpoint.

" + }, + "maxTokens":{ + "shape":"MaxTokens", + "documentation":"

The maximum number of tokens to allow in the generated response per iteration.

" + }, + "temperature":{ + "shape":"Temperature", + "documentation":"

The temperature to set when calling the model.

" + }, + "topP":{ + "shape":"TopP", + "documentation":"

The topP set when calling the model.

" + }, + "additionalParams":{ + "shape":"Document", + "documentation":"

Provider-specific parameters passed through to the model provider unchanged.

" + } + }, + "documentation":"

Configuration for a LiteLLM model provider, enabling connection to third-party model providers.

" + }, "HarnessMessage":{ "type":"structure", "required":[ @@ -5325,11 +5391,22 @@ "geminiModelConfig":{ "shape":"HarnessGeminiModelConfig", "documentation":"

Configuration for a Google Gemini model.

" + }, + "liteLlmModelConfig":{ + "shape":"HarnessLiteLlmModelConfig", + "documentation":"

The LiteLLM model configuration for connecting to third-party model providers.

" } }, "documentation":"

Specification of which model to use.

", "union":true }, + "HarnessOpenAiApiFormat":{ + "type":"string", + "enum":[ + "chat_completions", + "responses" + ] + }, "HarnessOpenAiModelConfig":{ "type":"structure", "required":[ @@ -5356,6 +5433,14 @@ "topP":{ "shape":"TopP", "documentation":"

The topP set when calling the model.

" + }, + "apiFormat":{ + "shape":"HarnessOpenAiApiFormat", + "documentation":"

The API format to use when calling the OpenAI provider.

" + }, + "additionalParams":{ + "shape":"Document", + "documentation":"

Provider-specific parameters passed through to the model provider unchanged.

" } }, "documentation":"

Configuration for an OpenAI model provider. Requires an API key stored in AgentCore Identity.

" @@ -5439,15 +5524,78 @@ "path":{ "shape":"HarnessSkillPath", "documentation":"

The filesystem path to the skill definition.

" + }, + "s3":{ + "shape":"HarnessSkillS3Source", + "documentation":"

An S3 source containing the skill.

" + }, + "git":{ + "shape":"HarnessSkillGitSource", + "documentation":"

A git repository containing the skill.

" } }, "documentation":"

A skill available to the agent.

", "union":true }, + "HarnessSkillGitAuth":{ + "type":"structure", + "required":["credentialArn"], + "members":{ + "credentialArn":{ + "shape":"ApiKeyArn", + "documentation":"

The ARN of the credential in AgentCore Identity containing the password or personal access token.

" + }, + "username":{ + "shape":"String", + "documentation":"

Username for authentication. Defaults to 'oauth2' if not specified.

" + } + }, + "documentation":"

Authentication configuration for accessing a private git repository.

" + }, + "HarnessSkillGitSource":{ + "type":"structure", + "required":["url"], + "members":{ + "url":{ + "shape":"HarnessSkillGitUrl", + "documentation":"

The HTTPS URL of the git repository.

" + }, + "path":{ + "shape":"String", + "documentation":"

Subdirectory within the repository containing the skill.

" + }, + "auth":{ + "shape":"HarnessSkillGitAuth", + "documentation":"

Authentication configuration for private repositories.

" + } + }, + "documentation":"

A git repository source for a skill.

" + }, + "HarnessSkillGitUrl":{ + "type":"string", + "min":8, + "pattern":"https://.*" + }, "HarnessSkillPath":{ "type":"string", "min":1 }, + "HarnessSkillS3Source":{ + "type":"structure", + "required":["uri"], + "members":{ + "uri":{ + "shape":"HarnessSkillS3Uri", + "documentation":"

The S3 URI pointing to the skill directory (e.g., s3://bucket/skills/my-skill/).

" + } + }, + "documentation":"

An S3 source for a skill.

" + }, + "HarnessSkillS3Uri":{ + "type":"string", + "min":5, + "pattern":"s3://.*" + }, "HarnessSkills":{ "type":"list", "member":{"shape":"HarnessSkill"} @@ -5841,7 +5989,7 @@ }, "expectedTrajectory":{ "shape":"EvaluationExpectedTrajectory", - "documentation":"

expectedTrajectory for evaluation, reuses common model EvaluationExpectedTrajectory

" + "documentation":"

The expected tool call sequence for trajectory evaluation.

" }, "turns":{ "shape":"InlineGroundTruthTurnsList", @@ -6418,11 +6566,17 @@ "locationName":"harnessArn" }, "runtimeSessionId":{ - "shape":"SessionId", + "shape":"InvokeHarnessRequestRuntimeSessionIdString", "documentation":"

The session ID for the invocation. Use the same session ID across requests to continue a conversation.

", "location":"header", "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id" }, + "runtimeUserId":{ + "shape":"String", + "documentation":"

An identifier for the end user making the request. This value is passed through to the runtime container.

", + "location":"header", + "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-User-Id" + }, "messages":{ "shape":"HarnessMessages", "documentation":"

The messages to send to the agent.

" @@ -6465,6 +6619,12 @@ } } }, + "InvokeHarnessRequestRuntimeSessionIdString":{ + "type":"string", + "max":100, + "min":33, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9-_]*" + }, "InvokeHarnessResponse":{ "type":"structure", "required":["stream"], @@ -6505,7 +6665,10 @@ }, "internalServerException":{"shape":"InternalServerException"}, "validationException":{"shape":"ValidationException"}, - "runtimeClientError":{"shape":"RuntimeClientError"} + "runtimeClientError":{ + "shape":"RuntimeClientError", + "documentation":"

An error returned by the runtime container during agent execution.

" + } }, "documentation":"

The streaming events returned by a harness invocation.

", "eventstream":true @@ -7328,6 +7491,12 @@ "min":1, "sensitive":true }, + "MemoryDocument":{ + "type":"structure", + "members":{}, + "document":true, + "sensitive":true + }, "MemoryId":{ "type":"string", "min":12, @@ -8103,7 +8272,7 @@ "documentation":"

The conversational content of the payload.

" }, "blob":{ - "shape":"Document", + "shape":"MemoryDocument", "documentation":"

The binary content of the payload.

" } }, @@ -8774,6 +8943,7 @@ }, "RecommendationStatus":{ "type":"string", + "documentation":"

The lifecycle status of a recommendation.

", "enum":[ "PENDING", "IN_PROGRESS", @@ -8841,6 +9011,7 @@ }, "RecommendationType":{ "type":"string", + "documentation":"

The type of recommendation to generate.

", "enum":[ "SYSTEM_PROMPT_RECOMMENDATION", "TOOL_DESCRIPTION_RECOMMENDATION" diff --git a/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json b/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json index 10d601d0f9be..aa07fd69227a 100644 --- a/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json +++ b/awscli/botocore/data/bedrock-runtime/2023-09-30/service-2.json @@ -945,7 +945,8 @@ "type":"string", "enum":[ "user", - "assistant" + "assistant", + "system" ] }, "ConversationalModelId":{ diff --git a/awscli/botocore/data/bedrock/2023-04-20/service-2.json b/awscli/botocore/data/bedrock/2023-04-20/service-2.json index c8a010618b3e..0a4d153aca90 100644 --- a/awscli/botocore/data/bedrock/2023-04-20/service-2.json +++ b/awscli/botocore/data/bedrock/2023-04-20/service-2.json @@ -31,7 +31,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Batch delete the specified advanced prompt optimization jobs.

" + "documentation":"

Deletes one or more advanced prompt optimization jobs.

" }, "BatchDeleteEvaluationJob":{ "name":"BatchDeleteEvaluationJob", @@ -90,7 +90,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates an asynchronous batch job for advanced prompt optimization.

", + "documentation":"

Creates an advanced prompt optimization job. The job optimizes your prompt templates for specific models using your evaluation dataset and criteria.

", "idempotent":true }, "CreateAutomatedReasoningPolicy":{ @@ -177,7 +177,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates a new custom model in Amazon Bedrock. After the model is active, you can use it for inference.

To use the model for inference, you must purchase Provisioned Throughput for it. You can't use On-demand inference with these custom models. For more information about Provisioned Throughput, see Provisioned Throughput.

The model appears in ListCustomModels with a customizationType of imported. To track the status of the new model, you use the GetCustomModel API operation. The model can be in the following states:

  • Creating - Initial state during validation and registration

  • Active - Model is ready for use in inference

  • Failed - Creation process encountered an error

Related APIs

", + "documentation":"

Creates a new custom model in Amazon Bedrock. After the model is active, you can use it for inference.

You can provide the model data source in one of the following ways:

  • customModelDataSource — Specify a SageMaker AI model package ARN. Amazon Bedrock resolves the model package to retrieve the model artifacts. This is the preferred method for new SageMaker AI training outputs.

  • modelSourceConfig — Specify an Amazon S3 URI pointing to the Amazon-managed Amazon S3 bucket containing your model artifacts.

To use the model for inference, you must purchase Provisioned Throughput for it. You can't use On-demand inference with these custom models. For more information about Provisioned Throughput, see Provisioned Throughput.

The model appears in ListCustomModels with a customizationType of imported. To track the status of the new model, you use the GetCustomModel API operation. The model can be in the following states:

  • Creating - Initial state during validation and registration

  • Active - Model is ready for use in inference

  • Failed - Creation process encountered an error

Related APIs

", "idempotent":true }, "CreateCustomModelDeployment":{ @@ -800,7 +800,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves the details and status of an advanced prompt optimization job.

", + "documentation":"

Gets information about an advanced prompt optimization job.

", "readonly":true }, "GetAutomatedReasoningPolicy":{ @@ -1290,7 +1290,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists all advanced prompt optimization jobs for the account.

", + "documentation":"

Lists the advanced prompt optimization jobs in your account.

", "readonly":true }, "ListAutomatedReasoningPolicies":{ @@ -1831,7 +1831,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Stops an in-progress advanced prompt optimization job.

" + "documentation":"

Stops an advanced prompt optimization job that is in progress.

" }, "StopEvaluationJob":{ "name":"StopEvaluationJob", @@ -2206,27 +2206,27 @@ "members":{ "s3Uri":{ "shape":"S3Uri", - "documentation":"

S3 URI of the input JSONL file.

" + "documentation":"

The S3 URI of the JSONL input file containing prompt templates and evaluation samples.

" } }, - "documentation":"

Input data configuration for the advanced prompt optimization job.

" + "documentation":"

Contains the input data configuration for an advanced prompt optimization job.

" }, "AdvancedPromptOptimizationJobArn":{ "type":"string", - "documentation":"

ARN of the advanced prompt optimization job.

", + "documentation":"

The Amazon Resource Name (ARN) of an advanced prompt optimization job.

", "max":1011, "min":0, "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:advanced-prompt-optimization-job/[a-z0-9]{12}" }, "AdvancedPromptOptimizationJobDescription":{ "type":"string", - "documentation":"

Description of the advanced prompt optimization job.

", + "documentation":"

The description of an advanced prompt optimization job.

", "max":500, "min":1 }, "AdvancedPromptOptimizationJobIdentifier":{ "type":"string", - "documentation":"

ARN or ID of the advanced prompt optimization job.

", + "documentation":"

The ARN or ID of an advanced prompt optimization job.

", "max":1011, "min":0, "pattern":"((arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:advanced-prompt-optimization-job/)?[a-z0-9]{12})" @@ -2234,20 +2234,20 @@ "AdvancedPromptOptimizationJobIdentifiers":{ "type":"list", "member":{"shape":"AdvancedPromptOptimizationJobIdentifier"}, - "documentation":"

List of advanced prompt optimization job identifiers.

", + "documentation":"

A list of advanced prompt optimization job identifiers.

", "max":25, "min":1 }, "AdvancedPromptOptimizationJobName":{ "type":"string", - "documentation":"

Name of the advanced prompt optimization job.

", + "documentation":"

The name of an advanced prompt optimization job.

", "max":100, "min":1, "pattern":"[a-zA-Z0-9][a-zA-Z0-9.+-]*" }, "AdvancedPromptOptimizationJobStatus":{ "type":"string", - "documentation":"

Status of the advanced prompt optimization job.

", + "documentation":"

The status of an advanced prompt optimization job.

", "enum":[ "InProgress", "Completed", @@ -2261,7 +2261,7 @@ "AdvancedPromptOptimizationJobSummaries":{ "type":"list", "member":{"shape":"AdvancedPromptOptimizationJobSummary"}, - "documentation":"

List of advanced prompt optimization job summaries.

" + "documentation":"

A list of advanced prompt optimization job summaries.

" }, "AdvancedPromptOptimizationJobSummary":{ "type":"structure", @@ -2274,26 +2274,26 @@ "members":{ "jobArn":{ "shape":"AdvancedPromptOptimizationJobArn", - "documentation":"

ARN of the advanced prompt optimization job.

" + "documentation":"

The Amazon Resource Name (ARN) of the job.

" }, "jobName":{ "shape":"AdvancedPromptOptimizationJobName", - "documentation":"

Name of the advanced prompt optimization job.

" + "documentation":"

The name of the job.

" }, "jobStatus":{ "shape":"AdvancedPromptOptimizationJobStatus", - "documentation":"

Status of the advanced prompt optimization job.

" + "documentation":"

The status of the job.

" }, "creationTime":{ "shape":"Timestamp", - "documentation":"

Creation time of the advanced prompt optimization job.

" + "documentation":"

The time at which the job was created.

" }, "lastModifiedTime":{ "shape":"Timestamp", - "documentation":"

Last modified time of the advanced prompt optimization job.

" + "documentation":"

The time at which the job was last modified.

" } }, - "documentation":"

Summary of an advanced prompt optimization job.

" + "documentation":"

Contains a summary of an advanced prompt optimization job.

" }, "AdvancedPromptOptimizationOutputConfig":{ "type":"structure", @@ -2301,10 +2301,10 @@ "members":{ "s3Uri":{ "shape":"S3UriFolder", - "documentation":"

S3 URI prefix for the output location.

" + "documentation":"

The S3 URI prefix where the optimization results will be written.

" } }, - "documentation":"

Output data configuration for the advanced prompt optimization job.

" + "documentation":"

Contains the output data configuration for an advanced prompt optimization job.

" }, "AgreementAvailability":{ "type":"structure", @@ -4642,23 +4642,23 @@ "members":{ "jobIdentifier":{ "shape":"AdvancedPromptOptimizationJobIdentifier", - "documentation":"

Identifier of the job that failed to delete.

" + "documentation":"

The identifier of the job that could not be deleted.

" }, "code":{ "shape":"String", - "documentation":"

Error code for the deletion failure.

" + "documentation":"

The error code for the deletion failure.

" }, "message":{ "shape":"String", - "documentation":"

Error message describing the deletion failure.

" + "documentation":"

A message describing the error.

" } }, - "documentation":"

Batch deletion error for an advanced prompt optimization job.

" + "documentation":"

Contains information about an error that occurred when deleting an advanced prompt optimization job.

" }, "BatchDeleteAdvancedPromptOptimizationJobErrors":{ "type":"list", "member":{"shape":"BatchDeleteAdvancedPromptOptimizationJobError"}, - "documentation":"

List of batch deletion errors for advanced prompt optimization jobs.

", + "documentation":"

A list of errors from a batch delete operation on advanced prompt optimization jobs.

", "max":25, "min":0 }, @@ -4671,19 +4671,19 @@ "members":{ "jobIdentifier":{ "shape":"AdvancedPromptOptimizationJobIdentifier", - "documentation":"

Identifier of the deleted job.

" + "documentation":"

The identifier of the deleted job.

" }, "jobStatus":{ "shape":"AdvancedPromptOptimizationJobStatus", - "documentation":"

Status of the deleted job.

" + "documentation":"

The status of the deleted job.

" } }, - "documentation":"

Successfully deleted advanced prompt optimization job.

" + "documentation":"

Contains information about a successfully deleted advanced prompt optimization job.

" }, "BatchDeleteAdvancedPromptOptimizationJobItems":{ "type":"list", "member":{"shape":"BatchDeleteAdvancedPromptOptimizationJobItem"}, - "documentation":"

List of successfully deleted advanced prompt optimization jobs.

", + "documentation":"

A list of successfully deleted advanced prompt optimization jobs.

", "max":25, "min":0 }, @@ -4693,7 +4693,7 @@ "members":{ "jobIdentifiers":{ "shape":"AdvancedPromptOptimizationJobIdentifiers", - "documentation":"

List of advanced prompt optimization job identifiers to delete.

" + "documentation":"

A list of advanced prompt optimization job identifiers (ARNs or IDs) to delete.

" } }, "documentation":"

Batch Delete Advanced Prompt Optimization Jobs Request

" @@ -4707,11 +4707,11 @@ "members":{ "errors":{ "shape":"BatchDeleteAdvancedPromptOptimizationJobErrors", - "documentation":"

List of errors encountered during batch deletion.

" + "documentation":"

A list of errors encountered during batch deletion.

" }, "advancedPromptOptimizationJobs":{ "shape":"BatchDeleteAdvancedPromptOptimizationJobItems", - "documentation":"

List of successfully deleted advanced prompt optimization jobs.

" + "documentation":"

A list of successfully deleted advanced prompt optimization jobs.

" } }, "documentation":"

Batch Delete Advanced Prompt Optimization Jobs Response

" @@ -4957,36 +4957,36 @@ "members":{ "jobName":{ "shape":"AdvancedPromptOptimizationJobName", - "documentation":"

Name of the advanced prompt optimization job.

" + "documentation":"

A name for the advanced prompt optimization job.

" }, "jobDescription":{ "shape":"AdvancedPromptOptimizationJobDescription", - "documentation":"

Description of the advanced prompt optimization job.

" + "documentation":"

A description of the advanced prompt optimization job.

" }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

Idempotency token for the request.

", + "documentation":"

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request but does not return an error.

", "idempotencyToken":true }, "inputConfig":{ "shape":"AdvancedPromptOptimizationInputConfig", - "documentation":"

Input data configuration for the advanced prompt optimization job.

" + "documentation":"

Specifies the S3 location of your JSONL input file containing prompt templates and evaluation samples.

" }, "outputConfig":{ "shape":"AdvancedPromptOptimizationOutputConfig", - "documentation":"

Output data configuration for the advanced prompt optimization job.

" + "documentation":"

Specifies the S3 location where optimization results will be stored.

" }, "encryptionKeyArn":{ "shape":"KmsKeyArn", - "documentation":"

KMS key ARN for encrypting output data.

" + "documentation":"

The Amazon Resource Name (ARN) of the KMS key used for encrypting the output data. If not specified, the output is encrypted with an Amazon-owned KMS key.

" }, "tags":{ "shape":"TagList", - "documentation":"

Tags to associate with the job.

" + "documentation":"

Tags to associate with the advanced prompt optimization job.

" }, "modelConfigurations":{ "shape":"ModelConfigurations", - "documentation":"

Model configurations for advanced prompt optimization.

" + "documentation":"

A list of model configurations specifying the target models for prompt optimization. You can specify up to 5 models.

" } }, "documentation":"

Create Advanced Prompt Optimization Job Request

" @@ -4997,7 +4997,7 @@ "members":{ "jobArn":{ "shape":"AdvancedPromptOptimizationJobArn", - "documentation":"

ARN of the created advanced prompt optimization job.

" + "documentation":"

The Amazon Resource Name (ARN) of the created advanced prompt optimization job.

" } }, "documentation":"

Create Advanced Prompt Optimization Job Response

" @@ -5233,10 +5233,7 @@ }, "CreateCustomModelRequest":{ "type":"structure", - "required":[ - "modelName", - "modelSourceConfig" - ], + "required":["modelName"], "members":{ "modelName":{ "shape":"CustomModelName", @@ -5246,13 +5243,17 @@ "shape":"ModelDataSource", "documentation":"

The data source for the model. The Amazon S3 URI in the model source must be for the Amazon-managed Amazon S3 bucket containing your model artifacts.

" }, + "customModelDataSource":{ + "shape":"CustomModelDataSource", + "documentation":"

The data source for the custom model. Use this field to specify a SageMaker AI model package ARN as the source for your custom model. Amazon Bedrock resolves the model package to retrieve the model artifacts.

You can specify either customModelDataSource or modelSourceConfig, but not both.

" + }, "modelKmsKeyArn":{ "shape":"KmsKeyArn", "documentation":"

The Amazon Resource Name (ARN) of the customer managed KMS key to encrypt the custom model. If you don't provide a KMS key, Amazon Bedrock uses an Amazon Web Services-managed KMS key to encrypt the model.

If you provide a customer managed KMS key, your Amazon Bedrock service role must have permissions to use it. For more information see Encryption of imported models.

" }, "roleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock assumes to perform tasks on your behalf. This role must have permissions to access the Amazon S3 bucket containing your model artifacts and the KMS key (if specified). For more information, see Setting up an IAM service role for importing models in the Amazon Bedrock User Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock assumes to perform tasks on your behalf. This role must have permissions to access the Amazon S3 bucket containing your model artifacts and the KMS key (if specified). For more information, see Setting up an IAM service role for importing models in the Amazon Bedrock User Guide.

This field is required when you use modelSourceConfig with an Amazon S3 data source. It is not required when you use customModelDataSource with a model package ARN, because Amazon Bedrock uses its own credentials to access the model artifacts.

" }, "modelTags":{ "shape":"TagList", @@ -5986,6 +5987,17 @@ "min":20, "pattern":"arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model/(imported|[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})/[a-z0-9]{12}" }, + "CustomModelDataSource":{ + "type":"structure", + "members":{ + "modelPackageArnDataSource":{ + "shape":"ModelPackageArnDataSource", + "documentation":"

A SageMaker AI model package ARN as the data source for the custom model. When you specify a model package ARN, Amazon Bedrock resolves the model package to retrieve the model artifacts.

" + } + }, + "documentation":"

The data source for a custom model. This is a union type that supports the following member:

  • modelPackageArnDataSource — Specifies a SageMaker AI model package as the data source.

", + "union":true + }, "CustomModelDeploymentArn":{ "type":"string", "max":1011, @@ -7378,7 +7390,7 @@ "members":{ "jobIdentifier":{ "shape":"AdvancedPromptOptimizationJobIdentifier", - "documentation":"

ARN or ID of the advanced prompt optimization job.

", + "documentation":"

The ARN or ID of the advanced prompt optimization job.

", "location":"uri", "locationName":"jobIdentifier" } @@ -7399,47 +7411,47 @@ "members":{ "jobArn":{ "shape":"AdvancedPromptOptimizationJobArn", - "documentation":"

ARN of the advanced prompt optimization job.

" + "documentation":"

The Amazon Resource Name (ARN) of the advanced prompt optimization job.

" }, "jobName":{ "shape":"AdvancedPromptOptimizationJobName", - "documentation":"

Name of the advanced prompt optimization job.

" + "documentation":"

The name of the advanced prompt optimization job.

" }, "jobDescription":{ "shape":"AdvancedPromptOptimizationJobDescription", - "documentation":"

Description of the advanced prompt optimization job.

" + "documentation":"

The description of the advanced prompt optimization job.

" }, "jobStatus":{ "shape":"AdvancedPromptOptimizationJobStatus", - "documentation":"

Status of the advanced prompt optimization job.

" + "documentation":"

The status of the advanced prompt optimization job.

" }, "inputConfig":{ "shape":"AdvancedPromptOptimizationInputConfig", - "documentation":"

Input data configuration for the advanced prompt optimization job.

" + "documentation":"

The input data configuration for the optimization job.

" }, "outputConfig":{ "shape":"AdvancedPromptOptimizationOutputConfig", - "documentation":"

Output data configuration for the advanced prompt optimization job.

" + "documentation":"

The output data configuration for the optimization job.

" }, "encryptionKeyArn":{ "shape":"KmsKeyArn", - "documentation":"

KMS key ARN used for encrypting output data.

" + "documentation":"

The Amazon Resource Name (ARN) of the KMS key used to encrypt the output data.

" }, "creationTime":{ "shape":"Timestamp", - "documentation":"

Creation time of the advanced prompt optimization job.

" + "documentation":"

The time at which the advanced prompt optimization job was created.

" }, "lastModifiedTime":{ "shape":"Timestamp", - "documentation":"

Last modified time of the advanced prompt optimization job.

" + "documentation":"

The time at which the advanced prompt optimization job was last modified.

" }, "failureMessage":{ "shape":"ErrorMessage", - "documentation":"

Failure message if the advanced prompt optimization job failed.

" + "documentation":"

If the job failed, a message describing the reason for the failure.

" }, "modelConfigurations":{ "shape":"ModelConfigurations", - "documentation":"

Model configurations for advanced prompt optimization.

" + "documentation":"

The model configurations used in the optimization job.

" } }, "documentation":"

Get Advanced Prompt Optimization Job Response

" @@ -10314,22 +10326,22 @@ "members":{ "maxTokens":{ "shape":"InferenceConfigurationMaxTokensInteger", - "documentation":"

The maximum number of tokens to generate.

" + "documentation":"

The maximum number of tokens to allow in the generated response. The default value is the maximum allowed value for the model that you are using.

" }, "temperature":{ "shape":"InferenceConfigurationTemperatureFloat", - "documentation":"

The temperature for sampling.

" + "documentation":"

The likelihood of the model selecting higher-probability options while generating a response. A lower value makes the model more likely to choose higher-probability options, while a higher value makes the model more likely to choose lower-probability options.

" }, "topP":{ "shape":"InferenceConfigurationTopPFloat", - "documentation":"

The top-p value for nucleus sampling.

" + "documentation":"

The percentage of most-likely candidates that the model considers for the next token. For example, if you choose a value of 0.8 for topP, the model selects from the top 80% of the probability distribution of tokens that could be next in the sequence.

" }, "stopSequences":{ "shape":"InferenceConfigurationStopSequencesList", - "documentation":"

Stop sequences that end generation.

" + "documentation":"

A list of stop sequences. A stop sequence is a sequence of characters that causes the model to stop generating the response.

" } }, - "documentation":"

Inference configuration for a model.

" + "documentation":"

Base inference parameters to pass to a model. For more information, see Inference parameters for foundation models.

" }, "InferenceConfigurationMaxTokensInteger":{ "type":"integer", @@ -10734,25 +10746,25 @@ "members":{ "maxResults":{ "shape":"MaxResults", - "documentation":"

Maximum number of results to return.

", + "documentation":"

The maximum number of results to return in the response.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

Pagination token for the next page of results.

", + "documentation":"

If the total number of results is greater than the maxResults value provided in the request, use this token in a subsequent request to get the next set of results.

", "location":"querystring", "locationName":"nextToken" }, "sortBy":{ "shape":"SortJobsBy", - "documentation":"

Field to sort by in the returned list of jobs.

", + "documentation":"

The field to sort the results by.

", "location":"querystring", "locationName":"sortBy" }, "sortOrder":{ "shape":"SortOrder", - "documentation":"

Sort order for the results.

", + "documentation":"

The sort order for the results.

", "location":"querystring", "locationName":"sortOrder" } @@ -10764,11 +10776,11 @@ "members":{ "jobSummaries":{ "shape":"AdvancedPromptOptimizationJobSummaries", - "documentation":"

List of advanced prompt optimization job summaries.

" + "documentation":"

A list of advanced prompt optimization job summaries.

" }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

Pagination token for the next page of results.

" + "documentation":"

If the total number of results is greater than the maxResults value provided in the request, use this token in a subsequent request to get the next set of results.

" } }, "documentation":"

List Advanced Prompt Optimization Jobs Response

" @@ -12061,23 +12073,23 @@ "members":{ "modelId":{ "shape":"BedrockModelId", - "documentation":"

The model ID.

" + "documentation":"

The ID of the model to use for optimization.

" }, "inferenceConfig":{ "shape":"InferenceConfiguration", - "documentation":"

Inference configuration for the model.

" + "documentation":"

The inference configuration for the model, including parameters such as maximum tokens, temperature, and top-p.

" }, "additionalModelRequestFields":{ "shape":"AdditionalModelRequestFields", - "documentation":"

Additional model request fields.

" + "documentation":"

Additional model request fields. Use this to pass model-specific parameters that are not included in the standard inference configuration.

" } }, - "documentation":"

Configuration for a model used in advanced prompt optimization.

" + "documentation":"

Contains the configuration for a model used in an advanced prompt optimization job, including the model ID and inference parameters.

" }, "ModelConfigurations":{ "type":"list", "member":{"shape":"ModelConfiguration"}, - "documentation":"

Model configurations for advanced prompt optimization.

", + "documentation":"

A list of model configurations for advanced prompt optimization.

", "max":5, "min":1 }, @@ -12601,6 +12613,21 @@ "min":1, "pattern":"([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})" }, + "ModelPackageArn":{ + "type":"string", + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]{9,16}:[0-9]{12}:model-package/[\\S]{1,2048}" + }, + "ModelPackageArnDataSource":{ + "type":"structure", + "required":["modelPackageArn"], + "members":{ + "modelPackageArn":{ + "shape":"ModelPackageArn", + "documentation":"

The Amazon Resource Name (ARN) of the SageMaker AI model package. The ARN must be for a model package of restricted type.

To use a model package ARN, you must have the sagemaker:DescribeModelPackage and sagemaker:AccessModelPackageData permissions on the model package resource.

" + } + }, + "documentation":"

Contains the Amazon Resource Name (ARN) of a SageMaker AI model package to use as the data source for a custom model.

" + }, "ModelSourceIdentifier":{ "type":"string", "max":2048, @@ -13796,7 +13823,7 @@ "members":{ "jobIdentifier":{ "shape":"AdvancedPromptOptimizationJobIdentifier", - "documentation":"

ARN or ID of the advanced prompt optimization job to stop.

", + "documentation":"

The ARN or ID of the advanced prompt optimization job to stop.

", "location":"uri", "locationName":"jobIdentifier" } diff --git a/awscli/botocore/data/controlcatalog/2018-05-10/service-2.json b/awscli/botocore/data/controlcatalog/2018-05-10/service-2.json index 63368c863dbd..14d9c5de72f7 100644 --- a/awscli/botocore/data/controlcatalog/2018-05-10/service-2.json +++ b/awscli/botocore/data/controlcatalog/2018-05-10/service-2.json @@ -278,6 +278,10 @@ "Implementations":{ "shape":"ImplementationFilter", "documentation":"

A filter that narrows the results to controls with specific implementation types or identifiers. This field allows you to find controls that are implemented by specific Amazon Web Services services or with specific service identifiers.

" + }, + "GovernedProviders":{ + "shape":"GovernedProviderFilterList", + "documentation":"

A filter that narrows the results to controls that govern a specific provider's resources.

" } }, "documentation":"

A structure that defines filtering criteria for the ListControls operation. You can use this filter to narrow down the list of controls based on their implementation details.

" @@ -334,10 +338,21 @@ "Name":{ "shape":"String", "documentation":"

The parameter name. This name is the parameter key when you call EnableControl or UpdateEnabledControl .

" + }, + "Requirement":{ + "shape":"ControlParameterRequirement", + "documentation":"

Indicates whether the parameter is required or optional when you enable the control.

" } }, "documentation":"

Five types of control parameters are supported.

  • AllowedRegions: List of Amazon Web Services Regions exempted from the control. Each string is expected to be an Amazon Web Services Region code. This parameter is mandatory for the OU Region deny control, CT.MULTISERVICE.PV.1.

    Example: [\"us-east-1\",\"us-west-2\"]

  • ExemptedActions: List of Amazon Web Services IAM actions exempted from the control. Each string is expected to be an IAM action.

    Example: [\"logs:DescribeLogGroups\",\"logs:StartQuery\",\"logs:GetQueryResults\"]

  • ExemptedPrincipalArns: List of Amazon Web Services IAM principal ARNs exempted from the control. Each string is expected to be an IAM principal that follows the format arn:partition:service::account:resource

    Example: [\"arn:aws:iam::*:role/ReadOnly\",\"arn:aws:sts::*:assumed-role/ReadOnly/*\"]

  • ExemptedResourceArns: List of resource ARNs exempted from the control. Each string is expected to be a resource ARN.

    Example: [\"arn:aws:s3:::my-bucket-name\"]

  • ExemptAssumeRoot: A parameter that lets you choose whether to exempt requests made with AssumeRoot from this control, for this OU. For member accounts, the AssumeRoot property is included in requests initiated by IAM centralized root access. This parameter applies only to the AWS-GR_RESTRICT_ROOT_USER control. If you add the parameter when enabling the control, the AssumeRoot exemption is allowed. If you omit the parameter, the AssumeRoot exception is not permitted. The parameter does not accept False as a value.

    Example: Enabling the control and allowing AssumeRoot

    { \"controlIdentifier\": \"arn:aws:controlcatalog:::control/5kvme4m5d2b4d7if2fs5yg2ui\", \"parameters\": [ { \"key\": \"ExemptAssumeRoot\", \"value\": true } ], \"targetIdentifier\": \"arn:aws:organizations::8633900XXXXX:ou/o-6jmn81636m/ou-qsah-jtiihcla\" }

" }, + "ControlParameterRequirement":{ + "type":"string", + "enum":[ + "REQUIRED", + "OPTIONAL" + ] + }, "ControlParameters":{ "type":"list", "member":{"shape":"ControlParameter"} @@ -398,6 +413,10 @@ "shape":"ControlSeverity", "documentation":"

An enumerated type, with the following possible values:

" }, + "ParameterRequirementSummary":{ + "shape":"ParameterRequirementSummary", + "documentation":"

A summary that indicates whether the control requires parameters, accepts optional parameters, or does not support parameters. Use this field to determine whether you need to supply parameter values when you enable the control.

" + }, "Implementation":{ "shape":"ImplementationSummary", "documentation":"

An object of type ImplementationSummary that describes how the control is implemented.

" @@ -408,7 +427,11 @@ }, "GovernedResources":{ "shape":"GovernedResources", - "documentation":"

A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If GovernedResources cannot be represented by available CloudFormation resource types, it’s returned as an empty list.

" + "documentation":"

A list of resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. For Amazon Web Services controls, the resources are represented as CloudFormation resource types. For non-Amazon Web Services controls, the resources are represented in a provider-specific format. If GovernedResources cannot be represented by available resource types, it’s returned as an empty list.

" + }, + "GovernedProviders":{ + "shape":"GovernedProviders", + "documentation":"

A list of providers whose resources are governed by this control. For example, a value of AWS indicates that the control governs Amazon Web Services resources.

" } }, "documentation":"

Overview of information about a control.

" @@ -555,6 +578,10 @@ "shape":"ImplementationDetails", "documentation":"

Returns information about the control, as an ImplementationDetails object that shows the underlying implementation type for a control.

" }, + "ParameterRequirementSummary":{ + "shape":"ParameterRequirementSummary", + "documentation":"

A summary that indicates whether the control requires parameters, accepts optional parameters, or does not support parameters. Use this field to determine whether you need to supply parameter values when you enable the control.

" + }, "Parameters":{ "shape":"ControlParameters", "documentation":"

Returns an array of ControlParameter objects that specify the parameters a control supports. An empty list is returned for controls that don’t support parameters.

" @@ -565,13 +592,33 @@ }, "GovernedResources":{ "shape":"GovernedResources", - "documentation":"

A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If GovernedResources cannot be represented by available CloudFormation resource types, it’s returned as an empty list.

" + "documentation":"

A list of resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. For Amazon Web Services controls, the resources are represented as CloudFormation resource types. For non-Amazon Web Services controls, the resources are represented in a provider-specific format. If GovernedResources cannot be represented by available resource types, it’s returned as an empty list.

" + }, + "GovernedProviders":{ + "shape":"GovernedProviders", + "documentation":"

A list of providers whose resources are governed by this control. For example, a value of AWS indicates that the control governs Amazon Web Services resources.

" } } }, + "GovernedProvider":{ + "type":"string", + "max":64, + "min":2, + "pattern":"[A-Z]{2,64}" + }, + "GovernedProviderFilterList":{ + "type":"list", + "member":{"shape":"GovernedProvider"}, + "max":1, + "min":1 + }, + "GovernedProviders":{ + "type":"list", + "member":{"shape":"GovernedProvider"} + }, "GovernedResource":{ "type":"string", - "pattern":"[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}" + "pattern":"[A-Za-z0-9][A-Za-z0-9.:/_-]{1,254}" }, "GovernedResources":{ "type":"list", @@ -967,6 +1014,14 @@ "max":1024, "min":0 }, + "ParameterRequirementSummary":{ + "type":"string", + "enum":[ + "REQUIRED", + "OPTIONAL", + "NONE" + ] + }, "RegionCode":{ "type":"string", "pattern":"[a-zA-Z0-9-]{1,128}" diff --git a/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json b/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json index 5b1ddb05351f..b864d655d170 100644 --- a/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json +++ b/awscli/botocore/data/customer-profiles/2020-08-15/service-2.json @@ -66,6 +66,23 @@ ], "documentation":"

Get a batch of profiles.

" }, + "BatchPutProfileObject":{ + "name":"BatchPutProfileObject", + "http":{ + "method":"PUT", + "requestUri":"/domains/{DomainName}/profiles/objects/batch-put-profile-object" + }, + "input":{"shape":"BatchPutProfileObjectRequest"}, + "output":{"shape":"BatchPutProfileObjectResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Adds multiple profile objects to a domain of a given ObjectType in a single API call.

When adding a specific profile object, like a Contact Record, an inferred profile can get created if it is not mapped to an existing profile. The resulting profile will only have a phone number populated in the standard ProfileObject. Any additional Contact Records with the same phone number will be mapped to the same inferred profile.

When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide data to a standard profile depending on the ProfileObjectType definition.

BatchPutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.

" + }, "CreateCalculatedAttributeDefinition":{ "name":"CreateCalculatedAttributeDefinition", "http":{ @@ -1860,6 +1877,11 @@ "min":1, "pattern":"^[a-zA-Z0-9_-]+$" }, + "responseCode":{ + "type":"integer", + "max":599, + "min":200 + }, "AccessDeniedException":{ "type":"structure", "members":{ @@ -2472,6 +2494,115 @@ } } }, + "BatchPutProfileObjectErrorItem":{ + "type":"structure", + "required":[ + "Id", + "Code" + ], + "members":{ + "Id":{ + "shape":"name", + "documentation":"

The unique identifier of the item in the batch request that failed.

" + }, + "Code":{ + "shape":"responseCode", + "documentation":"

The HTTP status code for the error.

" + }, + "Message":{ + "shape":"text", + "documentation":"

A message describing the error.

" + } + }, + "documentation":"

An item that failed to be added to the domain.

" + }, + "BatchPutProfileObjectErrorList":{ + "type":"list", + "member":{"shape":"BatchPutProfileObjectErrorItem"} + }, + "BatchPutProfileObjectRequest":{ + "type":"structure", + "required":[ + "DomainName", + "ObjectTypeName", + "Items" + ], + "members":{ + "DomainName":{ + "shape":"name", + "documentation":"

The unique name of the domain.

", + "location":"uri", + "locationName":"DomainName" + }, + "ObjectTypeName":{ + "shape":"typeName", + "documentation":"

The name of the profile object type.

" + }, + "Items":{ + "shape":"BatchPutProfileObjectRequestItemList", + "documentation":"

A list of items to add to the domain.

" + } + } + }, + "BatchPutProfileObjectRequestItem":{ + "type":"structure", + "required":[ + "Id", + "Object" + ], + "members":{ + "Id":{ + "shape":"name", + "documentation":"

A unique identifier for this item in the batch request. Used to correlate items in the response.

" + }, + "Object":{ + "shape":"stringifiedJson", + "documentation":"

A string that is serialized from a JSON object.

" + } + }, + "documentation":"

An item to add to the domain as part of a batch request.

" + }, + "BatchPutProfileObjectRequestItemList":{ + "type":"list", + "member":{"shape":"BatchPutProfileObjectRequestItem"}, + "max":10, + "min":1 + }, + "BatchPutProfileObjectResponse":{ + "type":"structure", + "members":{ + "Successful":{ + "shape":"BatchPutProfileObjectResponseList", + "documentation":"

A list of items that were successfully added to the domain.

" + }, + "Failed":{ + "shape":"BatchPutProfileObjectErrorList", + "documentation":"

A list of items that failed to be added to the domain.

" + } + } + }, + "BatchPutProfileObjectResponseItem":{ + "type":"structure", + "required":[ + "Id", + "ProfileObjectUniqueKey" + ], + "members":{ + "Id":{ + "shape":"name", + "documentation":"

The unique identifier of the item in the batch request.

" + }, + "ProfileObjectUniqueKey":{ + "shape":"string1To255", + "documentation":"

The unique identifier of the profile object generated by the service.

" + } + }, + "documentation":"

An item that was successfully added to the domain.

" + }, + "BatchPutProfileObjectResponseList":{ + "type":"list", + "member":{"shape":"BatchPutProfileObjectResponseItem"} + }, "Batches":{ "type":"list", "member":{"shape":"Batch"} @@ -8949,7 +9080,7 @@ "documentation":"

The unit of time.

" }, "Value":{ - "shape":"maxSize24", + "shape":"maxSize60", "documentation":"

The amount of time of the specified unit.

" }, "MaxInvocationsPerProfile":{ @@ -8966,6 +9097,7 @@ "PeriodUnit":{ "type":"string", "enum":[ + "MINUTES", "HOURS", "DAYS", "WEEKS", @@ -12089,14 +12221,14 @@ "max":1000, "min":1 }, - "maxSize24":{ + "maxSize500":{ "type":"integer", - "max":24, + "max":500, "min":1 }, - "maxSize500":{ + "maxSize60":{ "type":"integer", - "max":500, + "max":60, "min":1 }, "message":{"type":"string"}, diff --git a/awscli/botocore/data/deadline/2023-10-12/paginators-1.json b/awscli/botocore/data/deadline/2023-10-12/paginators-1.json index 0a87c6895d7e..5905a3f5aaa2 100644 --- a/awscli/botocore/data/deadline/2023-10-12/paginators-1.json +++ b/awscli/botocore/data/deadline/2023-10-12/paginators-1.json @@ -173,6 +173,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "queueLimitAssociations" + }, + "ListVolumes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "volumes" } } } diff --git a/awscli/botocore/data/deadline/2023-10-12/service-2.json b/awscli/botocore/data/deadline/2023-10-12/service-2.json index 0889507823f8..d1c10937ce0d 100644 --- a/awscli/botocore/data/deadline/2023-10-12/service-2.json +++ b/awscli/botocore/data/deadline/2023-10-12/service-2.json @@ -897,6 +897,27 @@ "endpoint":{"hostPrefix":"management."}, "idempotent":true }, + "DeleteVolume":{ + "name":"DeleteVolume", + "http":{ + "method":"DELETE", + "requestUri":"/2023-10-12/farms/{farmId}/fleets/{fleetId}/volumes/{volumeId}", + "responseCode":200 + }, + "input":{"shape":"DeleteVolumeRequest"}, + "output":{"shape":"DeleteVolumeResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a persistent volume.

", + "endpoint":{"hostPrefix":"management."}, + "idempotent":true + }, "DeleteWorker":{ "name":"DeleteWorker", "http":{ @@ -1380,6 +1401,26 @@ "endpoint":{"hostPrefix":"management."}, "readonly":true }, + "GetVolume":{ + "name":"GetVolume", + "http":{ + "method":"GET", + "requestUri":"/2023-10-12/farms/{farmId}/fleets/{fleetId}/volumes/{volumeId}", + "responseCode":200 + }, + "input":{"shape":"GetVolumeRequest"}, + "output":{"shape":"GetVolumeResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets a persistent volume.

", + "endpoint":{"hostPrefix":"management."}, + "readonly":true + }, "GetWorker":{ "name":"GetWorker", "http":{ @@ -1953,6 +1994,26 @@ "endpoint":{"hostPrefix":"management."}, "readonly":true }, + "ListVolumes":{ + "name":"ListVolumes", + "http":{ + "method":"GET", + "requestUri":"/2023-10-12/farms/{farmId}/fleets/{fleetId}/volumes", + "responseCode":200 + }, + "input":{"shape":"ListVolumesRequest"}, + "output":{"shape":"ListVolumesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists the persistent volumes in a fleet.

", + "endpoint":{"hostPrefix":"management."}, + "readonly":true + }, "ListWorkers":{ "name":"ListWorkers", "http":{ @@ -5030,7 +5091,6 @@ }, "CostScaleFactor":{ "type":"float", - "documentation":"

A multiplier applied to calculated costs. Valid range is 0 to 100. Values less than 1.0 represent discounts, values greater than 1.0 represent markups, and a value of 1.0 represents no adjustment.

", "box":true, "max":100, "min":0 @@ -5457,7 +5517,7 @@ }, "identityCenterRegion":{ "shape":"Region", - "documentation":"

The AWS Region where IAM Identity Center is enabled. Required when IAM Identity Center is in a different Region than the monitor.

" + "documentation":"

The Region where IAM Identity Center is enabled. Required when IAM Identity Center is in a different Region than the monitor.

" }, "subdomain":{ "shape":"Subdomain", @@ -6226,6 +6286,38 @@ "type":"structure", "members":{} }, + "DeleteVolumeRequest":{ + "type":"structure", + "required":[ + "farmId", + "fleetId", + "volumeId" + ], + "members":{ + "farmId":{ + "shape":"FarmId", + "documentation":"

The farm ID of the farm that contains the fleet.

", + "location":"uri", + "locationName":"farmId" + }, + "fleetId":{ + "shape":"FleetId", + "documentation":"

The fleet ID of the fleet that contains the volume.

", + "location":"uri", + "locationName":"fleetId" + }, + "volumeId":{ + "shape":"VolumeId", + "documentation":"

The volume ID of the volume to delete.

", + "location":"uri", + "locationName":"volumeId" + } + } + }, + "DeleteVolumeResponse":{ + "type":"structure", + "members":{} + }, "DeleteWorkerRequest":{ "type":"structure", "required":[ @@ -6458,6 +6550,11 @@ "max":1000, "min":125 }, + "EbsVolumeType":{ + "type":"string", + "documentation":"

The EBS volume type.

", + "enum":["gp3"] + }, "Ec2EbsVolume":{ "type":"structure", "members":{ @@ -7655,7 +7752,7 @@ }, "identityCenterRegion":{ "shape":"Region", - "documentation":"

The AWS Region where IAM Identity Center is enabled.

" + "documentation":"

The Region where IAM Identity Center is enabled.

" }, "identityCenterApplicationArn":{ "shape":"IdentityCenterApplicationArn", @@ -8612,6 +8709,106 @@ } } }, + "GetVolumeRequest":{ + "type":"structure", + "required":[ + "farmId", + "fleetId", + "volumeId" + ], + "members":{ + "farmId":{ + "shape":"FarmId", + "documentation":"

The farm ID of the farm that contains the fleet.

", + "location":"uri", + "locationName":"farmId" + }, + "fleetId":{ + "shape":"FleetId", + "documentation":"

The fleet ID of the fleet that contains the volume.

", + "location":"uri", + "locationName":"fleetId" + }, + "volumeId":{ + "shape":"VolumeId", + "documentation":"

The volume ID of the volume to retrieve.

", + "location":"uri", + "locationName":"volumeId" + } + } + }, + "GetVolumeResponse":{ + "type":"structure", + "required":[ + "volumeId", + "farmId", + "fleetId", + "state", + "sizeGiB", + "availabilityZoneId", + "volumeType", + "createdAt" + ], + "members":{ + "volumeId":{ + "shape":"VolumeId", + "documentation":"

The volume ID.

" + }, + "farmId":{ + "shape":"FarmId", + "documentation":"

The farm ID of the farm that contains the fleet.

" + }, + "fleetId":{ + "shape":"FleetId", + "documentation":"

The fleet ID of the fleet that contains the volume.

" + }, + "state":{ + "shape":"VolumeState", + "documentation":"

The state of the volume.

" + }, + "sizeGiB":{ + "shape":"PersistentVolumeSizeGiB", + "documentation":"

The volume size in GiB.

" + }, + "availabilityZoneId":{ + "shape":"String", + "documentation":"

The Availability Zone ID of the volume.

" + }, + "attachedWorkerId":{ + "shape":"WorkerId", + "documentation":"

The worker ID of the worker the volume is attached to.

" + }, + "volumeType":{ + "shape":"EbsVolumeType", + "documentation":"

The EBS volume type.

" + }, + "iops":{ + "shape":"PersistentVolumeIops", + "documentation":"

The IOPS of the volume.

" + }, + "throughputMiB":{ + "shape":"PersistentVolumeThroughputMiB", + "documentation":"

The throughput of the volume in MiB.

" + }, + "createdAt":{ + "shape":"CreatedAt", + "documentation":"

The date and time the resource was created.

" + }, + "lastAssignedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time the volume was last assigned to a worker.

" + }, + "lastReleasedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time the volume was last released from a worker.

" + }, + "expiresAt":{ + "shape":"Timestamp", + "documentation":"

The date and time the volume expires and will be deleted.

" + } + }, + "documentation":"

Mixin that adds an optional ARN field to response structures. Apply to SummaryMixins (flows into Get, Summary, and BatchGet) and Create outputs.

" + }, "GetWorkerRequest":{ "type":"structure", "required":[ @@ -8936,7 +9133,6 @@ }, "JobDescriptionOverride":{ "type":"string", - "documentation":"

The input description for the job. Passing in an empty string removes any existing description.

", "max":2048, "min":0, "sensitive":true @@ -10925,6 +11121,55 @@ }, "documentation":"

Shared pagination field for List operation outputs (nextToken).

" }, + "ListVolumesRequest":{ + "type":"structure", + "required":[ + "farmId", + "fleetId" + ], + "members":{ + "farmId":{ + "shape":"FarmId", + "documentation":"

The farm ID of the farm that contains the fleet.

", + "location":"uri", + "locationName":"farmId" + }, + "fleetId":{ + "shape":"FleetId", + "documentation":"

The fleet ID of the fleet that contains the volumes.

", + "location":"uri", + "locationName":"fleetId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null to start from the beginning.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", + "location":"querystring", + "locationName":"maxResults" + } + }, + "documentation":"

Shared pagination fields for List operation inputs (nextToken + maxResults).

" + }, + "ListVolumesResponse":{ + "type":"structure", + "required":["volumes"], + "members":{ + "volumes":{ + "shape":"VolumeSummaries", + "documentation":"

The volumes on the list.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If Deadline Cloud returns nextToken, then there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, call the operation again using the returned token. Keep all other arguments unchanged. If no results remain, then nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, then you receive an HTTP 400 ValidationException error.

" + } + }, + "documentation":"

Shared pagination field for List operation outputs (nextToken).

" + }, "ListWorkersRequest":{ "type":"structure", "required":[ @@ -11242,7 +11487,7 @@ }, "identityCenterRegion":{ "shape":"Region", - "documentation":"

The AWS Region where IAM Identity Center is enabled.

" + "documentation":"

The Region where IAM Identity Center is enabled.

" }, "identityCenterApplicationArn":{ "shape":"IdentityCenterApplicationArn", @@ -11267,6 +11512,11 @@ }, "documentation":"

Provides information about a monitor in Deadline Cloud.

" }, + "MountPath":{ + "type":"string", + "max":255, + "min":1 + }, "NextItemOffset":{ "type":"integer", "box":true, @@ -11404,6 +11654,57 @@ "MONTHLY" ] }, + "PersistentVolumeConfiguration":{ + "type":"structure", + "required":["mountPath"], + "members":{ + "sizeGiB":{ + "shape":"PersistentVolumeSizeGiB", + "documentation":"

The persistent volume size in GiB. The default is 250.

" + }, + "iops":{ + "shape":"PersistentVolumeIops", + "documentation":"

The IOPS per persistent volume. The default is 3000.

" + }, + "throughputMiB":{ + "shape":"PersistentVolumeThroughputMiB", + "documentation":"

The throughput per persistent volume in MiB. The default is 125.

" + }, + "mountPath":{ + "shape":"MountPath", + "documentation":"

The file system path where the persistent volume is mounted on the worker instance.

" + }, + "lastUsedTtlHours":{ + "shape":"PersistentVolumeTtlHours", + "documentation":"

The number of hours a persistent volume can remain unused before it is deleted. The default is 168 (7 days).

" + } + }, + "documentation":"

Specifies the persistent EBS volume configuration for workers in a service managed fleet.

" + }, + "PersistentVolumeIops":{ + "type":"integer", + "box":true, + "max":80000, + "min":100 + }, + "PersistentVolumeSizeGiB":{ + "type":"integer", + "box":true, + "max":65536, + "min":1 + }, + "PersistentVolumeThroughputMiB":{ + "type":"integer", + "box":true, + "max":2000, + "min":125 + }, + "PersistentVolumeTtlHours":{ + "type":"integer", + "box":true, + "max":8760, + "min":1 + }, "PortNumber":{ "type":"integer", "box":true, @@ -12438,6 +12739,10 @@ "shape":"StorageProfileId", "documentation":"

The storage profile ID for the service managed EC2 fleet.

" }, + "persistentVolumeConfiguration":{ + "shape":"PersistentVolumeConfiguration", + "documentation":"

The persistent volume configuration for the service managed EC2 fleet.

" + }, "autoScalingConfiguration":{ "shape":"ServiceManagedEc2AutoScalingConfiguration", "documentation":"

The auto scaling configuration settings for the service managed EC2 fleet.

" @@ -15046,6 +15351,67 @@ "OTHER" ] }, + "VolumeId":{ + "type":"string", + "pattern":"volume-[0-9a-f]{32}" + }, + "VolumeState":{ + "type":"string", + "documentation":"

The state of a persistent volume.

", + "enum":[ + "PENDING_CREATION", + "PENDING_ATTACHMENT", + "IN_USE", + "AVAILABLE", + "PENDING_DELETION" + ] + }, + "VolumeSummaries":{ + "type":"list", + "member":{"shape":"VolumeSummary"} + }, + "VolumeSummary":{ + "type":"structure", + "required":[ + "volumeId", + "farmId", + "fleetId", + "state", + "sizeGiB", + "availabilityZoneId" + ], + "members":{ + "volumeId":{ + "shape":"VolumeId", + "documentation":"

The volume ID.

" + }, + "farmId":{ + "shape":"FarmId", + "documentation":"

The farm ID of the farm that contains the fleet.

" + }, + "fleetId":{ + "shape":"FleetId", + "documentation":"

The fleet ID of the fleet that contains the volume.

" + }, + "state":{ + "shape":"VolumeState", + "documentation":"

The state of the volume.

" + }, + "sizeGiB":{ + "shape":"PersistentVolumeSizeGiB", + "documentation":"

The volume size in GiB.

" + }, + "availabilityZoneId":{ + "shape":"String", + "documentation":"

The Availability Zone ID of the volume.

" + }, + "attachedWorkerId":{ + "shape":"WorkerId", + "documentation":"

The worker ID of the worker the volume is attached to.

" + } + }, + "documentation":"

The summary of a persistent volume.

" + }, "VpcConfiguration":{ "type":"structure", "members":{ diff --git a/awscli/botocore/data/iot-data/2015-05-28/paginators-1.json b/awscli/botocore/data/iot-data/2015-05-28/paginators-1.json index 26d4a561ca3b..f3a23d82900f 100644 --- a/awscli/botocore/data/iot-data/2015-05-28/paginators-1.json +++ b/awscli/botocore/data/iot-data/2015-05-28/paginators-1.json @@ -5,6 +5,12 @@ "limit_key": "maxResults", "output_token": "nextToken", "result_key": "retainedTopics" + }, + "ListSubscriptions": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken", + "result_key": "subscriptions" } } } diff --git a/awscli/botocore/data/iot-data/2015-05-28/service-2.json b/awscli/botocore/data/iot-data/2015-05-28/service-2.json index 4e5986ab6e0c..bdc691fec1f7 100644 --- a/awscli/botocore/data/iot-data/2015-05-28/service-2.json +++ b/awscli/botocore/data/iot-data/2015-05-28/service-2.json @@ -27,7 +27,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Disconnects a connected MQTT client from Amazon Web Services IoT Core. When you disconnect a client, Amazon Web Services IoT Core closes the client's network connection and optionally cleans the session state.

" + "documentation":"

Disconnects a connected MQTT client from Amazon Web Services IoT Core. When you disconnect a client, Amazon Web Services IoT Core closes the client's network connection and optionally cleans the session state.

Requires permission to access the DeleteConnection action.

" }, "DeleteThingShadow":{ "name":"DeleteThingShadow", @@ -49,6 +49,23 @@ ], "documentation":"

Deletes the shadow for the specified thing.

Requires permission to access the DeleteThingShadow action.

For more information, see DeleteThingShadow in the IoT Developer Guide.

" }, + "GetConnection":{ + "name":"GetConnection", + "http":{ + "method":"GET", + "requestUri":"/connections/{clientId}" + }, + "input":{"shape":"GetConnectionRequest"}, + "output":{"shape":"GetConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Retrieves connection information for the specified MQTT client.

Requires permission to access the GetConnection action.

" + }, "GetRetainedMessage":{ "name":"GetRetainedMessage", "http":{ @@ -125,6 +142,23 @@ ], "documentation":"

Lists summary information about the retained messages stored for the account.

This action returns only the topic names of the retained messages. It doesn't return any message payloads. Although this action doesn't return a message payload, it can still incur messaging costs.

To get the message payload of a retained message, call GetRetainedMessage with the topic name of the retained message.

Requires permission to access the ListRetainedMessages action.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" }, + "ListSubscriptions":{ + "name":"ListSubscriptions", + "http":{ + "method":"GET", + "requestUri":"/connections/{clientId}/subscriptions" + }, + "input":{"shape":"ListSubscriptionsRequest"}, + "output":{"shape":"ListSubscriptionsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Returns a list of all subscriptions for MQTT clients with active sessions, including offline clients with persistent sessions.

Requires permission to access the ListSubscriptions action.

" + }, "Publish":{ "name":"Publish", "http":{ @@ -141,6 +175,26 @@ ], "documentation":"

Publishes an MQTT message.

Requires permission to access the Publish action.

For more information about MQTT messages, see MQTT Protocol in the IoT Developer Guide.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" }, + "SendDirectMessage":{ + "name":"SendDirectMessage", + "http":{ + "method":"POST", + "requestUri":"/connections/{clientId}/messages" + }, + "input":{"shape":"SendDirectMessageRequest"}, + "output":{"shape":"SendDirectMessageResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ForbiddenException"}, + {"shape":"ThrottlingException"}, + {"shape":"RequestEntityTooLargeException"}, + {"shape":"GatewayTimeoutException"} + ], + "documentation":"

Sends an MQTT message directly to a specific client identified by its client ID.

SendDirectMessage targets a single client ID. The receiving client does not need to subscribe to the topic, but the receiver's policy must allow iot:Receive on the specified topic.

Requires permission to access the SendDirectMessage action.

For more information about messaging costs, see Amazon Web Services IoT Core pricing.

" + }, "UpdateThingShadow":{ "name":"UpdateThingShadow", "http":{ @@ -171,6 +225,7 @@ "min":1, "pattern":"^[^$].*" }, + "Confirmation":{"type":"boolean"}, "ConflictException":{ "type":"structure", "members":{ @@ -183,6 +238,7 @@ "error":{"httpStatusCode":409}, "exception":true }, + "Connected":{"type":"boolean"}, "ContentType":{"type":"string"}, "CorrelationData":{"type":"string"}, "DeleteConnectionRequest":{ @@ -191,19 +247,19 @@ "members":{ "clientId":{ "shape":"ClientId", - "documentation":"

The unique identifier of the MQTT client to disconnect. The client ID can't start with a dollar sign ($).

", + "documentation":"

The unique identifier of the MQTT client to disconnect. The client ID can't start with a dollar sign ($).

MQTT client IDs must be URL encoded (percent-encoded) when they contain characters that are not valid in HTTP requests, such as spaces, forward slashes (/), and UTF-8 characters.

", "location":"uri", "locationName":"clientId" }, "cleanSession":{ "shape":"CleanSession", - "documentation":"

Specifies whether to remove the client's session state when disconnecting. Set to TRUE to delete all session information, including subscriptions and queued messages. Set to FALSE to preserve the session state. By default, this is set to FALSE (preserves the session state).

", + "documentation":"

Specifies whether to remove the client's persistent session state when disconnecting. Set to TRUE to delete all session information, including subscriptions and queued messages. Set to FALSE to preserve the session state for persistent sessions. For clean sessions this parameter will be ignored. By default, this is set to FALSE (preserves the session state).

", "location":"querystring", "locationName":"cleanSession" }, "preventWillMessage":{ "shape":"PreventWillMessage", - "documentation":"

Controls if Amazon Web Services IoT Core publishes the client's Last Will and Testament (LWT) message upon disconnection. Set to TRUE to prevent publishing the LWT message. Set to FALSE to allow publishing. By default, this is set to FALSE (allows publishing the LWT message).

", + "documentation":"

Controls if Amazon Web Services IoT Core publishes the client's Last Will and Testament (LWT) message upon disconnection. Set to TRUE to prevent publishing the LWT message. Set to FALSE to ensure that LWT is published. By default, this is set to FALSE (LWT message is published).

", "location":"querystring", "locationName":"preventWillMessage" } @@ -240,6 +296,7 @@ "documentation":"

The output from the DeleteThingShadow operation.

", "payload":"payload" }, + "DisconnectReason":{"type":"string"}, "ForbiddenException":{ "type":"structure", "members":{ @@ -249,6 +306,97 @@ "error":{"httpStatusCode":403}, "exception":true }, + "GatewayTimeoutException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"errorMessage", + "documentation":"

The message for the exception.

" + } + }, + "documentation":"

The delivery confirmation was not received from the client within the specified timeout period.

", + "error":{"httpStatusCode":504}, + "exception":true + }, + "GetConnectionRequest":{ + "type":"structure", + "required":["clientId"], + "members":{ + "clientId":{ + "shape":"ClientId", + "documentation":"

The unique identifier of the MQTT client to retrieve connection information. The client ID can't start with a dollar sign ($).

MQTT client IDs must be URL encoded (percent-encoded) when they contain characters that are not valid in HTTP requests, such as spaces, forward slashes (/), and UTF-8 characters.

", + "location":"uri", + "locationName":"clientId" + }, + "includeSocketInformation":{ + "shape":"IncludeSocketInformation", + "documentation":"

Specifies if socket information (sourcePort, targetPort, sourceIp, targetIp) should be included in the GetConnection response. Set to TRUE to include socket information. Set to FALSE to omit socket information. By default, this is set to FALSE. See the developer guide for how to authorize this parameter.

", + "location":"querystring", + "locationName":"includeSocketInformation" + } + } + }, + "GetConnectionResponse":{ + "type":"structure", + "members":{ + "connected":{ + "shape":"Connected", + "documentation":"

The connection state of the client. Returns true if the client is currently connected, or false if the client is not connected.

" + }, + "thingName":{ + "shape":"ThingName", + "documentation":"

The name of the thing associated with the principal of the MQTT client, if applicable.

" + }, + "cleanSession":{ + "shape":"CleanSession", + "documentation":"

Indicates whether the client is using a clean session. Returns true for clean sessions or false for persistent sessions.

" + }, + "sourceIp":{ + "shape":"SourceIp", + "documentation":"

The IP address of the client that initiated the connection.

" + }, + "sourcePort":{ + "shape":"SourcePort", + "documentation":"

The client's source port.

" + }, + "targetIp":{ + "shape":"TargetIp", + "documentation":"

The IP address of the Amazon Web Services IoT Core endpoint that the client connected to. For clients connected to VPC endpoints, this is the private IP address of the network interface the client is connected to.

" + }, + "targetPort":{ + "shape":"TargetPort", + "documentation":"

The port number of the Amazon Web Services IoT Core endpoint that the client connected to.

" + }, + "keepAliveDuration":{ + "shape":"KeepAliveDuration", + "documentation":"

The keep-alive interval in seconds that the client specified when establishing the connection.

" + }, + "connectedSince":{ + "shape":"Timestamp", + "documentation":"

Unix timestamp (in milliseconds) indicating when the client connected. Present only when connected is true.

" + }, + "disconnectedSince":{ + "shape":"Timestamp", + "documentation":"

Unix timestamp (in milliseconds) indicating when the client disconnected. Present only when connected is false. This information is available for 30 minutes after the client disconnects.

" + }, + "disconnectReason":{ + "shape":"DisconnectReason", + "documentation":"

The reason for the last disconnection, if the client is currently disconnected. See the developer guide for valid disconnect reasons.

" + }, + "sessionExpiry":{ + "shape":"SessionExpiry", + "documentation":"

The session expiry interval in seconds for the MQTT client connection. This is configured by the user. This value indicates how long the session will remain active after the client disconnects.

" + }, + "clientId":{ + "shape":"ClientId", + "documentation":"

The unique identifier of the MQTT client. This is the same client ID that was used when the client established the connection.

" + }, + "vpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The ID of the VPC endpoint. Present for clients connected to IoT Core via a VPC endpoint.

" + } + } + }, "GetRetainedMessageRequest":{ "type":"structure", "required":["topic"], @@ -318,6 +466,7 @@ "documentation":"

The output from the GetThingShadow operation.

", "payload":"payload" }, + "IncludeSocketInformation":{"type":"boolean"}, "InternalFailureException":{ "type":"structure", "members":{ @@ -344,6 +493,7 @@ "exception":true }, "JsonDocument":{"type":"blob"}, + "KeepAliveDuration":{"type":"integer"}, "ListNamedShadowsForThingRequest":{ "type":"structure", "required":["thingName"], @@ -415,6 +565,43 @@ } } }, + "ListSubscriptionsRequest":{ + "type":"structure", + "required":["clientId"], + "members":{ + "clientId":{ + "shape":"ClientId", + "documentation":"

The unique identifier of the MQTT client to list subscriptions for. The client ID can't start with a dollar sign ($).

MQTT client IDs must be URL encoded (percent-encoded) when they contain characters that are not valid in HTTP requests, such as spaces, forward slashes (/), and UTF-8 characters.

", + "location":"uri", + "locationName":"clientId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of subscriptions to return in a single request. By default, this is set to 20.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListSubscriptionsResponse":{ + "type":"structure", + "members":{ + "subscriptions":{ + "shape":"SubscriptionList", + "documentation":"

A list of topic filters and their associated Quality of Service (QoS) levels that the client is subscribed to.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to get the next set of results, or null if there are no additional results.

" + } + } + }, "MaxResults":{ "type":"integer", "max":200, @@ -549,6 +736,7 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResponseMessage":{"type":"string"}, "ResponseTopic":{"type":"string"}, "Retain":{"type":"boolean"}, "RetainedMessageList":{ @@ -577,6 +765,89 @@ }, "documentation":"

Information about a single retained message.

" }, + "SendDirectMessageRequest":{ + "type":"structure", + "required":[ + "clientId", + "topic" + ], + "members":{ + "clientId":{ + "shape":"ClientId", + "documentation":"

The unique identifier of the MQTT client to send the message to.

Client IDs must not exceed 128 characters and can't start with a dollar sign ($). MQTT client IDs must be URL encoded (percent-encoded) when they contain characters that are not valid in HTTP requests, such as spaces, forward slashes (/), and UTF-8 characters. For more information, see Amazon Web Services IoT Core message broker and protocol limits and quotas.

", + "location":"uri", + "locationName":"clientId" + }, + "topic":{ + "shape":"Topic", + "documentation":"

The topic of the outbound MQTT Publish message to the receiving client. For more information, see Amazon Web Services IoT Core message broker and protocol limits and quotas.

", + "location":"querystring", + "locationName":"topic" + }, + "contentType":{ + "shape":"ContentType", + "documentation":"

The MQTT5 content type property forwarded to the receiving client (for example, application/json).

", + "location":"querystring", + "locationName":"contentType" + }, + "responseTopic":{ + "shape":"ResponseTopic", + "documentation":"

A UTF-8 encoded string that's used as the topic name for a response message. The response topic describes the topic which the receiver should publish to as part of the request-response flow. The topic must not contain wildcard characters. For more information, see Amazon Web Services IoT Core message broker and protocol limits and quotas.

", + "location":"querystring", + "locationName":"responseTopic" + }, + "confirmation":{ + "shape":"Confirmation", + "documentation":"

A Boolean value that specifies whether to wait for delivery confirmation from the receiving client.

When set to true, the API delivers the message at QoS 1 and waits for the client to send a delivery confirmation (PUBACK) before returning a successful response. If delivery confirmation is not received within the specified timeout period, the API returns HTTP 504.

When set to false, the API delivers the message at QoS 0 and returns after Amazon Web Services IoT Core attempts to deliver the message.

Valid values: true | false

Default value: false

", + "location":"querystring", + "locationName":"confirmation" + }, + "timeout":{ + "shape":"TimeoutInSeconds", + "documentation":"

An integer that represents the maximum time, in seconds, to wait for a delivery confirmation (PUBACK) from the receiving client after the message has been delivered. This parameter is only used when confirmation is set to true. If confirmation is false, this parameter is ignored.

The total API response time may be higher than this value due to internal processing. Set your HTTP client timeout to a value greater than this parameter.

Valid range: 1 to 15 seconds.

Default value: 5 seconds.

", + "location":"querystring", + "locationName":"timeout" + }, + "payload":{ + "shape":"Payload", + "documentation":"

The message body. MQTT accepts text, binary, and empty (null) message payloads.

" + }, + "userProperties":{ + "shape":"UserProperties", + "documentation":"

A JSON string that contains an array of JSON objects. If you don't use Amazon Web Services SDK or CLI, you must encode the JSON string to base64 format before adding it to the HTTP header. userProperties is an HTTP header value in the API.

For MQTT 3.1.1 clients, user properties are silently dropped.

The following example userProperties parameter is a JSON string which represents two User Properties. Note that it needs to be base64-encoded:

[{\"deviceName\": \"alpha\"}, {\"deviceCnt\": \"45\"}]

", + "jsonvalue":true, + "location":"header", + "locationName":"x-amz-mqtt5-user-properties" + }, + "payloadFormatIndicator":{ + "shape":"PayloadFormatIndicator", + "documentation":"

An Enum string value that indicates whether the payload is formatted as UTF-8. payloadFormatIndicator is an HTTP header value in the API.

", + "location":"header", + "locationName":"x-amz-mqtt5-payload-format-indicator" + }, + "correlationData":{ + "shape":"CorrelationData", + "documentation":"

The base64-encoded binary data used by the sender of the request message to identify which request the response message is for when it's received. correlationData is an HTTP header value in the API.

", + "location":"header", + "locationName":"x-amz-mqtt5-correlation-data" + } + }, + "payload":"payload" + }, + "SendDirectMessageResponse":{ + "type":"structure", + "members":{ + "message":{ + "shape":"ResponseMessage", + "documentation":"

The status message indicating the result of the operation.

" + }, + "traceId":{ + "shape":"TraceId", + "documentation":"

A unique identifier for the request. Include this value when contacting Amazon Web Services Support for troubleshooting.

" + } + }, + "documentation":"

The output from the SendDirectMessage operation.

" + }, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -590,12 +861,39 @@ "exception":true, "fault":true }, + "SessionExpiry":{"type":"long"}, "ShadowName":{ "type":"string", "max":64, "min":1, "pattern":"[$a-zA-Z0-9:_-]+" }, + "SourceIp":{"type":"string"}, + "SourcePort":{"type":"integer"}, + "SubscriptionList":{ + "type":"list", + "member":{"shape":"SubscriptionSummary"} + }, + "SubscriptionSummary":{ + "type":"structure", + "required":[ + "topicFilter", + "qos" + ], + "members":{ + "topicFilter":{ + "shape":"TopicFilter", + "documentation":"

The topic filter pattern that the client is subscribed to. May include MQTT wildcards such as + (single-level) and # (multi-level).

" + }, + "qos":{ + "shape":"Qos", + "documentation":"

The Quality of Service (QoS) level for the subscription. Valid values are 0 (at most once) and 1 (at least once).

" + } + }, + "documentation":"

Contains information about a subscription for an MQTT client, including the topic filter and Quality of Service (QoS) level.

" + }, + "TargetIp":{"type":"string"}, + "TargetPort":{"type":"integer"}, "ThingName":{ "type":"string", "max":128, @@ -614,8 +912,11 @@ "error":{"httpStatusCode":429}, "exception":true }, + "TimeoutInSeconds":{"type":"integer"}, "Timestamp":{"type":"long"}, "Topic":{"type":"string"}, + "TopicFilter":{"type":"string"}, + "TraceId":{"type":"string"}, "UnauthorizedException":{ "type":"structure", "members":{ @@ -680,6 +981,7 @@ }, "UserProperties":{"type":"string"}, "UserPropertiesBlob":{"type":"blob"}, + "VpcEndpointId":{"type":"string"}, "errorMessage":{"type":"string"} }, "documentation":"IoT data

IoT data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete shadows. A shadow is a persistent representation of your things and their state in the Amazon Web Services cloud.

Find the endpoint address for actions in IoT data by running this CLI command:

aws iot describe-endpoint --endpoint-type iot:Data-ATS

The service name used by Amazon Web ServicesSignature Version 4 to sign requests is: iotdevicegateway.

" diff --git a/awscli/botocore/data/iot/2015-05-28/service-2.json b/awscli/botocore/data/iot/2015-05-28/service-2.json index 1ae1c6de6b49..949d44453aa5 100644 --- a/awscli/botocore/data/iot/2015-05-28/service-2.json +++ b/awscli/botocore/data/iot/2015-05-28/service-2.json @@ -6125,7 +6125,7 @@ }, "batchAcrossTopics":{ "shape":"BatchAcrossTopics", - "documentation":"

Whether to allow batching messages from different MQTT topics into a single HTTP request. By default, only messages from the same topic are batched together. The default value is false.

" + "documentation":"

Whether to allow batching messages from different MQTT topics into a single HTTP request. By default, only messages from the same topic are batched together. The default value is false.

When batchAcrossTopics is enabled, the error payload format changes: the topic field moves from the top level to inside each entry in the payloadsWithMetadata array, since each message in the batch may originate from a different topic.

Messages are always batched within the scope of the same account, rule name, target HTTP endpoint URL, and billing group. Messages that differ in any of these attributes are never combined into the same batch, regardless of the batchAcrossTopics setting.

" } }, "documentation":"

Configuration settings for batching.

" @@ -7497,6 +7497,16 @@ "pattern":"[a-zA-Z0-9:_-]+", "sensitive":true }, + "ConnectivityFilter":{ + "type":"structure", + "members":{ + "includeSocketInformation":{ + "shape":"FleetIndexingApiList", + "documentation":"

A list of fleet indexing APIs for which to enable socket information retrieval. Currently, the only supported value is GET_THING_CONNECTIVITY_DATA.

" + } + }, + "documentation":"

Provides connectivity filter selections for the fleet indexing configuration.

" + }, "ConnectivityTimestamp":{"type":"long"}, "ConsecutiveDatapointsToAlarm":{ "type":"integer", @@ -11698,6 +11708,7 @@ "MQTT_KEEP_ALIVE_TIMEOUT", "SERVER_ERROR", "SERVER_INITIATED_DISCONNECT", + "API_INITIATED_DISCONNECT", "THROTTLED", "WEBSOCKET_TTL_EXPIRATION", "CUSTOMAUTH_TTL_EXPIRATION", @@ -12194,6 +12205,14 @@ "pattern":"([\\n\\t])|(\\r\\n)|(,)" }, "Flag":{"type":"boolean"}, + "FleetIndexingApi":{ + "type":"string", + "enum":["GET_THING_CONNECTIVITY_DATA"] + }, + "FleetIndexingApiList":{ + "type":"list", + "member":{"shape":"FleetIndexingApi"} + }, "FleetMetricArn":{"type":"string"}, "FleetMetricDescription":{ "type":"string", @@ -12994,6 +13013,10 @@ "documentation":"

The name of your IoT thing.

", "location":"uri", "locationName":"thingName" + }, + "includeSocketInformation":{ + "shape":"Boolean", + "documentation":"

Specifies if socket information (sourcePort, targetPort, sourceIp, targetIp, vpcEndpointId) should be included in the GetThingConnectivityData response. Set to true to include socket information. Set to false to omit socket information. By default, this is set to false.

" } } }, @@ -13010,11 +13033,47 @@ }, "timestamp":{ "shape":"Timestamp", - "documentation":"

The timestamp of when the event occurred.

" + "documentation":"

The timestamp of when the event occurred. When you enable or update the indexing configuration, this value might be the Unix epoch time (0) for devices that have never connected or have been disconnected for more than an hour.

" }, "disconnectReason":{ "shape":"DisconnectReasonValue", - "documentation":"

The reason why the client is disconnecting.

" + "documentation":"

The reason why the client is disconnecting. When you enable or update the indexing configuration, this value might be UNKNOWN for devices that have never connected or have been disconnected for more than an hour.

" + }, + "sourceIp":{ + "shape":"SourceIp", + "documentation":"

The IP address of the client that initiated the connection.

" + }, + "sourcePort":{ + "shape":"SourcePort", + "documentation":"

The client's source port.

" + }, + "targetIp":{ + "shape":"TargetIp", + "documentation":"

The IP address of the Amazon Web Services IoT Core endpoint that the client connected to.

" + }, + "targetPort":{ + "shape":"TargetPort", + "documentation":"

The port number of the Amazon Web Services IoT Core endpoint that the client connected to.

" + }, + "vpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The ID of the VPC endpoint. Present for clients connected to Amazon Web Services IoT Core via a VPC endpoint.

" + }, + "keepAliveDuration":{ + "shape":"KeepAliveDuration", + "documentation":"

The keep-alive interval in seconds that the client specified when establishing the connection.

" + }, + "cleanSession":{ + "shape":"Boolean", + "documentation":"

Indicates whether the client is using a clean session. Returns true for clean sessions.

" + }, + "sessionExpiry":{ + "shape":"SessionExpiry", + "documentation":"

The session expiry interval in seconds for the MQTT client connection. This value indicates how long the session will remain active after the client disconnects.

" + }, + "clientId":{ + "shape":"ClientId", + "documentation":"

The unique identifier of the MQTT client.

" } } }, @@ -13313,6 +13372,10 @@ "geoLocations":{ "shape":"GeoLocationsFilter", "documentation":"

The list of geolocation targets that you select to index. The default maximum number of geolocation targets for indexing is 1. To increase the limit, see Amazon Web Services IoT Device Management Quotas in the Amazon Web Services General Reference.

" + }, + "connectivity":{ + "shape":"ConnectivityFilter", + "documentation":"

Provides additional connectivity filter selections for the fleet indexing configuration.

" } }, "documentation":"

Provides additional selections for named shadows and geolocation data.

To add named shadows to your fleet indexing configuration, set namedShadowIndexingMode to be ON and specify your shadow names in namedShadowNames filter.

To add geolocation data to your fleet indexing configuration:

  • If you store geolocation data in a class/unnamed shadow, set thingIndexingMode to be REGISTRY_AND_SHADOW and specify your geolocation data in geoLocations filter.

  • If you store geolocation data in a named shadow, set namedShadowIndexingMode to be ON, add the shadow name in namedShadowNames filter, and specify your geolocation data in geoLocations filter. For more information, see Managing fleet indexing.

" @@ -14039,6 +14102,7 @@ "max":100, "min":1 }, + "KeepAliveDuration":{"type":"integer"}, "Key":{"type":"string"}, "KeyName":{ "type":"string", @@ -19433,6 +19497,7 @@ "exception":true, "fault":true }, + "SessionExpiry":{"type":"long"}, "SetAsActive":{"type":"boolean"}, "SetAsActiveFlag":{"type":"boolean"}, "SetAsDefault":{"type":"boolean"}, @@ -19622,6 +19687,14 @@ "DESCENDING" ] }, + "SourceIp":{ + "type":"string", + "sensitive":true + }, + "SourcePort":{ + "type":"integer", + "sensitive":true + }, "SqlParseException":{ "type":"structure", "members":{ @@ -20183,6 +20256,14 @@ "LonLat" ] }, + "TargetIp":{ + "type":"string", + "sensitive":true + }, + "TargetPort":{ + "type":"integer", + "sensitive":true + }, "TargetSelection":{ "type":"string", "enum":[ @@ -20453,11 +20534,27 @@ }, "timestamp":{ "shape":"ConnectivityTimestamp", - "documentation":"

The epoch time (in milliseconds) when the thing last connected or disconnected. If the thing has been disconnected for approximately an hour, the time value might be missing.

" + "documentation":"

The epoch time (in milliseconds) when the thing last connected or disconnected. If the thing has been disconnected for approximately an hour, the time value might be missing. When you enable or update the indexing configuration, this value might be 0 (the Unix epoch time) for devices that have never connected or have been disconnected for more than an hour.

" }, "disconnectReason":{ "shape":"DisconnectReason", - "documentation":"

The reason why the client is disconnected. If the thing has been disconnected for approximately an hour, the disconnectReason value might be missing.

" + "documentation":"

The reason why the client is disconnected. When you enable or update the indexing configuration, this value might be missing for devices that have never connected or have been disconnected for more than an hour.

" + }, + "keepAliveDuration":{ + "shape":"KeepAliveDuration", + "documentation":"

The keep-alive interval in seconds that the client specified when establishing the connection.

" + }, + "cleanSession":{ + "shape":"Boolean", + "documentation":"

Indicates whether the client is using a clean session. Returns true for clean sessions.

" + }, + "sessionExpiry":{ + "shape":"SessionExpiry", + "documentation":"

The session expiry interval in seconds for the MQTT client connection. This value indicates how long the session will remain active after the client disconnects.

" + }, + "clientId":{ + "shape":"ClientId", + "documentation":"

The unique identifier of the MQTT client.

" } }, "documentation":"

The connectivity status of the thing.

" @@ -22781,6 +22878,10 @@ }, "documentation":"

The summary of a virtual private cloud (VPC) destination.

" }, + "VpcEndpointId":{ + "type":"string", + "sensitive":true + }, "VpcId":{"type":"string"}, "WaitingForDataCollectionChecksCount":{"type":"integer"}, "errorMessage":{"type":"string"}, diff --git a/awscli/botocore/data/opensearchserverless/2021-11-01/service-2.json b/awscli/botocore/data/opensearchserverless/2021-11-01/service-2.json index be9203a7fa74..b1edb1f70f1e 100644 --- a/awscli/botocore/data/opensearchserverless/2021-11-01/service-2.json +++ b/awscli/botocore/data/opensearchserverless/2021-11-01/service-2.json @@ -854,6 +854,15 @@ "max":1011, "min":1 }, + "AutoscalingStatus":{ + "type":"string", + "documentation":"

The autoscaling status of an OpenSearch Serverless collection group: ACTION_SCALING_UP, ACTION_SCALING_DOWN, or NO_ACTION.

", + "enum":[ + "ACTION_SCALING_UP", + "ACTION_SCALING_DOWN", + "NO_ACTION" + ] + }, "BatchGetCollectionGroupRequest":{ "type":"structure", "members":{ @@ -979,6 +988,20 @@ "type":"boolean", "box":true }, + "CapacityDetails":{ + "type":"structure", + "members":{ + "capacityInOcu":{ + "shape":"Float", + "documentation":"

The current capacity in OpenSearch Compute Units (OCUs).

" + }, + "autoscalingStatus":{ + "shape":"AutoscalingStatus", + "documentation":"

The current autoscaling status for the collection group.

" + } + }, + "documentation":"

Capacity details for an OpenSearch Serverless collection group, including the current capacity and autoscaling status.

" + }, "CapacityLimits":{ "type":"structure", "members":{ @@ -1033,6 +1056,10 @@ "shape":"StandbyReplicas", "documentation":"

Details about an OpenSearch Serverless collection.

" }, + "deletionProtection":{ + "shape":"DeletionProtection", + "documentation":"

Indicates whether deletion protection is ENABLED or DISABLED for the collection.

" + }, "vectorOptions":{ "shape":"VectorOptions", "documentation":"

Configuration options for vector search capabilities in the collection.

" @@ -1124,19 +1151,19 @@ "type":"structure", "members":{ "maxIndexingCapacityInOCU":{ - "shape":"CollectionGroupIndexingCapacityValue", + "shape":"CollectionGroupMaxIndexingCapacityValue", "documentation":"

The maximum indexing capacity for collections in the group.

" }, "maxSearchCapacityInOCU":{ - "shape":"CollectionGroupSearchCapacityValue", + "shape":"CollectionGroupMaxSearchCapacityValue", "documentation":"

The maximum search capacity for collections in the group.

" }, "minIndexingCapacityInOCU":{ - "shape":"CollectionGroupIndexingCapacityValue", + "shape":"CollectionGroupMinIndexingCapacityValue", "documentation":"

The minimum indexing capacity for collections in the group.

" }, "minSearchCapacityInOCU":{ - "shape":"CollectionGroupSearchCapacityValue", + "shape":"CollectionGroupMinSearchCapacityValue", "documentation":"

The minimum search capacity for collections in the group.

" } }, @@ -1177,9 +1204,17 @@ "shape":"CollectionGroupCapacityLimits", "documentation":"

The capacity limits for the collection group, in OpenSearch Compute Units (OCUs).

" }, + "currentCapacity":{ + "shape":"CurrentCapacity", + "documentation":"

Current search and indexing capacity for the collection group.

" + }, "numberOfCollections":{ "shape":"Integer", "documentation":"

The number of collections associated with the collection group.

" + }, + "generation":{ + "shape":"ServerlessGeneration", + "documentation":"

The generation of Amazon OpenSearch Serverless for the collection group.

" } }, "documentation":"

Details about a collection group.

" @@ -1226,11 +1261,26 @@ "max":100, "min":1 }, - "CollectionGroupIndexingCapacityValue":{ + "CollectionGroupMaxIndexingCapacityValue":{ + "type":"float", + "box":true, + "min":1 + }, + "CollectionGroupMaxSearchCapacityValue":{ "type":"float", "box":true, "min":1 }, + "CollectionGroupMinIndexingCapacityValue":{ + "type":"float", + "box":true, + "min":0 + }, + "CollectionGroupMinSearchCapacityValue":{ + "type":"float", + "box":true, + "min":0 + }, "CollectionGroupName":{ "type":"string", "max":32, @@ -1243,11 +1293,6 @@ "max":100, "min":1 }, - "CollectionGroupSearchCapacityValue":{ - "type":"float", - "box":true, - "min":1 - }, "CollectionGroupSummaries":{ "type":"list", "member":{"shape":"CollectionGroupSummary"} @@ -1275,7 +1320,11 @@ "shape":"Long", "documentation":"

The Epoch time when the collection group was created.

" }, - "capacityLimits":{"shape":"CollectionGroupCapacityLimits"} + "capacityLimits":{"shape":"CollectionGroupCapacityLimits"}, + "generation":{ + "shape":"ServerlessGeneration", + "documentation":"

The generation of Amazon OpenSearch Serverless for the collection group.

" + } }, "documentation":"

Summary information about a collection group.

" }, @@ -1293,7 +1342,7 @@ }, "CollectionName":{ "type":"string", - "max":32, + "max":64, "min":3, "pattern":"[a-z][a-z0-9-]+" }, @@ -1450,6 +1499,10 @@ "shape":"StandbyReplicas", "documentation":"

Creates details about an OpenSearch Serverless collection.

" }, + "deletionProtection":{ + "shape":"DeletionProtection", + "documentation":"

Indicates whether deletion protection is ENABLED or DISABLED for the collection.

" + }, "vectorOptions":{ "shape":"VectorOptions", "documentation":"

Configuration options for vector search capabilities in the collection.

" @@ -1503,6 +1556,10 @@ "capacityLimits":{ "shape":"CollectionGroupCapacityLimits", "documentation":"

The capacity limits for the collection group, in OpenSearch Compute Units (OCUs).

" + }, + "generation":{ + "shape":"ServerlessGeneration", + "documentation":"

The generation of Amazon OpenSearch Serverless for the collection group.

" } }, "documentation":"

Details about the created collection group.

" @@ -1534,6 +1591,10 @@ "shape":"CollectionGroupCapacityLimits", "documentation":"

The capacity limits for the collection group, in OpenSearch Compute Units (OCUs). These limits control the maximum and minimum capacity for collections within the group.

" }, + "generation":{ + "shape":"ServerlessGeneration", + "documentation":"

The generation of Amazon OpenSearch Serverless for the collection group. Valid values are CLASSIC and NEXTGEN.

" + }, "clientToken":{ "shape":"ClientToken", "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", @@ -1591,6 +1652,10 @@ "shape":"EncryptionConfig", "documentation":"

Encryption settings for the collection.

" }, + "deletionProtection":{ + "shape":"DeletionProtection", + "documentation":"

Indicates whether to enable deletion protection for the collection. When set to ENABLED, the collection cannot be deleted.

" + }, "clientToken":{ "shape":"ClientToken", "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", @@ -1841,6 +1906,20 @@ } } }, + "CurrentCapacity":{ + "type":"structure", + "members":{ + "search":{ + "shape":"CapacityDetails", + "documentation":"

The search capacity for the collection group.

" + }, + "indexing":{ + "shape":"CapacityDetails", + "documentation":"

The indexing capacity for the collection group.

" + } + }, + "documentation":"

Current search and indexing capacity for an OpenSearch Serverless collection group. Measured in OpenSearch Compute Units (OCUs).

" + }, "DeleteAccessPolicyRequest":{ "type":"structure", "required":[ @@ -1881,6 +1960,10 @@ "status":{ "shape":"CollectionStatus", "documentation":"

The current status of the collection.

" + }, + "deletionProtection":{ + "shape":"DeletionProtection", + "documentation":"

Indicates whether deletion protection is ENABLED or DISABLED for the collection.

" } }, "documentation":"

Details about a deleted OpenSearch Serverless collection.

" @@ -2062,6 +2145,14 @@ } } }, + "DeletionProtection":{ + "type":"string", + "documentation":"

Indicates whether deletion protection is ENABLED or DISABLED for the collection. When deletion protection is ENABLED, the collection cannot be deleted.

", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "Document":{ "type":"structure", "members":{}, @@ -2161,6 +2252,10 @@ }, "documentation":"

FIPS-compliant endpoint URLs for an OpenSearch Serverless collection. These endpoints ensure all data transmission uses FIPS 140-3 validated cryptographic implementations, meeting federal security requirements for government workloads.

" }, + "Float":{ + "type":"float", + "box":true + }, "GetAccessPolicyRequest":{ "type":"structure", "required":[ @@ -2899,7 +2994,7 @@ "Resource":{"type":"string"}, "ResourceName":{ "type":"string", - "pattern":"index/[a-z][a-z0-9-]{3,32}/([a-z;0-9&$%][+.~=\\-_a-z;0-9&$%]*)" + "pattern":"index/[a-z][a-z0-9-]{3,63}/([a-z;0-9&$%][+.~=\\-_a-z;0-9&$%]*)" }, "ResourceNotFoundException":{ "type":"structure", @@ -3151,6 +3246,13 @@ "network" ] }, + "ServerlessGeneration":{ + "type":"string", + "enum":[ + "CLASSIC", + "NEXTGEN" + ] + }, "ServerlessVectorAccelerationStatus":{ "type":"string", "documentation":"

Specifies whether serverless vector acceleration is enabled for the collection.

", @@ -3389,6 +3491,10 @@ "lastModifiedDate":{ "shape":"Long", "documentation":"

The date and time when the collection was last modified.

" + }, + "deletionProtection":{ + "shape":"DeletionProtection", + "documentation":"

Indicates whether deletion protection is ENABLED or DISABLED for the collection.

" } }, "documentation":"

Details about an updated OpenSearch Serverless collection.

" @@ -3423,6 +3529,10 @@ "lastModifiedDate":{ "shape":"Long", "documentation":"

The date and time when the collection group was last modified.

" + }, + "generation":{ + "shape":"ServerlessGeneration", + "documentation":"

The generation of Amazon OpenSearch Serverless for the collection group.

" } }, "documentation":"

Details about the updated collection group.

" @@ -3480,6 +3590,10 @@ "shape":"VectorOptions", "documentation":"

Configuration options for vector search capabilities in the collection.

" }, + "deletionProtection":{ + "shape":"DeletionProtection", + "documentation":"

Indicates whether to enable or disable deletion protection for the collection. When set to ENABLED, the collection cannot be deleted.

" + }, "clientToken":{ "shape":"ClientToken", "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", diff --git a/awscli/botocore/data/pcs/2023-02-10/service-2.json b/awscli/botocore/data/pcs/2023-02-10/service-2.json index 7e7fa524062e..1cd657dc1b13 100644 --- a/awscli/botocore/data/pcs/2023-02-10/service-2.json +++ b/awscli/botocore/data/pcs/2023-02-10/service-2.json @@ -772,6 +772,10 @@ "ComputeNodeGroupSlurmConfiguration":{ "type":"structure", "members":{ + "scaleDownIdleTimeInSeconds":{ + "shape":"ComputeNodeGroupSlurmConfigurationScaleDownIdleTimeInSecondsInteger", + "documentation":"

The time (in seconds) before an idle node is scaled down. If not specified, the cluster-level setting applies. This overrides the cluster-level scaleDownIdleTimeInSeconds setting. A value of -1 removes the override and applies the cluster-level setting to this compute node group. Requires Slurm version 25.11 or later.

" + }, "slurmCustomSettings":{ "shape":"SlurmCustomSettings", "documentation":"

Additional Slurm-specific configuration that directly maps to Slurm settings.

" @@ -782,6 +786,10 @@ "ComputeNodeGroupSlurmConfigurationRequest":{ "type":"structure", "members":{ + "scaleDownIdleTimeInSeconds":{ + "shape":"ComputeNodeGroupSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger", + "documentation":"

The time (in seconds) before an idle node is scaled down. If not specified, the cluster-level setting applies. This overrides the cluster-level scaleDownIdleTimeInSeconds setting. A value of -1 removes the override and applies the cluster-level setting to this compute node group. Requires Slurm version 25.11 or later.

" + }, "slurmCustomSettings":{ "shape":"SlurmCustomSettings", "documentation":"

Additional Slurm-specific configuration that directly maps to Slurm settings.

" @@ -789,6 +797,18 @@ }, "documentation":"

Additional options related to the Slurm scheduler.

" }, + "ComputeNodeGroupSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger":{ + "type":"integer", + "box":true, + "max":10000000, + "min":-1 + }, + "ComputeNodeGroupSlurmConfigurationScaleDownIdleTimeInSecondsInteger":{ + "type":"integer", + "box":true, + "max":10000000, + "min":-1 + }, "ComputeNodeGroupStatus":{ "type":"string", "enum":[ @@ -2175,6 +2195,10 @@ "UpdateComputeNodeGroupSlurmConfigurationRequest":{ "type":"structure", "members":{ + "scaleDownIdleTimeInSeconds":{ + "shape":"UpdateComputeNodeGroupSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger", + "documentation":"

The time (in seconds) before an idle node is scaled down. If not specified, the cluster-level setting applies. This overrides the cluster-level scaleDownIdleTimeInSeconds setting. A value of -1 removes the override and applies the cluster-level setting to this compute node group. Requires Slurm version 25.11 or later.

" + }, "slurmCustomSettings":{ "shape":"SlurmCustomSettings", "documentation":"

Additional Slurm-specific configuration that directly maps to Slurm settings.

" @@ -2182,6 +2206,12 @@ }, "documentation":"

Additional options related to the Slurm scheduler.

" }, + "UpdateComputeNodeGroupSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger":{ + "type":"integer", + "box":true, + "max":10000000, + "min":-1 + }, "UpdateQueueRequest":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/resiliencehubv2/2026-02-17/endpoint-rule-set-1.json b/awscli/botocore/data/resiliencehubv2/2026-02-17/endpoint-rule-set-1.json new file mode 100644 index 000000000000..e0c7d68d8686 --- /dev/null +++ b/awscli/botocore/data/resiliencehubv2/2026-02-17/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.json b/awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.json new file mode 100644 index 000000000000..b6851b4956dc --- /dev/null +++ b/awscli/botocore/data/resiliencehubv2/2026-02-17/paginators-1.json @@ -0,0 +1,94 @@ +{ + "pagination": { + "ListAssertions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "assertions" + }, + "ListDependencies": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dependencySummaries" + }, + "ListFailureModeAssessments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "assessmentSummaries" + }, + "ListFailureModeFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findingsSummary" + }, + "ListInputSources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "inputSourceSummaries" + }, + "ListPolicies": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "policySummaries" + }, + "ListReports": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "reportGenerationResults" + }, + "ListResources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "serviceResources" + }, + "ListServiceEvents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "events" + }, + "ListServiceFunctions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "serviceFunctions" + }, + "ListServiceTopologyEdges": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "serviceTopologyEdgeSummaries" + }, + "ListServices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "serviceSummaries" + }, + "ListSystemEvents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "events" + }, + "ListSystems": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "systemSummaries" + }, + "ListUserJourneys": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "userJourneySummaries" + } + } +} diff --git a/awscli/botocore/data/resiliencehubv2/2026-02-17/service-2.json b/awscli/botocore/data/resiliencehubv2/2026-02-17/service-2.json new file mode 100644 index 000000000000..9ebf7ad1037d --- /dev/null +++ b/awscli/botocore/data/resiliencehubv2/2026-02-17/service-2.json @@ -0,0 +1,5311 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2026-02-17", + "auth":["aws.auth#sigv4"], + "endpointPrefix":"resiliencehub", + "protocol":"rest-json", + "protocols":["rest-json"], + "serviceFullName":"AWS Resilience Hub V2", + "serviceId":"resiliencehubv2", + "signatureVersion":"v4", + "signingName":"resiliencehub", + "uid":"resiliencehubv2-2026-02-17" + }, + "operations":{ + "CreateAssertion":{ + "name":"CreateAssertion", + "http":{ + "method":"POST", + "requestUri":"/v2/create-assertion", + "responseCode":200 + }, + "input":{"shape":"CreateAssertionRequest"}, + "output":{"shape":"CreateAssertionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a resilience assertion for a service.

" + }, + "CreateInputSource":{ + "name":"CreateInputSource", + "http":{ + "method":"POST", + "requestUri":"/v2/create-input-source", + "responseCode":200 + }, + "input":{"shape":"CreateInputSourceRequest"}, + "output":{"shape":"CreateInputSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates an input source for a service.

" + }, + "CreatePolicy":{ + "name":"CreatePolicy", + "http":{ + "method":"POST", + "requestUri":"/v2/create-policy", + "responseCode":200 + }, + "input":{"shape":"CreatePolicyRequest"}, + "output":{"shape":"CreatePolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a resilience policy that defines availability and disaster recovery requirements.

" + }, + "CreateReport":{ + "name":"CreateReport", + "http":{ + "method":"POST", + "requestUri":"/v2/create-report", + "responseCode":200 + }, + "input":{"shape":"CreateReportRequest"}, + "output":{"shape":"CreateReportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

On-demand report creation. Idempotent — duplicate requests with same clientToken return existing result.

" + }, + "CreateService":{ + "name":"CreateService", + "http":{ + "method":"POST", + "requestUri":"/v2/create-service", + "responseCode":200 + }, + "input":{"shape":"CreateServiceRequest"}, + "output":{"shape":"CreateServiceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a service.

" + }, + "CreateServiceFunction":{ + "name":"CreateServiceFunction", + "http":{ + "method":"POST", + "requestUri":"/v2/create-service-function", + "responseCode":200 + }, + "input":{"shape":"CreateServiceFunctionRequest"}, + "output":{"shape":"CreateServiceFunctionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a service function within a service.

" + }, + "CreateServiceFunctionResources":{ + "name":"CreateServiceFunctionResources", + "http":{ + "method":"POST", + "requestUri":"/v2/create-service-function-resources", + "responseCode":200 + }, + "input":{"shape":"CreateServiceFunctionResourcesRequest"}, + "output":{"shape":"CreateServiceFunctionResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Associates resources with a service function.

" + }, + "CreateSystem":{ + "name":"CreateSystem", + "http":{ + "method":"POST", + "requestUri":"/v2/create-system", + "responseCode":200 + }, + "input":{"shape":"CreateSystemRequest"}, + "output":{"shape":"CreateSystemResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a system that represents a logical grouping of services.

" + }, + "CreateUserJourney":{ + "name":"CreateUserJourney", + "http":{ + "method":"POST", + "requestUri":"/v2/create-user-journey", + "responseCode":200 + }, + "input":{"shape":"CreateUserJourneyRequest"}, + "output":{"shape":"CreateUserJourneyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a user journey within a system.

" + }, + "DeleteAssertion":{ + "name":"DeleteAssertion", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-assertion", + "responseCode":200 + }, + "input":{"shape":"DeleteAssertionRequest"}, + "output":{"shape":"DeleteAssertionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a resilience assertion from a service.

" + }, + "DeleteInputSource":{ + "name":"DeleteInputSource", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-input-source", + "responseCode":200 + }, + "input":{"shape":"DeleteInputSourceRequest"}, + "output":{"shape":"DeleteInputSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes an input source.

" + }, + "DeletePolicy":{ + "name":"DeletePolicy", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-policy", + "responseCode":200 + }, + "input":{"shape":"DeletePolicyRequest"}, + "output":{"shape":"DeletePolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a resilience policy.

" + }, + "DeleteService":{ + "name":"DeleteService", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-service", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceRequest"}, + "output":{"shape":"DeleteServiceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a service.

" + }, + "DeleteServiceFunction":{ + "name":"DeleteServiceFunction", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-function", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceFunctionRequest"}, + "output":{"shape":"DeleteServiceFunctionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a service function.

" + }, + "DeleteServiceFunctionResources":{ + "name":"DeleteServiceFunctionResources", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-service-function-resources", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceFunctionResourcesRequest"}, + "output":{"shape":"DeleteServiceFunctionResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes resources from a service function.

" + }, + "DeleteSystem":{ + "name":"DeleteSystem", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-system", + "responseCode":200 + }, + "input":{"shape":"DeleteSystemRequest"}, + "output":{"shape":"DeleteSystemResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a system.

" + }, + "DeleteUserJourney":{ + "name":"DeleteUserJourney", + "http":{ + "method":"POST", + "requestUri":"/v2/delete-user-journey", + "responseCode":200 + }, + "input":{"shape":"DeleteUserJourneyRequest"}, + "output":{"shape":"DeleteUserJourneyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a user journey.

" + }, + "GetFailureModeFinding":{ + "name":"GetFailureModeFinding", + "http":{ + "method":"GET", + "requestUri":"/v2/get-failure-mode-finding", + "responseCode":200 + }, + "input":{"shape":"GetFailureModeFindingRequest"}, + "output":{"shape":"GetFailureModeFindingResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a finding by findingId.

", + "readonly":true + }, + "GetPolicy":{ + "name":"GetPolicy", + "http":{ + "method":"GET", + "requestUri":"/v2/get-policy", + "responseCode":200 + }, + "input":{"shape":"GetPolicyRequest"}, + "output":{"shape":"GetPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a resilience policy by ARN.

", + "readonly":true + }, + "GetService":{ + "name":"GetService", + "http":{ + "method":"GET", + "requestUri":"/v2/get-service", + "responseCode":200 + }, + "input":{"shape":"GetServiceRequest"}, + "output":{"shape":"GetServiceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a service by ARN.

", + "readonly":true + }, + "GetSystem":{ + "name":"GetSystem", + "http":{ + "method":"GET", + "requestUri":"/v2/get-system", + "responseCode":200 + }, + "input":{"shape":"GetSystemRequest"}, + "output":{"shape":"GetSystemResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a system by ARN.

", + "readonly":true + }, + "GetUserJourney":{ + "name":"GetUserJourney", + "http":{ + "method":"GET", + "requestUri":"/v2/get-user-journey", + "responseCode":200 + }, + "input":{"shape":"GetUserJourneyRequest"}, + "output":{"shape":"GetUserJourneyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a user journey.

", + "readonly":true + }, + "ImportApp":{ + "name":"ImportApp", + "http":{ + "method":"POST", + "requestUri":"/v2/import-app", + "responseCode":200 + }, + "input":{"shape":"ImportAppRequest"}, + "output":{"shape":"ImportAppResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Imports a V1 app into the V2 resource model, creating a service with the same name.

" + }, + "ImportPolicy":{ + "name":"ImportPolicy", + "http":{ + "method":"POST", + "requestUri":"/v2/import-policy", + "responseCode":200 + }, + "input":{"shape":"ImportPolicyRequest"}, + "output":{"shape":"ImportPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Imports a V1 policy into V2, mapping RTO/RPO values from V1 scenarios.

" + }, + "ListAssertions":{ + "name":"ListAssertions", + "http":{ + "method":"GET", + "requestUri":"/v2/list-assertions", + "responseCode":200 + }, + "input":{"shape":"ListAssertionsRequest"}, + "output":{"shape":"ListAssertionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists resilience assertions for a service.

", + "readonly":true + }, + "ListDependencies":{ + "name":"ListDependencies", + "http":{ + "method":"GET", + "requestUri":"/v2/list-dependencies", + "responseCode":200 + }, + "input":{"shape":"ListDependenciesRequest"}, + "output":{"shape":"ListDependenciesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists dependencies discovered for services.

", + "readonly":true + }, + "ListFailureModeAssessments":{ + "name":"ListFailureModeAssessments", + "http":{ + "method":"GET", + "requestUri":"/v2/list-failure-mode-assessments", + "responseCode":200 + }, + "input":{"shape":"ListFailureModeAssessmentsRequest"}, + "output":{"shape":"ListFailureModeAssessmentsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists failure mode assessments.

", + "readonly":true + }, + "ListFailureModeFindings":{ + "name":"ListFailureModeFindings", + "http":{ + "method":"GET", + "requestUri":"/v2/list-failure-mode-findings", + "responseCode":200 + }, + "input":{"shape":"ListFailureModeFindingsRequest"}, + "output":{"shape":"ListFailureModeFindingsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

List findings.

", + "readonly":true + }, + "ListInputSources":{ + "name":"ListInputSources", + "http":{ + "method":"GET", + "requestUri":"/v2/list-input-sources", + "responseCode":200 + }, + "input":{"shape":"ListInputSourcesRequest"}, + "output":{"shape":"ListInputSourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists input sources for a service.

", + "readonly":true + }, + "ListPolicies":{ + "name":"ListPolicies", + "http":{ + "method":"GET", + "requestUri":"/v2/list-policies", + "responseCode":200 + }, + "input":{"shape":"ListPoliciesRequest"}, + "output":{"shape":"ListPoliciesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists resilience policies.

", + "readonly":true + }, + "ListReports":{ + "name":"ListReports", + "http":{ + "method":"GET", + "requestUri":"/v2/list-reports", + "responseCode":200 + }, + "input":{"shape":"ListReportsRequest"}, + "output":{"shape":"ListReportsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

List reports for a service, or all reports owned by the account if serviceArn is not provided.

", + "readonly":true + }, + "ListResources":{ + "name":"ListResources", + "http":{ + "method":"GET", + "requestUri":"/v2/list-resources", + "responseCode":200 + }, + "input":{"shape":"ListResourcesRequest"}, + "output":{"shape":"ListResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

List resources.

", + "readonly":true + }, + "ListServiceEvents":{ + "name":"ListServiceEvents", + "http":{ + "method":"GET", + "requestUri":"/v2/list-service-events", + "responseCode":200 + }, + "input":{"shape":"ListServiceEventsRequest"}, + "output":{"shape":"ListServiceEventsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists events for a service.

", + "readonly":true + }, + "ListServiceFunctions":{ + "name":"ListServiceFunctions", + "http":{ + "method":"GET", + "requestUri":"/v2/list-functions", + "responseCode":200 + }, + "input":{"shape":"ListServiceFunctionsRequest"}, + "output":{"shape":"ListServiceFunctionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists service functions for a service.

", + "readonly":true + }, + "ListServiceTopologyEdges":{ + "name":"ListServiceTopologyEdges", + "http":{ + "method":"GET", + "requestUri":"/v2/list-service-topology-edges", + "responseCode":200 + }, + "input":{"shape":"ListServiceTopologyEdgesRequest"}, + "output":{"shape":"ListServiceTopologyEdgesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists topology edges for a service.

", + "readonly":true + }, + "ListServices":{ + "name":"ListServices", + "http":{ + "method":"GET", + "requestUri":"/v2/list-services", + "responseCode":200 + }, + "input":{"shape":"ListServicesRequest"}, + "output":{"shape":"ListServicesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists services.

", + "readonly":true + }, + "ListSystemEvents":{ + "name":"ListSystemEvents", + "http":{ + "method":"GET", + "requestUri":"/v2/list-system-events", + "responseCode":200 + }, + "input":{"shape":"ListSystemEventsRequest"}, + "output":{"shape":"ListSystemEventsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists events for a system.

", + "readonly":true + }, + "ListSystems":{ + "name":"ListSystems", + "http":{ + "method":"GET", + "requestUri":"/v2/list-systems", + "responseCode":200 + }, + "input":{"shape":"ListSystemsRequest"}, + "output":{"shape":"ListSystemsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists systems.

", + "readonly":true + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/v2/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the tags for a resource.

", + "readonly":true + }, + "ListUserJourneys":{ + "name":"ListUserJourneys", + "http":{ + "method":"GET", + "requestUri":"/v2/list-user-journeys", + "responseCode":200 + }, + "input":{"shape":"ListUserJourneysRequest"}, + "output":{"shape":"ListUserJourneysResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists user journeys for a system.

", + "readonly":true + }, + "StartFailureModeAssessment":{ + "name":"StartFailureModeAssessment", + "http":{ + "method":"POST", + "requestUri":"/v2/start-failure-mode-assessment", + "responseCode":200 + }, + "input":{"shape":"StartFailureModeAssessmentRequest"}, + "output":{"shape":"StartFailureModeAssessmentResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Start a failure mode assessment.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/v2/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Adds tags to a resource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/v2/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes tags from a resource.

", + "idempotent":true + }, + "UpdateAssertion":{ + "name":"UpdateAssertion", + "http":{ + "method":"POST", + "requestUri":"/v2/update-assertion", + "responseCode":200 + }, + "input":{"shape":"UpdateAssertionRequest"}, + "output":{"shape":"UpdateAssertionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a resilience assertion.

" + }, + "UpdateDependency":{ + "name":"UpdateDependency", + "http":{ + "method":"POST", + "requestUri":"/v2/update-dependency", + "responseCode":200 + }, + "input":{"shape":"UpdateDependencyRequest"}, + "output":{"shape":"UpdateDependencyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a dependency classification.

" + }, + "UpdateFailureModeFinding":{ + "name":"UpdateFailureModeFinding", + "http":{ + "method":"POST", + "requestUri":"/v2/update-failure-mode-finding", + "responseCode":200 + }, + "input":{"shape":"UpdateFailureModeFindingRequest"}, + "output":{"shape":"UpdateFailureModeFindingResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing finding.

" + }, + "UpdatePolicy":{ + "name":"UpdatePolicy", + "http":{ + "method":"POST", + "requestUri":"/v2/update-policy", + "responseCode":200 + }, + "input":{"shape":"UpdatePolicyRequest"}, + "output":{"shape":"UpdatePolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing resilience policy.

" + }, + "UpdateService":{ + "name":"UpdateService", + "http":{ + "method":"POST", + "requestUri":"/v2/update-service", + "responseCode":200 + }, + "input":{"shape":"UpdateServiceRequest"}, + "output":{"shape":"UpdateServiceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing service.

" + }, + "UpdateServiceFunction":{ + "name":"UpdateServiceFunction", + "http":{ + "method":"POST", + "requestUri":"/v2/update-function", + "responseCode":200 + }, + "input":{"shape":"UpdateServiceFunctionRequest"}, + "output":{"shape":"UpdateServiceFunctionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a service function.

" + }, + "UpdateSystem":{ + "name":"UpdateSystem", + "http":{ + "method":"POST", + "requestUri":"/v2/update-system", + "responseCode":200 + }, + "input":{"shape":"UpdateSystemRequest"}, + "output":{"shape":"UpdateSystemResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing system.

" + }, + "UpdateUserJourney":{ + "name":"UpdateUserJourney", + "http":{ + "method":"POST", + "requestUri":"/v2/update-user-journey", + "responseCode":200 + }, + "input":{"shape":"UpdateUserJourneyRequest"}, + "output":{"shape":"UpdateUserJourneyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing user journey.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Access denied — caller lacks required permissions.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"[0-9]{12}" + }, + "Achievability":{ + "type":"structure", + "members":{ + "availabilitySlo":{ + "shape":"AchievabilityStatus", + "documentation":"

The achievability status of the availability SLO target for the service.

" + }, + "multiAzRtoRpo":{ + "shape":"AchievabilityStatus", + "documentation":"

The achievability status of the multi-AZ RTO and RPO targets for the service.

" + }, + "multiRegionRtoRpo":{ + "shape":"AchievabilityStatus", + "documentation":"

The achievability status of the multi-Region RTO and RPO targets for the service.

" + } + }, + "documentation":"

Describes the achievability status of a service's resilience targets based on the most recent assessment.

" + }, + "AchievabilityStatus":{ + "type":"string", + "enum":[ + "ACHIEVABLE", + "NOT_ACHIEVABLE" + ] + }, + "ActorType":{ + "type":"string", + "enum":[ + "USER", + "SYSTEM" + ] + }, + "Arn":{ + "type":"string", + "documentation":"

ARN identifier.

", + "min":31, + "pattern":"arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}" + }, + "ArnList":{ + "type":"list", + "member":{"shape":"Arn"} + }, + "Assertion":{ + "type":"structure", + "required":[ + "serviceArn", + "assertionId", + "text", + "source" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "assertionId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the assertion.

" + }, + "text":{ + "shape":"AssertionText", + "documentation":"

The text content of the assertion.

" + }, + "source":{ + "shape":"AssertionSource", + "documentation":"

The source of the assertion, indicating whether it was AI-generated or created by a user.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the assertion was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the assertion was last updated.

" + } + }, + "documentation":"

Represents a resilience assertion for a service.

" + }, + "AssertionCreatedMetadata":{ + "type":"structure", + "members":{ + "assertionId":{ + "shape":"String", + "documentation":"

The unique identifier of the created assertion.

" + }, + "assertionName":{ + "shape":"String", + "documentation":"

The name of the created assertion.

" + } + }, + "documentation":"

Metadata for an assertion created event.

" + }, + "AssertionDeletedMetadata":{ + "type":"structure", + "members":{ + "assertionId":{ + "shape":"String", + "documentation":"

The unique identifier of the deleted assertion.

" + }, + "assertionName":{ + "shape":"String", + "documentation":"

The name of the deleted assertion.

" + } + }, + "documentation":"

Metadata for an assertion deleted event.

" + }, + "AssertionList":{ + "type":"list", + "member":{"shape":"Assertion"} + }, + "AssertionSource":{ + "type":"string", + "enum":[ + "AI_GENERATED", + "USER" + ] + }, + "AssertionText":{ + "type":"string", + "max":1000, + "min":1 + }, + "AssertionUpdatedMetadata":{ + "type":"structure", + "members":{ + "assertionId":{ + "shape":"String", + "documentation":"

The unique identifier of the updated assertion.

" + }, + "assertionName":{ + "shape":"String", + "documentation":"

The name of the updated assertion.

" + } + }, + "documentation":"

Metadata for an assertion updated event.

" + }, + "AssessmentCost":{ + "type":"structure", + "members":{ + "amount":{ + "shape":"Double", + "documentation":"

The cost amount for the assessment.

" + }, + "currency":{ + "shape":"CostCurrency", + "documentation":"

The currency of the assessment cost.

" + } + }, + "documentation":"

Represents the cost of running a failure mode assessment.

" + }, + "AssessmentErrorCode":{ + "type":"string", + "enum":[ + "INVALID_PERMISSIONS", + "CMK_ACCESS_DENIED", + "AGENT_ERROR", + "INTERNAL_ERROR", + "DESIGN_FILE_ACCESS_DENIED" + ] + }, + "AssessmentStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "PENDING", + "IN_PROGRESS", + "FAILED", + "SUCCESS" + ] + }, + "AssessmentStep":{ + "type":"string", + "enum":[ + "TOPOLOGY_ENHANCEMENT", + "SERVICE_FUNCTION_GENERATION", + "RESILIENCE_ASSESSMENT" + ] + }, + "AssessmentSummary":{ + "type":"structure", + "required":[ + "assessmentId", + "serviceArn" + ], + "members":{ + "assessmentId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the assessment.

" + }, + "serviceArn":{"shape":"Arn"}, + "assessmentStatus":{ + "shape":"AssessmentStatus", + "documentation":"

The current status of the assessment.

" + }, + "assessmentStep":{ + "shape":"AssessmentStep", + "documentation":"

The current step of the assessment process.

" + }, + "totalFindings":{ + "shape":"Integer", + "documentation":"

The total number of findings generated by the assessment.

" + }, + "startedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the assessment started.

" + }, + "endedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the assessment ended.

" + }, + "errorMessage":{ + "shape":"String", + "documentation":"

A message describing the error if the assessment failed.

" + }, + "errorCode":{ + "shape":"AssessmentErrorCode", + "documentation":"

The error code if the assessment failed.

" + }, + "assessmentCost":{ + "shape":"AssessmentCost", + "documentation":"

The cost of the assessment.

" + }, + "billableAssessmentUnitCount":{ + "shape":"Integer", + "documentation":"

The number of billable assessment units consumed by the assessment.

" + }, + "achievability":{ + "shape":"Achievability", + "documentation":"

The achievability results from the assessment.

" + } + }, + "documentation":"

Contains summary information about a failure mode assessment.

" + }, + "AssessmentSummaryList":{ + "type":"list", + "member":{"shape":"AssessmentSummary"} + }, + "AssociatedSystem":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{"shape":"Arn"}, + "systemName":{"shape":"EntityName"}, + "userJourneyIds":{ + "shape":"UserJourneyIdList", + "documentation":"

The list of user journey identifiers that associate this system with the service.

" + } + }, + "documentation":"

Represents a system associated with a service.

" + }, + "AssociatedSystemList":{ + "type":"list", + "member":{"shape":"AssociatedSystem"}, + "max":20, + "min":0 + }, + "AvailabilitySlo":{ + "type":"structure", + "members":{ + "target":{ + "shape":"AvailabilitySloTargetDouble", + "documentation":"

The target availability percentage, expressed as a value between 0 and 100.

" + } + }, + "documentation":"

Defines the availability service level objective (SLO) for a resilience policy.

" + }, + "AvailabilitySloTargetDouble":{ + "type":"double", + "box":true, + "max":100, + "min":0 + }, + "AwsAccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"\\d{12}" + }, + "AwsRegion":{ + "type":"string", + "min":6, + "pattern":"[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]" + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ClientToken":{ + "type":"string", + "documentation":"

Idempotency token.

", + "max":63, + "min":1, + "pattern":"[A-Za-z0-9_.-]{0,63}" + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Conflict — resource already exists.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CostCurrency":{ + "type":"string", + "enum":["USD"] + }, + "CreateAssertionRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "text" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "text":{ + "shape":"AssertionText", + "documentation":"

The text content of the assertion.

" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateAssertionResponse":{ + "type":"structure", + "required":["assertion"], + "members":{ + "assertion":{ + "shape":"Assertion", + "documentation":"

The created assertion.

" + } + } + }, + "CreateInputSourceRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "resourceConfiguration" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "resourceConfiguration":{"shape":"ResourceConfiguration"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateInputSourceResponse":{ + "type":"structure", + "required":[ + "serviceArn", + "inputSourceId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "inputSourceId":{ + "shape":"InputSourceId", + "documentation":"

The unique identifier assigned to the created input source.

" + } + } + }, + "CreatePolicyRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"EntityName"}, + "description":{"shape":"LongDescription"}, + "availabilitySlo":{ + "shape":"AvailabilitySlo", + "documentation":"

The availability SLO for the resilience policy.

" + }, + "multiAz":{ + "shape":"MultiAzTargets", + "documentation":"

The multi-AZ disaster recovery targets for the resilience policy.

" + }, + "multiRegion":{ + "shape":"MultiRegionTargets", + "documentation":"

The multi-Region disaster recovery targets for the resilience policy.

" + }, + "dataRecovery":{ + "shape":"DataRecoveryTargets", + "documentation":"

The data recovery targets for the resilience policy.

" + }, + "kmsKeyId":{"shape":"KmsKeyId"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreatePolicyResponse":{ + "type":"structure", + "required":["policy"], + "members":{ + "policy":{ + "shape":"Policy", + "documentation":"

The created resilience policy.

" + } + } + }, + "CreateReportRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "reportType" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "reportType":{ + "shape":"ReportType", + "documentation":"

The type of report to generate.

" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateReportResponse":{ + "type":"structure", + "required":["reportGenerationResult"], + "members":{ + "reportGenerationResult":{ + "shape":"ReportGenerationResult", + "documentation":"

The result of the report generation request.

" + } + } + }, + "CreateServiceFunctionRequest":{ + "type":"structure", + "required":[ + "name", + "serviceArn", + "criticality" + ], + "members":{ + "name":{"shape":"EntityLabel"}, + "serviceArn":{"shape":"Arn"}, + "description":{"shape":"EntityDescription"}, + "criticality":{ + "shape":"ServiceFunctionCriticality", + "documentation":"

The criticality level of the service function.

" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateServiceFunctionResourcesRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "serviceFunctionId", + "resources" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the service function to associate resources with.

" + }, + "resources":{ + "shape":"ResourceList", + "documentation":"

The list of resources to associate with the service function.

" + } + } + }, + "CreateServiceFunctionResourcesResponse":{ + "type":"structure", + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the service function.

" + }, + "resources":{ + "shape":"ResourceList", + "documentation":"

The list of resources that were associated.

" + } + } + }, + "CreateServiceFunctionResponse":{ + "type":"structure", + "required":["serviceFunction"], + "members":{ + "serviceFunction":{ + "shape":"ServiceFunction", + "documentation":"

The created service function.

" + } + } + }, + "CreateServiceRequest":{ + "type":"structure", + "required":[ + "name", + "regions", + "permissionModel" + ], + "members":{ + "name":{"shape":"EntityName"}, + "description":{"shape":"LongDescription"}, + "associatedSystems":{ + "shape":"AssociatedSystemList", + "documentation":"

The systems to associate with the service.

" + }, + "policyArn":{"shape":"Arn"}, + "regions":{ + "shape":"RegionList", + "documentation":"

The AWS Regions where the service operates.

" + }, + "permissionModel":{ + "shape":"PermissionModel", + "documentation":"

The permission model for the service.

" + }, + "dependencyDiscovery":{"shape":"DependencyDiscoveryInput"}, + "reportConfiguration":{"shape":"ServiceReportConfiguration"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateServiceResponse":{ + "type":"structure", + "required":["service"], + "members":{ + "service":{ + "shape":"Service", + "documentation":"

The created service.

" + } + } + }, + "CreateSystemRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"EntityName"}, + "description":{"shape":"EntityDescription"}, + "sharingEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether cross-account sharing is enabled for the system.

" + }, + "kmsKeyId":{"shape":"KmsKeyId"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateSystemResponse":{ + "type":"structure", + "required":["system"], + "members":{ + "system":{ + "shape":"System", + "documentation":"

The created system.

" + } + } + }, + "CreateUserJourneyRequest":{ + "type":"structure", + "required":[ + "systemArn", + "name" + ], + "members":{ + "systemArn":{"shape":"Arn"}, + "name":{"shape":"EntityLabel"}, + "description":{"shape":"EntityDescription"}, + "policyArn":{"shape":"Arn"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateUserJourneyResponse":{ + "type":"structure", + "required":["userJourney"], + "members":{ + "userJourney":{ + "shape":"UserJourney", + "documentation":"

The created user journey.

" + } + } + }, + "CrossAccountRole":{ + "type":"structure", + "required":["crossAccountRoleArn"], + "members":{ + "crossAccountRoleArn":{"shape":"IamRoleArn"}, + "externalId":{ + "shape":"CrossAccountRoleExternalIdString", + "documentation":"

The external ID used for assuming the cross-account role.

" + } + }, + "documentation":"

Specifies a cross-account IAM role ARN and optional external ID.

" + }, + "CrossAccountRoleExternalIdString":{ + "type":"string", + "max":1224, + "min":2 + }, + "CrossAccountRoleList":{ + "type":"list", + "member":{"shape":"CrossAccountRole"}, + "max":5, + "min":0 + }, + "DataRecoveryTargets":{ + "type":"structure", + "members":{ + "timeBetweenBackupsInMinutes":{ + "shape":"DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger", + "documentation":"

The target time between backups, in minutes.

" + } + }, + "documentation":"

Defines data recovery targets for a resilience policy.

" + }, + "DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "DeleteAssertionRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "assertionId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "assertionId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the assertion to delete.

" + } + } + }, + "DeleteAssertionResponse":{ + "type":"structure", + "members":{ + "assertionId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the deleted assertion.

" + } + } + }, + "DeleteInputSourceRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "inputSourceId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "inputSourceId":{ + "shape":"InputSourceId", + "documentation":"

The identifier of the input source to delete.

" + } + } + }, + "DeleteInputSourceResponse":{ + "type":"structure", + "required":[ + "serviceArn", + "inputSourceId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "inputSourceId":{ + "shape":"InputSourceId", + "documentation":"

The identifier of the deleted input source.

" + } + } + }, + "DeletePolicyRequest":{ + "type":"structure", + "required":["policyArn"], + "members":{ + "policyArn":{"shape":"Arn"} + } + }, + "DeletePolicyResponse":{ + "type":"structure", + "required":["policyArn"], + "members":{ + "policyArn":{"shape":"Arn"} + } + }, + "DeleteServiceFunctionRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "serviceFunctionId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the service function to delete.

" + } + } + }, + "DeleteServiceFunctionResourcesRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "serviceFunctionId", + "resources" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the service function to remove resources from.

" + }, + "resources":{ + "shape":"ResourceList", + "documentation":"

The list of resources to remove from the service function.

" + } + } + }, + "DeleteServiceFunctionResourcesResponse":{ + "type":"structure", + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the service function.

" + }, + "resources":{ + "shape":"ResourceList", + "documentation":"

The list of resources that were removed.

" + } + } + }, + "DeleteServiceFunctionResponse":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the deleted service function.

" + } + } + }, + "DeleteServiceRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{"shape":"Arn"} + } + }, + "DeleteServiceResponse":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{"shape":"Arn"} + } + }, + "DeleteSystemRequest":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{"shape":"Arn"} + } + }, + "DeleteSystemResponse":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{"shape":"Arn"} + } + }, + "DeleteUserJourneyRequest":{ + "type":"structure", + "required":[ + "systemArn", + "userJourneyId" + ], + "members":{ + "systemArn":{"shape":"Arn"}, + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

The identifier of the user journey to delete.

" + } + } + }, + "DeleteUserJourneyResponse":{ + "type":"structure", + "required":["userJourneyId"], + "members":{ + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

The identifier of the deleted user journey.

" + } + } + }, + "DependencyCriticality":{ + "type":"string", + "enum":[ + "HARD", + "SOFT", + "UNKNOWN" + ] + }, + "DependencyDiscoveryConfig":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"DependencyDiscoveryStatus", + "documentation":"

The current status of dependency discovery.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when dependency discovery was last updated.

" + } + }, + "documentation":"

Configuration for dependency discovery on a service.

" + }, + "DependencyDiscoveryInput":{ + "type":"string", + "documentation":"

Caller-settable values for dependency discovery. INITIALIZING is system-managed.

", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "DependencyDiscoveryStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "INITIALIZING", + "DISABLED" + ] + }, + "DependencySummary":{ + "type":"structure", + "required":[ + "dependencyId", + "serviceArn", + "dependencyName", + "dnsName", + "location", + "lastDetectedTime", + "sourceRegions", + "queryRange", + "criticality" + ], + "members":{ + "dependencyId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the dependency.

" + }, + "serviceArn":{"shape":"Arn"}, + "dependencyName":{ + "shape":"String", + "documentation":"

The name of the dependency.

" + }, + "dnsName":{ + "shape":"String", + "documentation":"

The DNS name associated with the dependency.

" + }, + "location":{ + "shape":"String", + "documentation":"

The location of the dependency.

" + }, + "lastDetectedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dependency was last detected.

" + }, + "sourceRegions":{ + "shape":"RegionList", + "documentation":"

The source Regions from which the dependency was detected.

" + }, + "provider":{ + "shape":"String", + "documentation":"

The provider of the dependency.

" + }, + "queryRange":{ + "shape":"QueryRange", + "documentation":"

The query range data for the dependency.

" + }, + "criticality":{ + "shape":"DependencyCriticality", + "documentation":"

The criticality level of the dependency.

" + }, + "comment":{ + "shape":"String", + "documentation":"

A user-provided comment about the dependency.

" + } + }, + "documentation":"

Contains summary information about a discovered dependency.

" + }, + "DependencySummaryList":{ + "type":"list", + "member":{"shape":"DependencySummary"} + }, + "DisasterRecoverySource":{ + "type":"structure", + "members":{ + "value":{ + "shape":"String", + "documentation":"

The disaster recovery approach value.

" + }, + "policyName":{"shape":"EntityName"}, + "source":{ + "shape":"PolicyValueSource", + "documentation":"

Indicates whether the value comes from the service's own account or a cross-account policy.

" + } + }, + "documentation":"

Contains the effective disaster recovery approach value for a service.

" + }, + "Double":{ + "type":"double", + "box":true + }, + "EdgePropertyList":{ + "type":"list", + "member":{"shape":"EdgePropertySummary"}, + "max":3, + "min":0 + }, + "EdgePropertySummary":{ + "type":"structure", + "members":{ + "topologyType":{ + "shape":"TopologyType", + "documentation":"

The topology type of the edge.

" + }, + "label":{ + "shape":"String", + "documentation":"

Human-readable relationship description. Only present for LLM-inferred edges.

" + } + }, + "documentation":"

Contains property information for a service topology edge.

" + }, + "EffectivePolicyValues":{ + "type":"structure", + "members":{ + "availabilitySlo":{ + "shape":"SloSource", + "documentation":"

The effective availability SLO value for the service.

" + }, + "multiAzRto":{ + "shape":"TargetSource", + "documentation":"

The effective multi-AZ RTO value for the service, in minutes.

" + }, + "multiAzRpo":{ + "shape":"TargetSource", + "documentation":"

The effective multi-AZ RPO value for the service, in minutes.

" + }, + "multiAzDrApproach":{ + "shape":"DisasterRecoverySource", + "documentation":"

The effective multi-AZ disaster recovery approach for the service.

" + }, + "multiRegionRto":{ + "shape":"TargetSource", + "documentation":"

The effective multi-Region RTO value for the service, in minutes.

" + }, + "multiRegionRpo":{ + "shape":"TargetSource", + "documentation":"

The effective multi-Region RPO value for the service, in minutes.

" + }, + "multiRegionDrApproach":{ + "shape":"DisasterRecoverySource", + "documentation":"

The effective multi-Region disaster recovery approach for the service.

" + }, + "dataRecoveryTimeBetweenBackups":{ + "shape":"TargetSource", + "documentation":"

The effective data recovery time between backups value for the service.

" + } + }, + "documentation":"

Contains the effective resilience policy values for a service.

" + }, + "EksNamespace":{ + "type":"string", + "documentation":"

Kubernetes namespace name (RFC 1123 Label).

", + "max":63, + "min":1, + "pattern":"[a-z0-9]([-a-z0-9]*[a-z0-9])?" + }, + "EksSource":{ + "type":"structure", + "required":[ + "clusterArn", + "namespaces" + ], + "members":{ + "clusterArn":{"shape":"Arn"}, + "namespaces":{ + "shape":"EksSourceNamespacesList", + "documentation":"

The list of Kubernetes namespaces within the EKS cluster.

" + } + }, + "documentation":"

Defines an Amazon EKS cluster and its namespaces as an input source for resource discovery.

" + }, + "EksSourceNamespacesList":{ + "type":"list", + "member":{"shape":"EksNamespace"}, + "max":10, + "min":1 + }, + "EntityDescription":{ + "type":"string", + "documentation":"

Resource description.

", + "max":500, + "min":0 + }, + "EntityId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"\\S{1,255}" + }, + "EntityLabel":{ + "type":"string", + "documentation":"

Entity label (not part of ARN — spaces allowed).

", + "max":60, + "min":2, + "pattern":"[A-Za-z0-9][A-Za-z0-9 _\\-]{1,59}" + }, + "EntityName":{ + "type":"string", + "documentation":"

Resource name (used in ARN — no spaces allowed).

", + "max":60, + "min":2, + "pattern":"[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}" + }, + "EventActor":{ + "type":"structure", + "required":[ + "type", + "principalId" + ], + "members":{ + "type":{ + "shape":"ActorType", + "documentation":"

The type of actor, either USER or SYSTEM.

" + }, + "principalId":{ + "shape":"String", + "documentation":"

The principal ID of the actor.

" + }, + "accountId":{ + "shape":"String", + "documentation":"

The AWS account ID of the actor.

" + }, + "userName":{ + "shape":"String", + "documentation":"

The user name of the actor.

" + } + }, + "documentation":"

Identifies the actor that triggered an event.

" + }, + "FailedReportOutput":{ + "type":"structure", + "required":["errorCode"], + "members":{ + "errorCode":{ + "shape":"ReportGenerationErrorCode", + "documentation":"

The error code describing why the report generation failed.

" + }, + "errorMessage":{ + "shape":"String", + "documentation":"

The error message describing why the report generation failed.

" + } + }, + "documentation":"

Details when report generation failed.

" + }, + "FailureCategory":{ + "type":"string", + "enum":[ + "SHARED_FATE", + "EXCESSIVE_LOAD", + "EXCESSIVE_LATENCY", + "MISCONFIGURATION_AND_BUGS", + "SINGLE_POINT_OF_FAILURE" + ] + }, + "Finding":{ + "type":"structure", + "members":{ + "findingId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the finding.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the finding.

" + }, + "description":{"shape":"EntityDescription"}, + "failureCategory":{ + "shape":"FailureCategory", + "documentation":"

The failure category of the finding.

" + }, + "status":{ + "shape":"FindingStatus", + "documentation":"

The current status of the finding.

" + }, + "reasoning":{ + "shape":"String", + "documentation":"

The reasoning behind the finding.

" + }, + "comment":{ + "shape":"FindingCommentString", + "documentation":"

A user-provided comment about the finding.

" + }, + "severity":{ + "shape":"FindingSeverity", + "documentation":"

The severity of the finding.

" + }, + "serviceFunctions":{ + "shape":"FunctionsList", + "documentation":"

The service functions associated with the finding.

" + }, + "policyComponent":{ + "shape":"PolicyComponent", + "documentation":"

The policy component associated with the finding.

" + }, + "infrastructureAndCodeRecommendations":{ + "shape":"InfrastructureAndCodeRecommendationsList", + "documentation":"

Infrastructure and code recommendations to address the finding.

" + }, + "observabilityRecommendations":{ + "shape":"ObservabilityRecommendationsList", + "documentation":"

Observability recommendations to address the finding.

" + }, + "testingRecommendations":{ + "shape":"TestingRecommendationsList", + "documentation":"

Testing recommendations to address the finding.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the finding was last updated.

" + } + }, + "documentation":"

Represents a resilience finding from a failure mode assessment.

" + }, + "FindingCommentString":{ + "type":"string", + "max":2048, + "min":0 + }, + "FindingSeverity":{ + "type":"string", + "enum":[ + "LOW", + "MEDIUM", + "HIGH" + ] + }, + "FindingStatus":{ + "type":"string", + "enum":[ + "OPEN", + "RESOLVED", + "IRRELEVANT" + ] + }, + "FindingSummary":{ + "type":"structure", + "members":{ + "serviceArn":{"shape":"Arn"}, + "findingId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the finding.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the finding.

" + }, + "description":{"shape":"EntityDescription"}, + "failureCategory":{ + "shape":"FailureCategory", + "documentation":"

The failure category of the finding.

" + }, + "severity":{ + "shape":"FindingSeverity", + "documentation":"

The severity of the finding.

" + }, + "status":{ + "shape":"FindingStatus", + "documentation":"

The current status of the finding.

" + }, + "policyComponent":{ + "shape":"PolicyComponent", + "documentation":"

The policy component associated with the finding.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the finding was last updated.

" + } + }, + "documentation":"

Contains summary information about a finding.

" + }, + "FindingsList":{ + "type":"list", + "member":{"shape":"FindingSummary"} + }, + "FunctionsList":{ + "type":"list", + "member":{"shape":"EntityId"}, + "max":20, + "min":0 + }, + "GetFailureModeFindingRequest":{ + "type":"structure", + "required":[ + "findingId", + "serviceArn" + ], + "members":{ + "findingId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the finding to retrieve.

", + "location":"querystring", + "locationName":"findingId" + }, + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + } + } + }, + "GetFailureModeFindingResponse":{ + "type":"structure", + "members":{ + "finding":{ + "shape":"Finding", + "documentation":"

The requested finding.

" + } + } + }, + "GetPolicyRequest":{ + "type":"structure", + "required":["policyArn"], + "members":{ + "policyArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"policyArn" + } + } + }, + "GetPolicyResponse":{ + "type":"structure", + "required":["policy"], + "members":{ + "policy":{ + "shape":"Policy", + "documentation":"

The requested resilience policy.

" + } + } + }, + "GetServiceRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + } + } + }, + "GetServiceResponse":{ + "type":"structure", + "required":["service"], + "members":{ + "service":{ + "shape":"Service", + "documentation":"

The requested service.

" + } + } + }, + "GetSystemRequest":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"systemArn" + } + } + }, + "GetSystemResponse":{ + "type":"structure", + "required":["system"], + "members":{ + "system":{ + "shape":"System", + "documentation":"

The requested system.

" + } + } + }, + "GetUserJourneyRequest":{ + "type":"structure", + "required":[ + "systemArn", + "userJourneyId" + ], + "members":{ + "systemArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"systemArn" + }, + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

The identifier of the user journey to retrieve.

", + "location":"querystring", + "locationName":"userJourneyId" + } + } + }, + "GetUserJourneyResponse":{ + "type":"structure", + "required":["userJourney"], + "members":{ + "userJourney":{ + "shape":"UserJourney", + "documentation":"

The requested user journey.

" + } + } + }, + "IamRoleArn":{ + "type":"string", + "documentation":"

ARN of the IAM Role for the profile. Null if the permission profile is the 'Admin' profile.

", + "min":32, + "pattern":"arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role/(([^/][!-~]+/){1,511})?[A-Za-z0-9_+=,.@-]{1,64}" + }, + "IamRoleName":{ + "type":"string", + "documentation":"

IAM role name (supports up to 64 characters per IAM limits).

", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9_+=,.@\\-]{1,64}" + }, + "ImportAppRequest":{ + "type":"structure", + "required":["v1AppArn"], + "members":{ + "v1AppArn":{"shape":"Arn"}, + "policyArn":{"shape":"Arn"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "skipManuallyAddedResources":{ + "shape":"Boolean", + "documentation":"

Whether to skip manually added resources during import.

" + }, + "associatedSystems":{ + "shape":"AssociatedSystemList", + "documentation":"

The systems to associate with the imported service.

" + }, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "ImportAppResponse":{ + "type":"structure", + "required":["service"], + "members":{ + "service":{ + "shape":"Service", + "documentation":"

The imported service.

" + } + } + }, + "ImportPolicyRequest":{ + "type":"structure", + "required":["v1PolicyArn"], + "members":{ + "v1PolicyArn":{"shape":"Arn"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "availabilitySlo":{ + "shape":"AvailabilitySlo", + "documentation":"

The availability SLO to set on the imported policy.

" + }, + "multiAzDisasterRecoveryApproach":{ + "shape":"MultiAzDisasterRecoveryApproach", + "documentation":"

The multi-AZ disaster recovery approach for the imported policy.

" + }, + "multiRegionDisasterRecoveryApproach":{ + "shape":"MultiRegionDisasterRecoveryApproach", + "documentation":"

The multi-Region disaster recovery approach for the imported policy.

" + }, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "ImportPolicyResponse":{ + "type":"structure", + "required":["policy"], + "members":{ + "policy":{ + "shape":"Policy", + "documentation":"

The imported policy.

" + } + } + }, + "InfrastructureAndCodeRecommendation":{ + "type":"structure", + "members":{ + "suggestedChanges":{ + "shape":"SuggestedChangesList", + "documentation":"

The list of suggested changes.

" + } + }, + "documentation":"

An infrastructure and code recommendation to address a finding.

" + }, + "InfrastructureAndCodeRecommendationsList":{ + "type":"list", + "member":{"shape":"InfrastructureAndCodeRecommendation"}, + "max":5, + "min":0 + }, + "InputSource":{ + "type":"structure", + "required":[ + "identifier", + "type" + ], + "members":{ + "identifier":{ + "shape":"String", + "documentation":"

The identifier of the input source.

" + }, + "type":{ + "shape":"InputSourceType", + "documentation":"

The type of the input source.

" + } + }, + "documentation":"

Identifies an input source by its identifier and type.

" + }, + "InputSourceId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"\\S{1,255}" + }, + "InputSourceSummary":{ + "type":"structure", + "required":["inputSourceId"], + "members":{ + "inputSourceId":{ + "shape":"InputSourceId", + "documentation":"

The unique identifier of the input source.

" + }, + "type":{ + "shape":"InputSourceType", + "documentation":"

The type of the input source.

" + }, + "resourceTags":{ + "shape":"ResourceTagList", + "documentation":"

The resource tags used for discovery, if this input source uses tags.

" + }, + "cfnStackArn":{"shape":"Arn"}, + "tfStateFileUrl":{"shape":"S3Url"}, + "eks":{ + "shape":"EksSource", + "documentation":"

The Amazon EKS configuration, if this input source uses EKS.

" + }, + "designFileS3Url":{"shape":"S3Url"}, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the input source was created.

" + } + }, + "documentation":"

Contains summary information about an input source for a service.

" + }, + "InputSourceSummaryList":{ + "type":"list", + "member":{"shape":"InputSourceSummary"} + }, + "InputSourceType":{ + "type":"string", + "enum":[ + "CFN_STACK", + "TAGS", + "EKS", + "TERRAFORM", + "DESIGN_FILE", + "MONITORING" + ] + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Internal service error.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "KmsKeyId":{ + "type":"string", + "documentation":"

KMS key identifier — accepts key ID, key ARN, alias name, or alias ARN.

", + "max":2048, + "min":1 + }, + "ListAssertionsRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "source":{ + "shape":"AssertionSource", + "documentation":"

Filter assertions by source type.

", + "location":"querystring", + "locationName":"source" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAssertionsResponse":{ + "type":"structure", + "required":["assertions"], + "members":{ + "assertions":{ + "shape":"AssertionList", + "documentation":"

The list of assertions.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDependenciesRequest":{ + "type":"structure", + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "queryRangeStartTime":{ + "shape":"Timestamp", + "documentation":"

The start time for the dependency query range.

", + "location":"querystring", + "locationName":"queryRangeStartTime" + }, + "queryRangeEndTime":{ + "shape":"Timestamp", + "documentation":"

The end time for the dependency query range.

", + "location":"querystring", + "locationName":"queryRangeEndTime" + }, + "queryRangeGranularity":{ + "shape":"QueryGranularity", + "documentation":"

The granularity for the dependency query range.

", + "location":"querystring", + "locationName":"queryRangeGranularity" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDependenciesResponse":{ + "type":"structure", + "required":["dependencySummaries"], + "members":{ + "dependencySummaries":{ + "shape":"DependencySummaryList", + "documentation":"

The list of dependency summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListFailureModeAssessmentsRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListFailureModeAssessmentsResponse":{ + "type":"structure", + "required":["assessmentSummaries"], + "members":{ + "assessmentSummaries":{ + "shape":"AssessmentSummaryList", + "documentation":"

The list of assessment summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListFailureModeFindingsRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "severity":{ + "shape":"FindingSeverity", + "documentation":"

Filter findings by severity.

", + "location":"querystring", + "locationName":"severity" + }, + "failureCategory":{ + "shape":"FailureCategory", + "documentation":"

Filter findings by failure category.

", + "location":"querystring", + "locationName":"failureCategory" + }, + "status":{ + "shape":"FindingStatus", + "documentation":"

Filter findings by status.

", + "location":"querystring", + "locationName":"status" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListFailureModeFindingsResponse":{ + "type":"structure", + "required":["findingsSummary"], + "members":{ + "findingsSummary":{ + "shape":"FindingsList", + "documentation":"

The list of finding summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListInputSourcesRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "type":{ + "shape":"InputSourceType", + "documentation":"

Filter input sources by type.

", + "location":"querystring", + "locationName":"type" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListInputSourcesResponse":{ + "type":"structure", + "required":["inputSourceSummaries"], + "members":{ + "inputSourceSummaries":{ + "shape":"InputSourceSummaryList", + "documentation":"

The list of input source summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListPoliciesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListPoliciesResponse":{ + "type":"structure", + "required":["policySummaries"], + "members":{ + "policySummaries":{ + "shape":"PolicySummaryList", + "documentation":"

The list of policy summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListReportsRequest":{ + "type":"structure", + "members":{ + "serviceArn":{ + "shape":"Arn", + "documentation":"

Optional. If not provided, lists all reports owned by the account.

", + "location":"querystring", + "locationName":"serviceArn" + }, + "reportType":{ + "shape":"ReportType", + "documentation":"

Filter reports by type.

", + "location":"querystring", + "locationName":"reportType" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListReportsResponse":{ + "type":"structure", + "required":["reportGenerationResults"], + "members":{ + "reportGenerationResults":{ + "shape":"ReportGenerationResultList", + "documentation":"

The list of report generation results.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListResourcesRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

Filter resources by service function identifier.

", + "location":"querystring", + "locationName":"serviceFunctionId" + }, + "awsRegion":{ + "shape":"AwsRegion", + "documentation":"

Filter resources by AWS Region.

", + "location":"querystring", + "locationName":"awsRegion" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListResourcesResponse":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The service function identifier for the returned resources.

" + }, + "serviceResources":{ + "shape":"ServiceResourceList", + "documentation":"

The list of service resources.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListServiceEventsRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "eventTypes":{ + "shape":"ServiceEventTypeList", + "documentation":"

Filter events by type.

", + "location":"querystring", + "locationName":"eventTypes" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The start time for filtering events.

", + "location":"querystring", + "locationName":"startTime" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The end time for filtering events.

", + "location":"querystring", + "locationName":"endTime" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListServiceEventsResponse":{ + "type":"structure", + "required":["events"], + "members":{ + "events":{ + "shape":"ServiceEventList", + "documentation":"

The list of service events.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListServiceFunctionsRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListServiceFunctionsResponse":{ + "type":"structure", + "required":["serviceFunctions"], + "members":{ + "serviceFunctions":{ + "shape":"ServiceFunctionList", + "documentation":"

The list of service functions.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListServiceTopologyEdgesRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"serviceArn" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListServiceTopologyEdgesResponse":{ + "type":"structure", + "members":{ + "serviceTopologyEdgeSummaries":{ + "shape":"ServiceTopologyEdgeSummaryList", + "documentation":"

The list of service topology edge summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListServicesRequest":{ + "type":"structure", + "members":{ + "systemArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"systemArn" + }, + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

Filter services by user journey identifier.

", + "location":"querystring", + "locationName":"userJourneyId" + }, + "ouId":{ + "shape":"OuId", + "documentation":"

Filter services by organizational unit (OU) identifier.

", + "location":"querystring", + "locationName":"ouId" + }, + "accountId":{ + "shape":"AccountId", + "documentation":"

Filter services by AWS account ID.

", + "location":"querystring", + "locationName":"accountId" + }, + "assessmentStatus":{ + "shape":"AssessmentStatus", + "documentation":"

Filter services by assessment status.

", + "location":"querystring", + "locationName":"assessmentStatus" + }, + "policyArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"policyArn" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListServicesResponse":{ + "type":"structure", + "required":["serviceSummaries"], + "members":{ + "serviceSummaries":{ + "shape":"ServiceSummaryList", + "documentation":"

The list of service summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListSystemEventsRequest":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"systemArn" + }, + "eventTypes":{ + "shape":"SystemEventTypeList", + "documentation":"

Filter events by type.

", + "location":"querystring", + "locationName":"eventTypes" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The start time for filtering events.

", + "location":"querystring", + "locationName":"startTime" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The end time for filtering events.

", + "location":"querystring", + "locationName":"endTime" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSystemEventsResponse":{ + "type":"structure", + "required":["events"], + "members":{ + "events":{ + "shape":"SystemEventList", + "documentation":"

The list of system events.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListSystemsRequest":{ + "type":"structure", + "members":{ + "ouId":{ + "shape":"OuId", + "documentation":"

Filter systems by organizational unit (OU) identifier.

", + "location":"querystring", + "locationName":"ouId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSystemsResponse":{ + "type":"structure", + "required":["systemSummaries"], + "members":{ + "systemSummaries":{ + "shape":"SystemSummaryList", + "documentation":"

The list of system summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + } + }, + "ListUserJourneysRequest":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"systemArn" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListUserJourneysResponse":{ + "type":"structure", + "required":["userJourneySummaries"], + "members":{ + "userJourneySummaries":{ + "shape":"UserJourneySummaryList", + "documentation":"

The list of user journey summaries.

" + }, + "nextToken":{"shape":"NextToken"} + } + }, + "Long":{ + "type":"long", + "box":true + }, + "LongDescription":{ + "type":"string", + "documentation":"

Resource description for services and policies.

", + "max":615, + "min":0 + }, + "MaxResults":{ + "type":"integer", + "documentation":"

Pagination page size.

", + "box":true, + "max":100, + "min":1 + }, + "MultiAzDisasterRecoveryApproach":{ + "type":"string", + "enum":[ + "ACTIVE_ACTIVE", + "HOT_STANDBY", + "WARM_STANDBY", + "PILOT_LIGHT", + "BACKUP_AND_RESTORE" + ] + }, + "MultiAzTargets":{ + "type":"structure", + "members":{ + "rtoInMinutes":{ + "shape":"MultiAzTargetsRtoInMinutesInteger", + "documentation":"

The recovery time objective (RTO) target for multi-AZ, in minutes.

" + }, + "rpoInMinutes":{ + "shape":"MultiAzTargetsRpoInMinutesInteger", + "documentation":"

The recovery point objective (RPO) target for multi-AZ, in minutes.

" + }, + "disasterRecoveryApproach":{ + "shape":"MultiAzDisasterRecoveryApproach", + "documentation":"

The disaster recovery approach for multi-AZ.

" + } + }, + "documentation":"

Defines the multi-AZ disaster recovery targets for a resilience policy.

" + }, + "MultiAzTargetsRpoInMinutesInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "MultiAzTargetsRtoInMinutesInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "MultiRegionDisasterRecoveryApproach":{ + "type":"string", + "enum":[ + "ACTIVE_ACTIVE", + "HOT_STANDBY", + "WARM_STANDBY", + "PILOT_LIGHT", + "BACKUP_AND_RESTORE" + ] + }, + "MultiRegionTargets":{ + "type":"structure", + "members":{ + "rtoInMinutes":{ + "shape":"MultiRegionTargetsRtoInMinutesInteger", + "documentation":"

The recovery time objective (RTO) target for multi-Region, in minutes.

" + }, + "rpoInMinutes":{ + "shape":"MultiRegionTargetsRpoInMinutesInteger", + "documentation":"

The recovery point objective (RPO) target for multi-Region, in minutes.

" + }, + "disasterRecoveryApproach":{ + "shape":"MultiRegionDisasterRecoveryApproach", + "documentation":"

The disaster recovery approach for multi-Region.

" + } + }, + "documentation":"

Defines the multi-Region disaster recovery targets for a resilience policy.

" + }, + "MultiRegionTargetsRpoInMinutesInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "MultiRegionTargetsRtoInMinutesInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "NextToken":{ + "type":"string", + "documentation":"

Pagination token.

", + "max":2000, + "min":1, + "pattern":"\\S{1,2000}" + }, + "ObservabilityRecommendation":{ + "type":"structure", + "members":{ + "suggestedChanges":{ + "shape":"SuggestedChangesList", + "documentation":"

The list of suggested observability changes.

" + } + }, + "documentation":"

An observability recommendation to address a finding.

" + }, + "ObservabilityRecommendationsList":{ + "type":"list", + "member":{"shape":"ObservabilityRecommendation"}, + "max":5, + "min":0 + }, + "OrganizationId":{ + "type":"string", + "max":34, + "min":12, + "pattern":"o-[a-z0-9]{10,32}" + }, + "OuId":{ + "type":"string", + "max":68, + "min":16, + "pattern":"ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}" + }, + "PermissionModel":{ + "type":"structure", + "required":["invokerRoleName"], + "members":{ + "invokerRoleName":{"shape":"IamRoleName"}, + "crossAccountRoles":{ + "shape":"CrossAccountRoleList", + "documentation":"

The list of cross-account IAM role ARNs.

" + } + }, + "documentation":"

Defines the permission model for a service.

" + }, + "Policy":{ + "type":"structure", + "required":[ + "policyArn", + "name" + ], + "members":{ + "policyArn":{"shape":"Arn"}, + "name":{"shape":"EntityName"}, + "description":{"shape":"LongDescription"}, + "availabilitySlo":{ + "shape":"AvailabilitySlo", + "documentation":"

The availability SLO defined in the policy.

" + }, + "multiAz":{ + "shape":"MultiAzTargets", + "documentation":"

The multi-AZ disaster recovery targets defined in the policy.

" + }, + "multiRegion":{ + "shape":"MultiRegionTargets", + "documentation":"

The multi-Region disaster recovery targets defined in the policy.

" + }, + "dataRecovery":{ + "shape":"DataRecoveryTargets", + "documentation":"

The data recovery targets defined in the policy.

" + }, + "kmsKeyId":{"shape":"KmsKeyId"}, + "tags":{"shape":"TagMap"}, + "associatedServiceCount":{ + "shape":"Integer", + "documentation":"

The number of services associated with this policy.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the policy was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the policy was last updated.

" + } + }, + "documentation":"

Represents a resilience policy that defines availability and disaster recovery requirements.

" + }, + "PolicyComponent":{ + "type":"string", + "enum":[ + "AVAILABILITY_SLO", + "MULTI_AZ_DISASTER_RECOVERY", + "MULTI_REGION_DISASTER_RECOVERY", + "DATA_RECOVERY" + ] + }, + "PolicySummary":{ + "type":"structure", + "required":[ + "policyArn", + "name" + ], + "members":{ + "policyArn":{"shape":"Arn"}, + "name":{"shape":"EntityName"}, + "availabilitySlo":{ + "shape":"AvailabilitySlo", + "documentation":"

The availability SLO defined in the policy.

" + }, + "multiAz":{ + "shape":"MultiAzTargets", + "documentation":"

The multi-AZ disaster recovery targets defined in the policy.

" + }, + "multiRegion":{ + "shape":"MultiRegionTargets", + "documentation":"

The multi-Region disaster recovery targets defined in the policy.

" + }, + "dataRecovery":{ + "shape":"DataRecoveryTargets", + "documentation":"

The data recovery targets defined in the policy.

" + }, + "associatedServiceCount":{ + "shape":"Integer", + "documentation":"

The number of services associated with this policy.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the policy was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the policy was last updated.

" + } + }, + "documentation":"

Contains summary information about a resilience policy.

" + }, + "PolicySummaryList":{ + "type":"list", + "member":{"shape":"PolicySummary"} + }, + "PolicyValueSource":{ + "type":"string", + "enum":[ + "SELF", + "CROSS_ACCOUNT" + ] + }, + "QueryDataPoint":{ + "type":"structure", + "required":[ + "timestamp", + "queryCount" + ], + "members":{ + "timestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of the data point.

" + }, + "queryCount":{ + "shape":"Long", + "documentation":"

The number of queries at this data point.

" + } + }, + "documentation":"

A data point in a dependency query range.

" + }, + "QueryDataPointList":{ + "type":"list", + "member":{"shape":"QueryDataPoint"}, + "max":24, + "min":7 + }, + "QueryGranularity":{ + "type":"string", + "enum":[ + "HOURLY", + "DAILY" + ] + }, + "QueryRange":{ + "type":"structure", + "required":[ + "startTime", + "endTime", + "granularity", + "dataPoints" + ], + "members":{ + "startTime":{ + "shape":"Timestamp", + "documentation":"

The start time of the query range.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The end time of the query range.

" + }, + "granularity":{ + "shape":"QueryGranularity", + "documentation":"

The granularity of the query range data points.

" + }, + "dataPoints":{ + "shape":"QueryDataPointList", + "documentation":"

The data points within the query range.

" + } + }, + "documentation":"

Defines a time range for dependency query data.

" + }, + "RegionList":{ + "type":"list", + "member":{"shape":"AwsRegion"}, + "max":5, + "min":1 + }, + "ReportGenerationErrorCode":{ + "type":"string", + "documentation":"

Error codes for failed report generation.

", + "enum":[ + "INSUFFICIENT_PERMISSIONS", + "CONFIGURATION_ERROR", + "INTERNAL_ERROR" + ] + }, + "ReportGenerationResult":{ + "type":"structure", + "required":[ + "reportType", + "status" + ], + "members":{ + "reportType":{ + "shape":"ReportType", + "documentation":"

The type of the generated report.

" + }, + "status":{ + "shape":"ReportGenerationStatus", + "documentation":"

The status of the report generation.

" + }, + "serviceArn":{ + "shape":"Arn", + "documentation":"

The service this report was generated for.

" + }, + "assessmentId":{ + "shape":"Uuid", + "documentation":"

Present for FAILURE_MODE reports.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the report was created.

" + }, + "reportOutput":{ + "shape":"ReportOutput", + "documentation":"

Present when status is SUCCEEDED or FAILED.

" + } + }, + "documentation":"

Result of a report generation attempt.

" + }, + "ReportGenerationResultList":{ + "type":"list", + "member":{"shape":"ReportGenerationResult"} + }, + "ReportGenerationStatus":{ + "type":"string", + "documentation":"

Status of report generation.

", + "enum":[ + "PENDING", + "SUCCEEDED", + "FAILED" + ] + }, + "ReportOutput":{ + "type":"structure", + "members":{ + "s3ReportOutput":{ + "shape":"S3ReportOutput", + "documentation":"

The S3 location where the report was written.

" + }, + "failedReportOutput":{ + "shape":"FailedReportOutput", + "documentation":"

Details when report generation failed.

" + } + }, + "documentation":"

Union of possible report outputs.

", + "union":true + }, + "ReportOutputConfiguration":{ + "type":"structure", + "members":{ + "s3":{"shape":"S3ReportOutputConfiguration"} + }, + "documentation":"

Configuration for a report output destination.

", + "union":true + }, + "ReportOutputConfigurationList":{ + "type":"list", + "member":{"shape":"ReportOutputConfiguration"}, + "documentation":"

List of report output configurations.

", + "max":1, + "min":1 + }, + "ReportType":{ + "type":"string", + "enum":["FAILURE_MODE"] + }, + "Resource":{ + "type":"structure", + "required":["identifier"], + "members":{ + "identifier":{ + "shape":"String", + "documentation":"

The identifier of the resource.

" + }, + "awsRegion":{ + "shape":"AwsRegion", + "documentation":"

The AWS Region where the resource is located.

" + }, + "awsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The AWS account ID that owns the resource.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the resource.

" + } + }, + "documentation":"

Represents an AWS resource discovered by Resilience Hub.

" + }, + "ResourceConfiguration":{ + "type":"structure", + "members":{ + "resourceTags":{ + "shape":"ResourceTagList", + "documentation":"

The resource tags for tag-based resource discovery.

" + }, + "cfnStackArn":{"shape":"Arn"}, + "tfStateFileUrl":{"shape":"S3Url"}, + "eks":{ + "shape":"EksSource", + "documentation":"

The Amazon EKS configuration for resource discovery.

" + }, + "designFileS3Url":{"shape":"S3Url"} + }, + "documentation":"

Resource configuration for an input source. Provide exactly one field.

", + "union":true + }, + "ResourceDiscoveryErrorCode":{ + "type":"string", + "enum":[ + "INVALID_PERMISSIONS", + "STACK_NOT_FOUND", + "CLUSTER_NOT_FOUND", + "STATE_FILE_NOT_FOUND", + "ACCESS_DENIED", + "UNSUPPORTED_CLUSTER", + "INTERNAL_ERROR" + ] + }, + "ResourceDiscoveryRunStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "SUCCEEDED", + "FAILED", + "COMPLETED_WITH_FAILURES", + "NOT_STARTED" + ] + }, + "ResourceDiscoveryStatus":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ResourceDiscoveryRunStatus", + "documentation":"

The current status of resource discovery.

" + }, + "lastRunAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp of the last resource discovery run.

" + }, + "errorCode":{ + "shape":"ResourceDiscoveryErrorCode", + "documentation":"

The error code if resource discovery failed.

" + }, + "errorMessage":{ + "shape":"String", + "documentation":"

A message describing the error if resource discovery failed.

" + } + }, + "documentation":"

Contains the status of resource discovery for a service.

" + }, + "ResourceList":{ + "type":"list", + "member":{"shape":"String"}, + "max":100, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The identifier of the resource that was not found.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the resource that was not found.

" + } + }, + "documentation":"

Resource not found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourceTag":{ + "type":"structure", + "required":[ + "key", + "values" + ], + "members":{ + "key":{"shape":"TagKey"}, + "values":{ + "shape":"ResourceTagValuesList", + "documentation":"

The list of tag values.

" + } + }, + "documentation":"

A tag key-value pair used for resource discovery.

" + }, + "ResourceTagList":{ + "type":"list", + "member":{"shape":"ResourceTag"}, + "max":10, + "min":1 + }, + "ResourceTagValuesList":{ + "type":"list", + "member":{"shape":"TagValue"}, + "max":10, + "min":0 + }, + "ResourceTypeList":{ + "type":"list", + "member":{"shape":"String"} + }, + "S3BucketPath":{ + "type":"string", + "documentation":"

S3 bucket path (with or without s3:// prefix).

", + "max":512, + "min":3, + "pattern":"(s3://)?[a-z0-9][a-z0-9.-]{1,61}[a-z0-9](/.*)?" + }, + "S3ReportOutput":{ + "type":"structure", + "required":["s3ObjectKey"], + "members":{ + "s3ObjectKey":{ + "shape":"String", + "documentation":"

The S3 object key for the generated report.

" + } + }, + "documentation":"

S3 location where report was written.

" + }, + "S3ReportOutputConfiguration":{ + "type":"structure", + "required":[ + "bucketPath", + "bucketOwner" + ], + "members":{ + "bucketPath":{ + "shape":"S3BucketPath", + "documentation":"

S3 bucket path where reports will be written (e.g., my-bucket/ngrh-reports/).

" + }, + "bucketOwner":{ + "shape":"AwsAccountId", + "documentation":"

Account ID of the bucket owner for cross-account access verification.

" + } + }, + "documentation":"

S3 configuration for report output.

" + }, + "S3Url":{ + "type":"string", + "documentation":"

S3 URL — virtual hosted-style or s3:// URI.

", + "max":2000, + "min":1, + "pattern":"((https://([^/]+)\\.s3[^/]*\\.[^/]+)|(s3://([^/]+)))/\\S{1,2000}" + }, + "Service":{ + "type":"structure", + "required":[ + "serviceArn", + "name" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "name":{"shape":"EntityName"}, + "description":{"shape":"LongDescription"}, + "associatedSystems":{ + "shape":"AssociatedSystemList", + "documentation":"

The systems associated with the service.

" + }, + "policyArn":{"shape":"Arn"}, + "regions":{ + "shape":"RegionList", + "documentation":"

The AWS Regions where the service operates.

" + }, + "permissionModel":{ + "shape":"PermissionModel", + "documentation":"

The permission model for the service.

" + }, + "dependencyDiscovery":{ + "shape":"DependencyDiscoveryConfig", + "documentation":"

The dependency discovery configuration for the service.

" + }, + "effectivePolicyValues":{ + "shape":"EffectivePolicyValues", + "documentation":"

The effective policy values for the service.

" + }, + "achievability":{ + "shape":"Achievability", + "documentation":"

The achievability status of the service's resilience targets.

" + }, + "reportConfiguration":{"shape":"ServiceReportConfiguration"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "tags":{"shape":"TagMap"}, + "estimatedAssessmentCost":{ + "shape":"AssessmentCost", + "documentation":"

The estimated cost of running an assessment on the service.

" + }, + "resourceDiscovery":{ + "shape":"ResourceDiscoveryStatus", + "documentation":"

The resource discovery status for the service.

" + }, + "assessmentStatus":{ + "shape":"AssessmentStatus", + "documentation":"

The current assessment status of the service.

" + }, + "rerunAssessment":{ + "shape":"Boolean", + "documentation":"

Indicates whether the assessment should be rerun.

" + }, + "openFindingsCount":{ + "shape":"Integer", + "documentation":"

The number of open findings for the service.

" + }, + "resolvedFindingsCount":{ + "shape":"Integer", + "documentation":"

The number of resolved findings for the service.

" + }, + "organizationId":{ + "shape":"OrganizationId", + "documentation":"

The AWS Organizations identifier for the service.

" + }, + "ouId":{ + "shape":"OuId", + "documentation":"

The organizational unit (OU) identifier for the service.

" + }, + "accountId":{ + "shape":"AccountId", + "documentation":"

The AWS account ID that owns the service.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the service was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the service was last updated.

" + } + }, + "documentation":"

Represents a service in Resilience Hub. A service is the primary unit of resilience assessment.

" + }, + "ServiceAchievabilityUpdatedMetadata":{ + "type":"structure", + "members":{ + "assessmentId":{ + "shape":"String", + "documentation":"

The assessment identifier that triggered the update.

" + }, + "availabilitySlo":{ + "shape":"String", + "documentation":"

The updated achievability status of the availability SLO.

" + }, + "multiAzRtoRpo":{ + "shape":"String", + "documentation":"

The updated achievability status of the multi-AZ RTO and RPO targets.

" + }, + "multiRegionRtoRpo":{ + "shape":"String", + "documentation":"

The updated achievability status of the multi-Region RTO and RPO targets.

" + } + }, + "documentation":"

Metadata for a service achievability updated event.

" + }, + "ServiceCreatedMetadata":{ + "type":"structure", + "members":{}, + "documentation":"

Metadata for a service created event.

" + }, + "ServiceDeletedMetadata":{ + "type":"structure", + "members":{}, + "documentation":"

Metadata for a service deleted event.

" + }, + "ServiceEvent":{ + "type":"structure", + "required":[ + "eventId", + "timestamp", + "eventType", + "serviceArn", + "actor", + "eventDetails" + ], + "members":{ + "eventId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the event.

" + }, + "timestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of the event.

" + }, + "eventType":{ + "shape":"ServiceEventType", + "documentation":"

The type of the event.

" + }, + "serviceArn":{"shape":"Arn"}, + "actor":{ + "shape":"EventActor", + "documentation":"

The actor that triggered the event.

" + }, + "eventDetails":{ + "shape":"ServiceEventDetails", + "documentation":"

The details of the event.

" + } + }, + "documentation":"

Represents an event in the service event log.

" + }, + "ServiceEventDetails":{ + "type":"structure", + "required":[ + "title", + "description" + ], + "members":{ + "title":{ + "shape":"String", + "documentation":"

The title of the event.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the event.

" + }, + "eventMetadata":{"shape":"ServiceEventMetadata"} + }, + "documentation":"

Contains the details of a service event.

" + }, + "ServiceEventList":{ + "type":"list", + "member":{"shape":"ServiceEvent"} + }, + "ServiceEventMetadata":{ + "type":"structure", + "members":{ + "serviceCreated":{ + "shape":"ServiceCreatedMetadata", + "documentation":"

Metadata for a service created event.

" + }, + "serviceDeleted":{ + "shape":"ServiceDeletedMetadata", + "documentation":"

Metadata for a service deleted event.

" + }, + "serviceSystemAssociated":{ + "shape":"ServiceSystemAssociatedMetadata", + "documentation":"

Metadata for a service system associated event.

" + }, + "serviceSystemDisassociated":{ + "shape":"ServiceSystemDisassociatedMetadata", + "documentation":"

Metadata for a service system disassociated event.

" + }, + "serviceResourcesAssociated":{ + "shape":"ServiceResourcesAssociatedMetadata", + "documentation":"

Metadata for a service resources associated event.

" + }, + "serviceResourcesDisassociated":{ + "shape":"ServiceResourcesDisassociatedMetadata", + "documentation":"

Metadata for a service resources disassociated event.

" + }, + "serviceWorkflowUpdated":{ + "shape":"ServiceWorkflowUpdatedMetadata", + "documentation":"

Metadata for a service workflow updated event.

" + }, + "serviceInputSourcesUpdated":{ + "shape":"ServiceInputSourcesUpdatedMetadata", + "documentation":"

Metadata for a service input sources updated event.

" + }, + "servicePolicyAssociated":{ + "shape":"ServicePolicyAssociatedMetadata", + "documentation":"

Metadata for a service policy associated event.

" + }, + "servicePolicyDisassociated":{ + "shape":"ServicePolicyDisassociatedMetadata", + "documentation":"

Metadata for a service policy disassociated event.

" + }, + "serviceFunctionCreated":{ + "shape":"ServiceFunctionCreatedMetadata", + "documentation":"

Metadata for a service function created event.

" + }, + "serviceFunctionUpdated":{ + "shape":"ServiceFunctionUpdatedMetadata", + "documentation":"

Metadata for a service function updated event.

" + }, + "serviceFunctionDeleted":{ + "shape":"ServiceFunctionDeletedMetadata", + "documentation":"

Metadata for a service function deleted event.

" + }, + "serviceFunctionResourcesAdded":{ + "shape":"ServiceFunctionResourcesAddedMetadata", + "documentation":"

Metadata for a service function resources added event.

" + }, + "serviceFunctionResourcesRemoved":{ + "shape":"ServiceFunctionResourcesRemovedMetadata", + "documentation":"

Metadata for a service function resources removed event.

" + }, + "serviceAchievabilityUpdated":{ + "shape":"ServiceAchievabilityUpdatedMetadata", + "documentation":"

Metadata for a service achievability updated event.

" + }, + "assertionCreated":{ + "shape":"AssertionCreatedMetadata", + "documentation":"

Metadata for an assertion created event.

" + }, + "assertionUpdated":{ + "shape":"AssertionUpdatedMetadata", + "documentation":"

Metadata for an assertion updated event.

" + }, + "assertionDeleted":{ + "shape":"AssertionDeletedMetadata", + "documentation":"

Metadata for an assertion deleted event.

" + } + }, + "documentation":"

Type-specific metadata for each service event type.

", + "union":true + }, + "ServiceEventType":{ + "type":"string", + "enum":[ + "SERVICE_CREATED", + "SERVICE_DELETED", + "SERVICE_SYSTEM_ASSOCIATED", + "SERVICE_SYSTEM_DISASSOCIATED", + "SERVICE_RESOURCES_ASSOCIATED", + "SERVICE_RESOURCES_DISASSOCIATED", + "SERVICE_WORKFLOW_UPDATED", + "SERVICE_INPUT_SOURCES_UPDATED", + "SERVICE_POLICY_ASSOCIATED", + "SERVICE_POLICY_DISASSOCIATED", + "SERVICE_FUNCTION_CREATED", + "SERVICE_FUNCTION_UPDATED", + "SERVICE_FUNCTION_DELETED", + "SERVICE_FUNCTION_RESOURCES_ADDED", + "SERVICE_FUNCTION_RESOURCES_REMOVED", + "SERVICE_ACHIEVABILITY_UPDATED", + "ASSERTION_CREATED", + "ASSERTION_UPDATED", + "ASSERTION_DELETED" + ] + }, + "ServiceEventTypeList":{ + "type":"list", + "member":{"shape":"ServiceEventType"} + }, + "ServiceFunction":{ + "type":"structure", + "required":[ + "serviceArn", + "serviceFunctionId", + "name", + "criticality" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The unique identifier of the service function.

" + }, + "name":{"shape":"EntityLabel"}, + "description":{"shape":"EntityDescription"}, + "criticality":{ + "shape":"ServiceFunctionCriticality", + "documentation":"

The criticality level of the service function.

" + }, + "resourceCount":{ + "shape":"Integer", + "documentation":"

The number of resources associated with the service function.

" + }, + "source":{ + "shape":"ServiceFunctionSource", + "documentation":"

The source of the service function.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the service function was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the service function was last updated.

" + } + }, + "documentation":"

Represents a logical component of a service.

" + }, + "ServiceFunctionCreatedMetadata":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"String", + "documentation":"

The identifier of the created service function.

" + }, + "serviceFunctionName":{ + "shape":"String", + "documentation":"

The name of the created service function.

" + } + }, + "documentation":"

Metadata for a service function created event.

" + }, + "ServiceFunctionCriticality":{ + "type":"string", + "enum":[ + "PRIMARY", + "SUPPLEMENTAL" + ] + }, + "ServiceFunctionDeletedMetadata":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"String", + "documentation":"

The identifier of the deleted service function.

" + }, + "serviceFunctionName":{ + "shape":"String", + "documentation":"

The name of the deleted service function.

" + } + }, + "documentation":"

Metadata for a service function deleted event.

" + }, + "ServiceFunctionList":{ + "type":"list", + "member":{"shape":"ServiceFunction"} + }, + "ServiceFunctionResourcesAddedMetadata":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"String", + "documentation":"

The identifier of the service function.

" + }, + "serviceFunctionName":{ + "shape":"String", + "documentation":"

The name of the service function.

" + }, + "resourcesAdded":{ + "shape":"ArnList", + "documentation":"

The list of resource ARNs that were added.

" + } + }, + "documentation":"

Metadata for a service function resources added event.

" + }, + "ServiceFunctionResourcesRemovedMetadata":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"String", + "documentation":"

The identifier of the service function.

" + }, + "serviceFunctionName":{ + "shape":"String", + "documentation":"

The name of the service function.

" + }, + "resourcesRemoved":{ + "shape":"ArnList", + "documentation":"

The list of resource ARNs that were removed.

" + } + }, + "documentation":"

Metadata for a service function resources removed event.

" + }, + "ServiceFunctionSource":{ + "type":"string", + "enum":[ + "AI_GENERATED", + "USER" + ] + }, + "ServiceFunctionUpdatedMetadata":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"String", + "documentation":"

The identifier of the service function.

" + }, + "serviceFunctionName":{ + "shape":"String", + "documentation":"

The name of the service function.

" + }, + "resourcesAdded":{ + "shape":"ArnList", + "documentation":"

The list of resource ARNs that were added.

" + }, + "resourcesRemoved":{ + "shape":"ArnList", + "documentation":"

The list of resource ARNs that were removed.

" + } + }, + "documentation":"

Metadata for a service function updated event.

" + }, + "ServiceInputSourcesUpdatedMetadata":{ + "type":"structure", + "members":{}, + "documentation":"

Metadata for a service input sources updated event.

" + }, + "ServicePolicyAssociatedMetadata":{ + "type":"structure", + "members":{ + "policyName":{ + "shape":"String", + "documentation":"

The name of the associated policy.

" + }, + "policyArn":{"shape":"Arn"} + }, + "documentation":"

Metadata for a service policy associated event.

" + }, + "ServicePolicyDisassociatedMetadata":{ + "type":"structure", + "members":{ + "policyName":{ + "shape":"String", + "documentation":"

The name of the disassociated policy.

" + }, + "policyArn":{"shape":"Arn"} + }, + "documentation":"

Metadata for a service policy disassociated event.

" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Service quota exceeded.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "ServiceReference":{ + "type":"structure", + "members":{ + "serviceId":{ + "shape":"String", + "documentation":"

The identifier of the referenced service.

" + }, + "serviceName":{ + "shape":"String", + "documentation":"

The name of the referenced service.

" + } + }, + "documentation":"

A reference to a service by ID and name.

" + }, + "ServiceReferenceChanges":{ + "type":"structure", + "members":{ + "added":{ + "shape":"ServiceReferenceList", + "documentation":"

The list of service references that were added.

" + }, + "removed":{ + "shape":"ServiceReferenceList", + "documentation":"

The list of service references that were removed.

" + } + }, + "documentation":"

Describes changes to service references.

" + }, + "ServiceReferenceList":{ + "type":"list", + "member":{"shape":"ServiceReference"} + }, + "ServiceReportConfiguration":{ + "type":"structure", + "required":["reportOutputs"], + "members":{ + "reportOutputs":{ + "shape":"ReportOutputConfigurationList", + "documentation":"

Output destinations for generated reports.

" + } + }, + "documentation":"

Configuration for automatic report generation on a Service.

" + }, + "ServiceResource":{ + "type":"structure", + "required":[ + "resourceIdentifier", + "resource" + ], + "members":{ + "resourceIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the resource.

" + }, + "inputSource":{ + "shape":"InputSource", + "documentation":"

The input source that discovered the resource.

" + }, + "resource":{ + "shape":"Resource", + "documentation":"

The resource details.

" + } + }, + "documentation":"

Represents a resource associated with a service.

" + }, + "ServiceResourceList":{ + "type":"list", + "member":{"shape":"ServiceResource"} + }, + "ServiceResourcesAssociatedMetadata":{ + "type":"structure", + "members":{ + "resourceCount":{ + "shape":"Integer", + "documentation":"

The number of resources associated.

" + }, + "resourceTypes":{ + "shape":"ResourceTypeList", + "documentation":"

The types of resources associated.

" + } + }, + "documentation":"

Metadata for a service resources associated event.

" + }, + "ServiceResourcesDisassociatedMetadata":{ + "type":"structure", + "members":{ + "resourceCount":{ + "shape":"Integer", + "documentation":"

The number of resources disassociated.

" + }, + "resourceTypes":{ + "shape":"ResourceTypeList", + "documentation":"

The types of resources disassociated.

" + } + }, + "documentation":"

Metadata for a service resources disassociated event.

" + }, + "ServiceSummary":{ + "type":"structure", + "required":[ + "serviceArn", + "name" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "name":{"shape":"EntityName"}, + "associatedSystems":{ + "shape":"AssociatedSystemList", + "documentation":"

The systems associated with the service.

" + }, + "regions":{ + "shape":"RegionList", + "documentation":"

The AWS Regions where the service operates.

" + }, + "policyArn":{"shape":"Arn"}, + "assessmentStatus":{ + "shape":"AssessmentStatus", + "documentation":"

The current assessment status of the service.

" + }, + "openFindingsCount":{ + "shape":"Integer", + "documentation":"

The number of open findings.

" + }, + "resolvedFindingsCount":{ + "shape":"Integer", + "documentation":"

The number of resolved findings.

" + }, + "dependencyDiscovery":{ + "shape":"DependencyDiscoveryConfig", + "documentation":"

The dependency discovery configuration.

" + }, + "achievability":{ + "shape":"Achievability", + "documentation":"

The achievability status of the service's resilience targets.

" + }, + "organizationId":{ + "shape":"OrganizationId", + "documentation":"

Displayed only if caller has access.

" + }, + "ouId":{ + "shape":"OuId", + "documentation":"

Displayed only if caller has access.

" + }, + "accountId":{ + "shape":"AccountId", + "documentation":"

Displayed only if caller has access.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the service was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the service was last updated.

" + } + }, + "documentation":"

Contains summary information about a service.

" + }, + "ServiceSummaryList":{ + "type":"list", + "member":{"shape":"ServiceSummary"} + }, + "ServiceSystemAssociatedMetadata":{ + "type":"structure", + "members":{ + "systemName":{ + "shape":"String", + "documentation":"

The name of the associated system.

" + }, + "systemArn":{"shape":"Arn"} + }, + "documentation":"

Metadata for a service system associated event.

" + }, + "ServiceSystemDisassociatedMetadata":{ + "type":"structure", + "members":{ + "systemId":{ + "shape":"String", + "documentation":"

The identifier of the disassociated system.

" + }, + "systemName":{ + "shape":"String", + "documentation":"

The name of the disassociated system.

" + }, + "systemArn":{"shape":"Arn"} + }, + "documentation":"

Metadata for a service system disassociated event.

" + }, + "ServiceTopologyEdgeSummary":{ + "type":"structure", + "required":[ + "sourceResourceIdentifier", + "destinationResourceIdentifier" + ], + "members":{ + "sourceResourceIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the source resource.

" + }, + "destinationResourceIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the destination resource.

" + }, + "properties":{ + "shape":"EdgePropertyList", + "documentation":"

The properties of the topology edge.

" + } + }, + "documentation":"

Contains summary information about a service topology edge.

" + }, + "ServiceTopologyEdgeSummaryList":{ + "type":"list", + "member":{"shape":"ServiceTopologyEdgeSummary"} + }, + "ServiceWorkflowUpdatedMetadata":{ + "type":"structure", + "members":{ + "serviceFunctionId":{ + "shape":"String", + "documentation":"

The identifier of the service function.

" + }, + "serviceFunctionName":{ + "shape":"String", + "documentation":"

The name of the service function.

" + } + }, + "documentation":"

Metadata for a service workflow updated event.

" + }, + "SloSource":{ + "type":"structure", + "members":{ + "value":{ + "shape":"Double", + "documentation":"

The availability SLO percentage value.

" + }, + "policyName":{"shape":"EntityName"}, + "source":{ + "shape":"PolicyValueSource", + "documentation":"

Indicates whether the value comes from the service's own account or a cross-account policy.

" + } + }, + "documentation":"

Contains the effective availability SLO value and its source.

" + }, + "StartFailureModeAssessmentRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{"shape":"Arn"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "StartFailureModeAssessmentResponse":{ + "type":"structure", + "members":{ + "assessmentId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the started assessment.

" + }, + "serviceArn":{"shape":"Arn"}, + "assessmentStatus":{ + "shape":"AssessmentStatus", + "documentation":"

The status of the started assessment.

" + }, + "startedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the assessment started.

" + } + } + }, + "String":{"type":"string"}, + "StringChange":{ + "type":"structure", + "members":{ + "oldValue":{ + "shape":"String", + "documentation":"

The old value.

" + }, + "newValue":{ + "shape":"String", + "documentation":"

The new value.

" + } + }, + "documentation":"

Describes a change from one string value to another.

" + }, + "SuggestedChangesList":{ + "type":"list", + "member":{"shape":"EntityDescription"}, + "max":10, + "min":0 + }, + "System":{ + "type":"structure", + "required":[ + "systemArn", + "systemId", + "name" + ], + "members":{ + "systemArn":{"shape":"Arn"}, + "systemId":{"shape":"SystemId"}, + "name":{"shape":"EntityName"}, + "description":{"shape":"EntityDescription"}, + "sharingEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether cross-account sharing is enabled.

" + }, + "tags":{"shape":"TagMap"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "organizationId":{ + "shape":"OrganizationId", + "documentation":"

The AWS Organizations identifier for the system.

" + }, + "ouId":{ + "shape":"OuId", + "documentation":"

The organizational unit (OU) identifier for the system.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the system was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the system was last updated.

" + } + }, + "documentation":"

Represents a system in Resilience Hub. A system is a logical grouping of services.

" + }, + "SystemCreatedMetadata":{ + "type":"structure", + "members":{}, + "documentation":"

Metadata for a system created event.

" + }, + "SystemDeletedMetadata":{ + "type":"structure", + "members":{}, + "documentation":"

Metadata for a system deleted event.

" + }, + "SystemEvent":{ + "type":"structure", + "required":[ + "eventId", + "timestamp", + "eventType", + "systemArn", + "actor", + "eventDetails" + ], + "members":{ + "eventId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the event.

" + }, + "timestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of the event.

" + }, + "eventType":{ + "shape":"SystemEventType", + "documentation":"

The type of the event.

" + }, + "systemArn":{"shape":"Arn"}, + "actor":{ + "shape":"EventActor", + "documentation":"

The actor that triggered the event.

" + }, + "eventDetails":{ + "shape":"SystemEventDetails", + "documentation":"

The details of the event.

" + } + }, + "documentation":"

Represents an event in the system event log.

" + }, + "SystemEventDetails":{ + "type":"structure", + "required":[ + "title", + "description" + ], + "members":{ + "title":{ + "shape":"String", + "documentation":"

The title of the event.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the event.

" + }, + "eventMetadata":{"shape":"SystemEventMetadata"} + }, + "documentation":"

Contains the details of a system event.

" + }, + "SystemEventList":{ + "type":"list", + "member":{"shape":"SystemEvent"} + }, + "SystemEventMetadata":{ + "type":"structure", + "members":{ + "systemCreated":{ + "shape":"SystemCreatedMetadata", + "documentation":"

Metadata for a system created event.

" + }, + "systemDeleted":{ + "shape":"SystemDeletedMetadata", + "documentation":"

Metadata for a system deleted event.

" + }, + "systemUserJourneyCreated":{ + "shape":"SystemUserJourneyCreatedMetadata", + "documentation":"

Metadata for a system user journey created event.

" + }, + "systemUserJourneyUpdated":{ + "shape":"SystemUserJourneyUpdatedMetadata", + "documentation":"

Metadata for a system user journey updated event.

" + }, + "systemUserJourneyDeleted":{ + "shape":"SystemUserJourneyDeletedMetadata", + "documentation":"

Metadata for a system user journey deleted event.

" + }, + "systemServiceAssociated":{ + "shape":"SystemServiceAssociatedMetadata", + "documentation":"

Metadata for a system service associated event.

" + }, + "systemServiceDisassociated":{ + "shape":"SystemServiceDisassociatedMetadata", + "documentation":"

Metadata for a system service disassociated event.

" + }, + "systemPolicyAssociated":{ + "shape":"SystemPolicyAssociatedMetadata", + "documentation":"

Metadata for a system policy associated event.

" + }, + "systemPolicyDisassociated":{ + "shape":"SystemPolicyDisassociatedMetadata", + "documentation":"

Metadata for a system policy disassociated event.

" + } + }, + "documentation":"

Type-specific metadata for each system event type.

", + "union":true + }, + "SystemEventType":{ + "type":"string", + "enum":[ + "SYSTEM_CREATED", + "SYSTEM_DELETED", + "SYSTEM_USER_JOURNEY_CREATED", + "SYSTEM_USER_JOURNEY_UPDATED", + "SYSTEM_USER_JOURNEY_DELETED", + "SYSTEM_SERVICE_ASSOCIATED", + "SYSTEM_SERVICE_DISASSOCIATED", + "SYSTEM_POLICY_ASSOCIATED", + "SYSTEM_POLICY_DISASSOCIATED" + ] + }, + "SystemEventTypeList":{ + "type":"list", + "member":{"shape":"SystemEventType"} + }, + "SystemId":{ + "type":"string", + "documentation":"

System ID for cross-account use without exposing account structure.

", + "max":255, + "min":1, + "pattern":"\\S{1,255}" + }, + "SystemPolicyAssociatedMetadata":{ + "type":"structure", + "members":{ + "policyName":{ + "shape":"String", + "documentation":"

The name of the associated policy.

" + }, + "policyArn":{"shape":"Arn"} + }, + "documentation":"

Metadata for a system policy associated event.

" + }, + "SystemPolicyDisassociatedMetadata":{ + "type":"structure", + "members":{ + "policyName":{ + "shape":"String", + "documentation":"

The name of the disassociated policy.

" + }, + "policyArn":{"shape":"Arn"} + }, + "documentation":"

Metadata for a system policy disassociated event.

" + }, + "SystemServiceAssociatedMetadata":{ + "type":"structure", + "members":{ + "serviceName":{ + "shape":"String", + "documentation":"

The name of the associated service.

" + }, + "serviceArn":{"shape":"Arn"}, + "userJourneys":{ + "shape":"UserJourneyNameList", + "documentation":"

The user journeys linking the service to the system.

" + } + }, + "documentation":"

Metadata for a system service associated event.

" + }, + "SystemServiceDisassociatedMetadata":{ + "type":"structure", + "members":{ + "serviceName":{ + "shape":"String", + "documentation":"

The name of the disassociated service.

" + }, + "serviceArn":{"shape":"Arn"}, + "userJourneysAffected":{ + "shape":"UserJourneyNameList", + "documentation":"

The user journeys affected by the disassociation.

" + }, + "comment":{ + "shape":"String", + "documentation":"

A comment about the disassociation.

" + } + }, + "documentation":"

Metadata for a system service disassociated event.

" + }, + "SystemSummary":{ + "type":"structure", + "required":[ + "systemId", + "name" + ], + "members":{ + "systemId":{"shape":"SystemId"}, + "name":{"shape":"EntityName"}, + "systemArn":{"shape":"Arn"}, + "userJourneysCount":{ + "shape":"Integer", + "documentation":"

The number of user journeys in the system.

" + }, + "servicesCount":{ + "shape":"Integer", + "documentation":"

The number of services in the system.

" + }, + "organizationId":{ + "shape":"OrganizationId", + "documentation":"

Displayed only if caller has access.

" + }, + "ouId":{ + "shape":"OuId", + "documentation":"

Displayed only if caller has access.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the system was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the system was last updated.

" + } + }, + "documentation":"

Contains summary information about a system.

" + }, + "SystemSummaryList":{ + "type":"list", + "member":{"shape":"SystemSummary"} + }, + "SystemUserJourneyCreatedMetadata":{ + "type":"structure", + "members":{ + "userJourneyName":{ + "shape":"String", + "documentation":"

The name of the created user journey.

" + }, + "associatedServices":{ + "shape":"ServiceReferenceList", + "documentation":"

The services associated with the created user journey.

" + } + }, + "documentation":"

Metadata for a system user journey created event.

" + }, + "SystemUserJourneyDeletedMetadata":{ + "type":"structure", + "members":{ + "userJourneyName":{ + "shape":"String", + "documentation":"

The name of the deleted user journey.

" + }, + "associatedServicesAtDeletion":{ + "shape":"ServiceReferenceList", + "documentation":"

The services that were associated at the time of deletion.

" + } + }, + "documentation":"

Metadata for a system user journey deleted event.

" + }, + "SystemUserJourneyUpdatedMetadata":{ + "type":"structure", + "members":{ + "userJourneyName":{ + "shape":"String", + "documentation":"

The name of the updated user journey.

" + }, + "changes":{ + "shape":"UserJourneyChanges", + "documentation":"

The changes made to the user journey.

" + } + }, + "documentation":"

Metadata for a system user journey updated event.

" + }, + "TagKey":{ + "type":"string", + "documentation":"

Tag key.

", + "max":128, + "min":1, + "pattern":"[^\\x00-\\x1f\\x22]+" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1, + "sensitive":true + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "documentation":"

Resource tags.

", + "max":50, + "min":1, + "sensitive":true + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{} + }, + "TagValue":{ + "type":"string", + "documentation":"

Tag value.

", + "max":256, + "min":0, + "pattern":"[^\\x00-\\x1f\\x22]*" + }, + "TargetSource":{ + "type":"structure", + "members":{ + "value":{ + "shape":"Integer", + "documentation":"

The RTO or RPO value in minutes.

" + }, + "policyName":{"shape":"EntityName"}, + "source":{ + "shape":"PolicyValueSource", + "documentation":"

Indicates whether the value comes from the service's own account or a cross-account policy.

" + } + }, + "documentation":"

Contains an effective RTO or RPO value and its source.

" + }, + "TestingRecommendation":{ + "type":"structure", + "members":{ + "suggestedChanges":{ + "shape":"SuggestedChangesList", + "documentation":"

The list of suggested testing changes.

" + } + }, + "documentation":"

A testing recommendation to address a finding.

" + }, + "TestingRecommendationsList":{ + "type":"list", + "member":{"shape":"TestingRecommendation"}, + "max":5, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the request.

" + } + }, + "documentation":"

Too many requests — rate limit exceeded.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "TopologyType":{ + "type":"string", + "enum":[ + "CONTAINMENT", + "DATA_FLOW", + "OBSERVABILITY", + "PERMISSIONS" + ] + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The tag keys to remove from the resource.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{} + }, + "UpdateAssertionRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "assertionId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "assertionId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the assertion to update.

" + }, + "text":{ + "shape":"AssertionText", + "documentation":"

The updated text content of the assertion.

" + } + } + }, + "UpdateAssertionResponse":{ + "type":"structure", + "required":["assertion"], + "members":{ + "assertion":{ + "shape":"Assertion", + "documentation":"

The updated assertion.

" + } + } + }, + "UpdateDependencyRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "dependencyId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "dependencyId":{ + "shape":"Uuid", + "documentation":"

The identifier of the dependency to update.

" + }, + "criticality":{ + "shape":"DependencyCriticality", + "documentation":"

The updated criticality level of the dependency.

" + }, + "comment":{ + "shape":"String", + "documentation":"

A comment about the dependency.

" + } + } + }, + "UpdateDependencyResponse":{ + "type":"structure", + "required":[ + "dependencyId", + "dependencyName", + "location", + "criticality", + "updatedAt" + ], + "members":{ + "dependencyId":{ + "shape":"Uuid", + "documentation":"

The identifier of the updated dependency.

" + }, + "dependencyName":{ + "shape":"String", + "documentation":"

The name of the updated dependency.

" + }, + "location":{ + "shape":"String", + "documentation":"

The location of the dependency.

" + }, + "criticality":{ + "shape":"DependencyCriticality", + "documentation":"

The criticality level of the dependency.

" + }, + "comment":{ + "shape":"String", + "documentation":"

The comment about the dependency.

" + }, + "provider":{ + "shape":"String", + "documentation":"

The provider of the dependency.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the dependency was updated.

" + } + } + }, + "UpdateFailureModeFindingRequest":{ + "type":"structure", + "required":[ + "findingId", + "status", + "serviceArn" + ], + "members":{ + "findingId":{ + "shape":"Uuid", + "documentation":"

The identifier of the finding to update.

" + }, + "status":{ + "shape":"FindingStatus", + "documentation":"

The new status for the finding.

" + }, + "serviceArn":{"shape":"Arn"}, + "comment":{ + "shape":"UpdateFailureModeFindingRequestCommentString", + "documentation":"

A comment about the finding update.

" + } + } + }, + "UpdateFailureModeFindingRequestCommentString":{ + "type":"string", + "max":2048, + "min":0 + }, + "UpdateFailureModeFindingResponse":{ + "type":"structure", + "members":{ + "finding":{ + "shape":"Finding", + "documentation":"

The updated finding.

" + } + } + }, + "UpdatePolicyRequest":{ + "type":"structure", + "required":["policyArn"], + "members":{ + "policyArn":{"shape":"Arn"}, + "description":{"shape":"LongDescription"}, + "availabilitySlo":{ + "shape":"AvailabilitySlo", + "documentation":"

The updated availability SLO for the policy.

" + }, + "multiAz":{ + "shape":"MultiAzTargets", + "documentation":"

The updated multi-AZ disaster recovery targets for the policy.

" + }, + "multiRegion":{ + "shape":"MultiRegionTargets", + "documentation":"

The updated multi-Region disaster recovery targets for the policy.

" + }, + "dataRecovery":{ + "shape":"DataRecoveryTargets", + "documentation":"

The updated data recovery targets for the policy.

" + } + } + }, + "UpdatePolicyResponse":{ + "type":"structure", + "required":["policy"], + "members":{ + "policy":{ + "shape":"Policy", + "documentation":"

The updated policy.

" + } + } + }, + "UpdateServiceFunctionRequest":{ + "type":"structure", + "required":[ + "serviceArn", + "serviceFunctionId" + ], + "members":{ + "serviceArn":{"shape":"Arn"}, + "serviceFunctionId":{ + "shape":"EntityId", + "documentation":"

The identifier of the service function to update.

" + }, + "name":{"shape":"EntityLabel"}, + "description":{"shape":"EntityDescription"}, + "criticality":{ + "shape":"ServiceFunctionCriticality", + "documentation":"

The updated criticality level of the service function.

" + } + } + }, + "UpdateServiceFunctionResponse":{ + "type":"structure", + "required":["serviceFunction"], + "members":{ + "serviceFunction":{ + "shape":"ServiceFunction", + "documentation":"

The updated service function.

" + } + } + }, + "UpdateServiceRequest":{ + "type":"structure", + "required":["serviceArn"], + "members":{ + "serviceArn":{"shape":"Arn"}, + "description":{"shape":"LongDescription"}, + "associatedSystems":{ + "shape":"AssociatedSystemList", + "documentation":"

The updated systems to associate with the service.

" + }, + "policyArn":{"shape":"Arn"}, + "regions":{ + "shape":"RegionList", + "documentation":"

The updated AWS Regions where the service operates.

" + }, + "permissionModel":{ + "shape":"PermissionModel", + "documentation":"

The updated permission model for the service.

" + }, + "dependencyDiscovery":{"shape":"DependencyDiscoveryInput"}, + "reportConfiguration":{"shape":"ServiceReportConfiguration"} + } + }, + "UpdateServiceResponse":{ + "type":"structure", + "required":["service"], + "members":{ + "service":{ + "shape":"Service", + "documentation":"

The updated service.

" + } + } + }, + "UpdateSystemRequest":{ + "type":"structure", + "required":["systemArn"], + "members":{ + "systemArn":{"shape":"Arn"}, + "description":{"shape":"EntityDescription"}, + "sharingEnabled":{ + "shape":"Boolean", + "documentation":"

Whether cross-account sharing is enabled for the system.

" + } + } + }, + "UpdateSystemResponse":{ + "type":"structure", + "required":["system"], + "members":{ + "system":{ + "shape":"System", + "documentation":"

The updated system.

" + } + } + }, + "UpdateUserJourneyRequest":{ + "type":"structure", + "required":[ + "systemArn", + "userJourneyId" + ], + "members":{ + "systemArn":{"shape":"Arn"}, + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

The identifier of the user journey to update.

" + }, + "name":{"shape":"EntityLabel"}, + "description":{"shape":"EntityDescription"}, + "policyArn":{"shape":"Arn"} + } + }, + "UpdateUserJourneyResponse":{ + "type":"structure", + "required":["userJourney"], + "members":{ + "userJourney":{ + "shape":"UserJourney", + "documentation":"

The updated user journey.

" + } + } + }, + "UserJourney":{ + "type":"structure", + "required":[ + "userJourneyId", + "name" + ], + "members":{ + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

The unique identifier of the user journey.

" + }, + "name":{"shape":"EntityLabel"}, + "description":{"shape":"EntityDescription"}, + "policyArn":{"shape":"Arn"}, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the user journey was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the user journey was last updated.

" + } + }, + "documentation":"

Represents a user journey that defines a critical path through a system.

" + }, + "UserJourneyChanges":{ + "type":"structure", + "members":{ + "journeyDescription":{ + "shape":"StringChange", + "documentation":"

Changes to the user journey description.

" + }, + "associatedServices":{ + "shape":"ServiceReferenceChanges", + "documentation":"

Changes to the services associated with the user journey.

" + } + }, + "documentation":"

Describes changes made to a user journey.

" + }, + "UserJourneyId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"\\S{1,255}" + }, + "UserJourneyIdList":{ + "type":"list", + "member":{"shape":"UserJourneyId"}, + "max":20, + "min":0 + }, + "UserJourneyNameList":{ + "type":"list", + "member":{"shape":"String"} + }, + "UserJourneySummary":{ + "type":"structure", + "required":[ + "userJourneyId", + "name" + ], + "members":{ + "userJourneyId":{ + "shape":"UserJourneyId", + "documentation":"

The unique identifier of the user journey.

" + }, + "name":{"shape":"EntityLabel"}, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the user journey was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the user journey was last updated.

" + } + }, + "documentation":"

Contains summary information about a user journey.

" + }, + "UserJourneySummaryList":{ + "type":"list", + "member":{"shape":"UserJourneySummary"} + }, + "Uuid":{ + "type":"string", + "max":36, + "min":36, + "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}" + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason for the validation failure.

" + }, + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The list of fields that failed validation.

" + } + }, + "documentation":"

Validation error — invalid input parameters.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "name", + "message" + ], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the field that failed validation.

" + }, + "message":{ + "shape":"String", + "documentation":"

The validation error message for the field.

" + } + }, + "documentation":"

Describes a field that failed validation.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "INVALID_FIELD_VALUE", + "DUPLICATE_VALUE", + "MISSING_REQUIRED_FIELD", + "OTHER" + ] + } + }, + "documentation":"

The next generation of AWS Resilience Hub is the single location in AWS where you assess and improve the resilience of your critical applications. It helps Site Reliability Engineers (SREs) and development teams proactively reason about resilience at scale — identifying failure modes, discovering hidden dependencies, and report on progress across the enterprise.

" +} diff --git a/awscli/botocore/data/resiliencehubv2/2026-02-17/waiters-2.json b/awscli/botocore/data/resiliencehubv2/2026-02-17/waiters-2.json new file mode 100644 index 000000000000..fba440917cad --- /dev/null +++ b/awscli/botocore/data/resiliencehubv2/2026-02-17/waiters-2.json @@ -0,0 +1,88 @@ +{ + "version" : 2, + "waiters" : { + "FailureModeAssessmentSuccess" : { + "description" : "Wait until a failure mode assessment completes successfully", + "delay" : 30, + "maxAttempts" : 5, + "operation" : "ListFailureModeAssessments", + "acceptors" : [ { + "matcher" : "path", + "argument" : "length(assessmentSummaries[]) == `0`", + "state" : "retry", + "expected" : true + }, { + "matcher" : "pathAll", + "argument" : "assessmentSummaries[].assessmentStatus", + "state" : "success", + "expected" : "SUCCESS" + }, { + "matcher" : "pathAny", + "argument" : "assessmentSummaries[].assessmentStatus", + "state" : "failure", + "expected" : "FAILED" + } ] + }, + "ReportSucceeded" : { + "description" : "Wait until report generation succeeds", + "delay" : 30, + "maxAttempts" : 5, + "operation" : "ListReports", + "acceptors" : [ { + "matcher" : "path", + "argument" : "length(reportGenerationResults[]) == `0`", + "state" : "retry", + "expected" : true + }, { + "matcher" : "pathAll", + "argument" : "reportGenerationResults[].status", + "state" : "success", + "expected" : "SUCCEEDED" + }, { + "matcher" : "pathAny", + "argument" : "reportGenerationResults[].status", + "state" : "failure", + "expected" : "FAILED" + } ] + }, + "ServiceAssessmentCompleted" : { + "description" : "Wait until a service assessment completes successfully", + "delay" : 30, + "maxAttempts" : 5, + "operation" : "GetService", + "acceptors" : [ { + "matcher" : "path", + "argument" : "service.assessmentStatus", + "state" : "success", + "expected" : "SUCCESS" + }, { + "matcher" : "path", + "argument" : "service.assessmentStatus", + "state" : "failure", + "expected" : "FAILED" + } ] + }, + "ServiceResourceDiscoveryCompleted" : { + "description" : "Wait until service resource discovery completes", + "delay" : 30, + "maxAttempts" : 5, + "operation" : "GetService", + "acceptors" : [ { + "matcher" : "path", + "argument" : "service.resourceDiscovery.status", + "state" : "success", + "expected" : "SUCCEEDED" + }, { + "matcher" : "path", + "argument" : "service.resourceDiscovery.status", + "state" : "success", + "expected" : "COMPLETED_WITH_FAILURES" + }, { + "matcher" : "path", + "argument" : "service.resourceDiscovery.status", + "state" : "failure", + "expected" : "FAILED" + } ] + } + } +} \ No newline at end of file diff --git a/awscli/botocore/data/s3control/2018-08-20/service-2.json b/awscli/botocore/data/s3control/2018-08-20/service-2.json index c300a6baed8c..518c3013e7ea 100644 --- a/awscli/botocore/data/s3control/2018-08-20/service-2.json +++ b/awscli/botocore/data/s3control/2018-08-20/service-2.json @@ -6284,7 +6284,7 @@ "MinStorageBytesPercentage":{ "type":"double", "max":100, - "min":0.1 + "min":1 }, "Minutes":{"type":"integer"}, "MultiRegionAccessPointAlias":{ diff --git a/tests/functional/botocore/endpoint-rules/resiliencehubv2/endpoint-tests-1.json b/tests/functional/botocore/endpoint-rules/resiliencehubv2/endpoint-tests-1.json new file mode 100644 index 000000000000..eafe174ef79b --- /dev/null +++ b/tests/functional/botocore/endpoint-rules/resiliencehubv2/endpoint-tests-1.json @@ -0,0 +1,270 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file From c145af52bd906b73052c3f07691f8c745c19d126 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 28 May 2026 18:16:25 +0000 Subject: [PATCH 42/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index cc16f6cf93e7..7a8f5d454b07 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -20302,6 +20302,8 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "rekognition-fips.ca-central-1.amazonaws.com", From 8c8ddd99f9c1ca7b6c95a0f2772a729716e39132 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 28 May 2026 18:18:15 +0000 Subject: [PATCH 43/73] Bump version to 2.34.56 --- .changes/2.34.56.json | 72 +++++++++++++++++++ .../api-change-appstream-95654.json | 5 -- .../api-change-bedrock-83183.json | 5 -- .../api-change-bedrockagentcore-73017.json | 5 -- ...-change-bedrockagentcorecontrol-66721.json | 5 -- .../api-change-bedrockruntime-24190.json | 5 -- .../api-change-controlcatalog-82837.json | 5 -- .../api-change-customerprofiles-12418.json | 5 -- .../api-change-deadline-59642.json | 5 -- .../next-release/api-change-iot-90188.json | 5 -- .../api-change-iotdata-73773.json | 5 -- ...api-change-opensearchserverless-70748.json | 5 -- .../next-release/api-change-pcs-28199.json | 5 -- .../api-change-resiliencehubv2-11209.json | 5 -- .../api-change-s3control-83140.json | 5 -- CHANGELOG.rst | 19 +++++ awscli/__init__.py | 2 +- configure | 14 ++-- configure.ac | 2 +- doc/source/conf.py | 2 +- 20 files changed, 101 insertions(+), 80 deletions(-) create mode 100644 .changes/2.34.56.json delete mode 100644 .changes/next-release/api-change-appstream-95654.json delete mode 100644 .changes/next-release/api-change-bedrock-83183.json delete mode 100644 .changes/next-release/api-change-bedrockagentcore-73017.json delete mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-66721.json delete mode 100644 .changes/next-release/api-change-bedrockruntime-24190.json delete mode 100644 .changes/next-release/api-change-controlcatalog-82837.json delete mode 100644 .changes/next-release/api-change-customerprofiles-12418.json delete mode 100644 .changes/next-release/api-change-deadline-59642.json delete mode 100644 .changes/next-release/api-change-iot-90188.json delete mode 100644 .changes/next-release/api-change-iotdata-73773.json delete mode 100644 .changes/next-release/api-change-opensearchserverless-70748.json delete mode 100644 .changes/next-release/api-change-pcs-28199.json delete mode 100644 .changes/next-release/api-change-resiliencehubv2-11209.json delete mode 100644 .changes/next-release/api-change-s3control-83140.json diff --git a/.changes/2.34.56.json b/.changes/2.34.56.json new file mode 100644 index 000000000000..c4d1a17b16ca --- /dev/null +++ b/.changes/2.34.56.json @@ -0,0 +1,72 @@ +[ + { + "category": "``bedrock-agentcore``", + "description": "Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId and runtimeClientError to InvokeHarness.", + "type": "api-change" + }, + { + "category": "``iot``", + "description": "Adds new connectivity-related fields to Fleet Indexing API requests and responses.", + "type": "api-change" + }, + { + "category": "``bedrock``", + "description": "Add support for ModelPackageArn in Bedrock's CreateCustomModel API", + "type": "api-change" + }, + { + "category": "``resiliencehubv2``", + "description": "This is the initial SDK release for the next generation of Resilience Hub.", + "type": "api-change" + }, + { + "category": "``pcs``", + "description": "This release adds support for configuring scaleDownIdleTimeInSeconds at the compute node group level, allowing customers to set different idle timeouts per node group. Previously this setting was only available at the cluster level.", + "type": "api-change" + }, + { + "category": "``customer-profiles``", + "description": "BatchPutProfileObject API adds multiple profile objects to a domain of a given ObjectType in a single API call.", + "type": "api-change" + }, + { + "category": "``deadline``", + "description": "Added support for persistent storage on Service-Managed Fleets, allowing customers to configure persistent storage that preserves data across worker sessions which reduces job startup times for workloads with large software installations or asset caches.", + "type": "api-change" + }, + { + "category": "``iot-data``", + "description": "Adding GetConnection, ListSubscriptions, and SendDirectMessage APIs to IoT Data Plane", + "type": "api-change" + }, + { + "category": "``s3control``", + "description": "Update the minimum value of MinStorageBytesPercentage in StorageLensPrefixLevel.SelectionCriteria from 0.1 to 1, aligning the model with the documented contract.", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore-control``", + "description": "Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId parameter to InvokeHarness for end-user identification.", + "type": "api-change" + }, + { + "category": "``controlcatalog``", + "description": "AWS Control Catalog - Added GovernedProviders response field and inclusion filter to GetControl and ListControls APIs to identify and filter by cloud provider. Added ParameterRequirementSummary response field indicating parameter requirements.", + "type": "api-change" + }, + { + "category": "``opensearchserverless``", + "description": "Adds support for deletion protection on collections, ability to create NEXTGEN collection groups and autoscaling visibility for NEXTGEN collection groups", + "type": "api-change" + }, + { + "category": "``appstream``", + "description": "Amazon WorkSpaces Applications now supports BYOL (Bring Your Own License). This enables customers to import their own WorkSpaces images and use them in WorkSpaces Applications.", + "type": "api-change" + }, + { + "category": "``bedrock-runtime``", + "description": "Support system role in message", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-appstream-95654.json b/.changes/next-release/api-change-appstream-95654.json deleted file mode 100644 index 108ec2fd36af..000000000000 --- a/.changes/next-release/api-change-appstream-95654.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``appstream``", - "description": "Amazon WorkSpaces Applications now supports BYOL (Bring Your Own License). This enables customers to import their own WorkSpaces images and use them in WorkSpaces Applications." -} diff --git a/.changes/next-release/api-change-bedrock-83183.json b/.changes/next-release/api-change-bedrock-83183.json deleted file mode 100644 index 9ff7258a3bb1..000000000000 --- a/.changes/next-release/api-change-bedrock-83183.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock``", - "description": "Add support for ModelPackageArn in Bedrock's CreateCustomModel API" -} diff --git a/.changes/next-release/api-change-bedrockagentcore-73017.json b/.changes/next-release/api-change-bedrockagentcore-73017.json deleted file mode 100644 index 922dec8c374c..000000000000 --- a/.changes/next-release/api-change-bedrockagentcore-73017.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore``", - "description": "Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId and runtimeClientError to InvokeHarness." -} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-66721.json b/.changes/next-release/api-change-bedrockagentcorecontrol-66721.json deleted file mode 100644 index ca3543150f38..000000000000 --- a/.changes/next-release/api-change-bedrockagentcorecontrol-66721.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore-control``", - "description": "Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId parameter to InvokeHarness for end-user identification." -} diff --git a/.changes/next-release/api-change-bedrockruntime-24190.json b/.changes/next-release/api-change-bedrockruntime-24190.json deleted file mode 100644 index 78c09e1b4a45..000000000000 --- a/.changes/next-release/api-change-bedrockruntime-24190.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-runtime``", - "description": "Support system role in message" -} diff --git a/.changes/next-release/api-change-controlcatalog-82837.json b/.changes/next-release/api-change-controlcatalog-82837.json deleted file mode 100644 index b72957d91f1f..000000000000 --- a/.changes/next-release/api-change-controlcatalog-82837.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``controlcatalog``", - "description": "AWS Control Catalog - Added GovernedProviders response field and inclusion filter to GetControl and ListControls APIs to identify and filter by cloud provider. Added ParameterRequirementSummary response field indicating parameter requirements." -} diff --git a/.changes/next-release/api-change-customerprofiles-12418.json b/.changes/next-release/api-change-customerprofiles-12418.json deleted file mode 100644 index 0d0662931c78..000000000000 --- a/.changes/next-release/api-change-customerprofiles-12418.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``customer-profiles``", - "description": "BatchPutProfileObject API adds multiple profile objects to a domain of a given ObjectType in a single API call." -} diff --git a/.changes/next-release/api-change-deadline-59642.json b/.changes/next-release/api-change-deadline-59642.json deleted file mode 100644 index 9c50c462a133..000000000000 --- a/.changes/next-release/api-change-deadline-59642.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``deadline``", - "description": "Added support for persistent storage on Service-Managed Fleets, allowing customers to configure persistent storage that preserves data across worker sessions which reduces job startup times for workloads with large software installations or asset caches." -} diff --git a/.changes/next-release/api-change-iot-90188.json b/.changes/next-release/api-change-iot-90188.json deleted file mode 100644 index c7d6c1af9a24..000000000000 --- a/.changes/next-release/api-change-iot-90188.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``iot``", - "description": "Adds new connectivity-related fields to Fleet Indexing API requests and responses." -} diff --git a/.changes/next-release/api-change-iotdata-73773.json b/.changes/next-release/api-change-iotdata-73773.json deleted file mode 100644 index d9fe31ef6f4b..000000000000 --- a/.changes/next-release/api-change-iotdata-73773.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``iot-data``", - "description": "Adding GetConnection, ListSubscriptions, and SendDirectMessage APIs to IoT Data Plane" -} diff --git a/.changes/next-release/api-change-opensearchserverless-70748.json b/.changes/next-release/api-change-opensearchserverless-70748.json deleted file mode 100644 index decd174a72d9..000000000000 --- a/.changes/next-release/api-change-opensearchserverless-70748.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``opensearchserverless``", - "description": "Adds support for deletion protection on collections, ability to create NEXTGEN collection groups and autoscaling visibility for NEXTGEN collection groups" -} diff --git a/.changes/next-release/api-change-pcs-28199.json b/.changes/next-release/api-change-pcs-28199.json deleted file mode 100644 index 79e50955e538..000000000000 --- a/.changes/next-release/api-change-pcs-28199.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``pcs``", - "description": "This release adds support for configuring scaleDownIdleTimeInSeconds at the compute node group level, allowing customers to set different idle timeouts per node group. Previously this setting was only available at the cluster level." -} diff --git a/.changes/next-release/api-change-resiliencehubv2-11209.json b/.changes/next-release/api-change-resiliencehubv2-11209.json deleted file mode 100644 index 7186d9e2ed60..000000000000 --- a/.changes/next-release/api-change-resiliencehubv2-11209.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``resiliencehubv2``", - "description": "This is the initial SDK release for the next generation of Resilience Hub." -} diff --git a/.changes/next-release/api-change-s3control-83140.json b/.changes/next-release/api-change-s3control-83140.json deleted file mode 100644 index b7cb713571f7..000000000000 --- a/.changes/next-release/api-change-s3control-83140.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``s3control``", - "description": "Update the minimum value of MinStorageBytesPercentage in StorageLensPrefixLevel.SelectionCriteria from 0.1 to 1, aligning the model with the documented contract." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 92612f0f8823..50cea68e93e2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,25 @@ CHANGELOG ========= +2.34.56 +======= + +* api-change:``bedrock-agentcore``: Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId and runtimeClientError to InvokeHarness. +* api-change:``iot``: Adds new connectivity-related fields to Fleet Indexing API requests and responses. +* api-change:``bedrock``: Add support for ModelPackageArn in Bedrock's CreateCustomModel API +* api-change:``resiliencehubv2``: This is the initial SDK release for the next generation of Resilience Hub. +* api-change:``pcs``: This release adds support for configuring scaleDownIdleTimeInSeconds at the compute node group level, allowing customers to set different idle timeouts per node group. Previously this setting was only available at the cluster level. +* api-change:``customer-profiles``: BatchPutProfileObject API adds multiple profile objects to a domain of a given ObjectType in a single API call. +* api-change:``deadline``: Added support for persistent storage on Service-Managed Fleets, allowing customers to configure persistent storage that preserves data across worker sessions which reduces job startup times for workloads with large software installations or asset caches. +* api-change:``iot-data``: Adding GetConnection, ListSubscriptions, and SendDirectMessage APIs to IoT Data Plane +* api-change:``s3control``: Update the minimum value of MinStorageBytesPercentage in StorageLensPrefixLevel.SelectionCriteria from 0.1 to 1, aligning the model with the documented contract. +* api-change:``bedrock-agentcore-control``: Added Harness support for LiteLLM model configuration for third-party model providers. Added S3 and Git skill source types. Added Responses API format for OpenAI and Bedrock models. Added runtimeUserId parameter to InvokeHarness for end-user identification. +* api-change:``controlcatalog``: AWS Control Catalog - Added GovernedProviders response field and inclusion filter to GetControl and ListControls APIs to identify and filter by cloud provider. Added ParameterRequirementSummary response field indicating parameter requirements. +* api-change:``opensearchserverless``: Adds support for deletion protection on collections, ability to create NEXTGEN collection groups and autoscaling visibility for NEXTGEN collection groups +* api-change:``appstream``: Amazon WorkSpaces Applications now supports BYOL (Bring Your Own License). This enables customers to import their own WorkSpaces images and use them in WorkSpaces Applications. +* api-change:``bedrock-runtime``: Support system role in message + + 2.34.55 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 108a89e34195..8f80879919f9 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.55' +__version__ = '2.34.56' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index fa9ceb5a5baf..44d299c6ae73 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.55. +# Generated by GNU Autoconf 2.71 for awscli 2.34.56. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.55' -PACKAGE_STRING='awscli 2.34.55' +PACKAGE_VERSION='2.34.56' +PACKAGE_STRING='awscli 2.34.56' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.55 +awscli configure 2.34.56 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.55, which was +It was created by awscli $as_me 2.34.56, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.55, which was +This file was extended by awscli $as_me 2.34.56, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.55 +awscli config.status 2.34.56 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index a74f173e5a6a..7527c0004bf6 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.55]) +AC_INIT([awscli], [2.34.56]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 7c43262642c5..c6641ec5b116 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.55' +release = '2.34.56' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 005fac18d3c1227c54f7497a02afdbe5acfa3a7c Mon Sep 17 00:00:00 2001 From: Jason <35640105+aemous@users.noreply.github.com> Date: Thu, 28 May 2026 16:57:42 -0400 Subject: [PATCH 44/73] [v2] Update standard retry mode via opt-in env var (#10342) --- .../enhancement-Retries-30198.json | 5 + awscli/botocore/configprovider.py | 10 +- awscli/botocore/endpoint.py | 2 +- awscli/botocore/retries/standard.py | 220 ++++++++- .../retries/test_standard_retry_v2_1.py | 439 ++++++++++++++++++ 5 files changed, 653 insertions(+), 23 deletions(-) create mode 100644 .changes/next-release/enhancement-Retries-30198.json create mode 100644 tests/unit/botocore/retries/test_standard_retry_v2_1.py diff --git a/.changes/next-release/enhancement-Retries-30198.json b/.changes/next-release/enhancement-Retries-30198.json new file mode 100644 index 000000000000..5d68935c8e80 --- /dev/null +++ b/.changes/next-release/enhancement-Retries-30198.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "Retries", + "description": "Introduced ``AWS_NEW_RETRIES_2026``, an opt-in environment variable (defaults to ``false``) that activates updated standard retry mode behavior. When set to ``true``, the standard retry mode uses lower initial backoff delays (50ms base instead of 1s for non-throttling errors), applies service-specific max attempt overrides, and honors the ``x-amz-retry-after`` response header for server-guided retry timing." +} diff --git a/awscli/botocore/configprovider.py b/awscli/botocore/configprovider.py index 9e40dd58695a..56a25bd2aa87 100644 --- a/awscli/botocore/configprovider.py +++ b/awscli/botocore/configprovider.py @@ -21,8 +21,16 @@ from botocore import utils from botocore.exceptions import InvalidConfigError -logger = logging.getLogger(__name__) +def _resolve_new_retries(): + _env_new_retries = os.environ.get('AWS_NEW_RETRIES_2026') + if _env_new_retries is not None: + return _env_new_retries.lower() == 'true' + return False + +NEW_RETRIES_ENABLED = _resolve_new_retries() + +logger = logging.getLogger(__name__) #: A default dictionary that maps the logical names for session variables #: to the specific environment variables and configuration file names diff --git a/awscli/botocore/endpoint.py b/awscli/botocore/endpoint.py index 6094cc0d4385..1a28fc6152ec 100644 --- a/awscli/botocore/endpoint.py +++ b/awscli/botocore/endpoint.py @@ -318,7 +318,7 @@ def _needs_retry( request_dict=request_dict, ) handler_response = first_non_none_response(responses) - if handler_response is None: + if handler_response is None or handler_response is False: return False else: # Request needs to be retried, and we need to sleep diff --git a/awscli/botocore/retries/standard.py b/awscli/botocore/retries/standard.py index 0f82a6e3a6de..e89cfc25815a 100644 --- a/awscli/botocore/retries/standard.py +++ b/awscli/botocore/retries/standard.py @@ -26,7 +26,12 @@ import logging import random +import time +# This is not a public interface and is subject to abrupt breaking changes. +# Currently, it's only available to internal users for testing and validation. +# Any usage is not advised or supported in external code bases. +from botocore.configprovider import NEW_RETRIES_ENABLED from botocore.exceptions import ( ConnectionError, ConnectTimeoutError, @@ -37,27 +42,61 @@ from botocore.retries.base import BaseRetryableChecker, BaseRetryBackoff DEFAULT_MAX_ATTEMPTS = 3 +_SERVICE_MAX_ATTEMPTS = { + 'dynamodb': 4, + 'dynamodb-streams': 4, +} logger = logging.getLogger(__name__) -def register_retry_handler(client, max_attempts=DEFAULT_MAX_ATTEMPTS): - retry_quota = RetryQuotaChecker(quota.RetryQuota()) - +def register_retry_handler(client, max_attempts=None): service_id = client.meta.service_model.service_id service_event_name = service_id.hyphenize() + retry_event_adapter = RetryEventAdapter() + + if NEW_RETRIES_ENABLED: + if ( + max_attempts is None + and service_event_name in _SERVICE_MAX_ATTEMPTS + ): + max_attempts = _SERVICE_MAX_ATTEMPTS[service_event_name] + elif max_attempts is None: + max_attempts = DEFAULT_MAX_ATTEMPTS + throttling_detector = ThrottlingErrorDetector(retry_event_adapter) + retry_quota = RetryQuotaChecker( + quota.RetryQuota(), throttling_detector + ) + handler = RetryHandler( + retry_policy=RetryPolicy( + retry_checker=StandardRetryConditions( + max_attempts=max_attempts + ), + retry_backoff=ExponentialBackoff( + service_name=service_event_name, + throttling_detector=throttling_detector, + ), + ), + retry_event_adapter=retry_event_adapter, + retry_quota=retry_quota, + service_name=service_event_name, + ) + else: + retry_quota = RetryQuotaChecker(quota.RetryQuota()) + handler = RetryHandler( + retry_policy=RetryPolicy( + retry_checker=StandardRetryConditions( + max_attempts=max_attempts or DEFAULT_MAX_ATTEMPTS + ), + retry_backoff=ExponentialBackoff(), + ), + retry_event_adapter=retry_event_adapter, + retry_quota=retry_quota, + ) + client.meta.events.register( f'after-call.{service_event_name}', retry_quota.release_retry_quota ) - handler = RetryHandler( - retry_policy=RetryPolicy( - retry_checker=StandardRetryConditions(max_attempts=max_attempts), - retry_backoff=ExponentialBackoff(), - ), - retry_event_adapter=RetryEventAdapter(), - retry_quota=retry_quota, - ) - unique_id = f'retry-config-{service_event_name}' client.meta.events.register( f'needs-retry.{service_event_name}', @@ -74,10 +113,28 @@ class RetryHandler: as an event handler. """ - def __init__(self, retry_policy, retry_event_adapter, retry_quota): + # Temporary hard-coded list of long-polling operations. This will be + # replaced by the aws.api#longPoll modeled trait once it is available + # in service models. + _LONG_POLLING_OPERATIONS = { + 'sqs': {'ReceiveMessage'}, + 'sfn': {'GetActivityTask'}, + 'swf': {'PollForActivityTask', 'PollForDecisionTask'}, + } + + def __init__( + self, + retry_policy, + retry_event_adapter, + retry_quota, + service_name=None, + sleep=time.sleep, + ): self._retry_policy = retry_policy self._retry_event_adapter = retry_event_adapter self._retry_quota = retry_quota + self._service_name = service_name + self._sleep = sleep def needs_retry(self, **kwargs): """Connect as a handler to the needs-retry event.""" @@ -93,6 +150,23 @@ def needs_retry(self, **kwargs): retry_delay, ) else: + if NEW_RETRIES_ENABLED: + if self._is_long_polling_operation(context): + polling_delay = self._retry_policy.compute_retry_delay( + context + ) + self._sleep(polling_delay) + logger.debug( + "Retry needed but retry quota reached, " + "not retrying request." + ) + self._retry_event_adapter.adapt_retry_response_from_context( + context + ) + # Return False (non-None) to prevent any later needs-retry + # handler from returning a delay that would cause + # _needs_retry in endpoint.py to sleep again. + return False logger.debug( "Retry needed but retry quota reached, " "not retrying request." @@ -102,6 +176,17 @@ def needs_retry(self, **kwargs): self._retry_event_adapter.adapt_retry_response_from_context(context) return retry_delay + def _is_long_polling_operation(self, context): + # TODO: Replace this hard-coded list with a model check once + # aws.api#longPoll trait is available in service models. + if self._service_name is None or context.operation_model is None: + return False + operations = self._LONG_POLLING_OPERATIONS.get(self._service_name) + return ( + operations is not None + and context.operation_model.name in operations + ) + class RetryEventAdapter: """Adapter to existing retry interface used in the endpoints layer. @@ -252,11 +337,31 @@ def compute_retry_delay(self, context): class ExponentialBackoff(BaseRetryBackoff): _BASE = 2 _MAX_BACKOFF = 20 + _RETRY_AFTER_HEADER = 'x-amz-retry-after' + _RETRY_AFTER_MAX_ADDITIONAL = 5 # seconds + + _DEFAULT_BACKOFF_CONFIG = { + 'throttling_base_scale': 1, + 'non_throttling_base_scale': 0.05, + } - def __init__(self, max_backoff=20, random=random.random): + _SERVICE_BACKOFF_CONFIG = { + 'dynamodb': {'non_throttling_base_scale': 0.025}, + 'dynamodb-streams': {'non_throttling_base_scale': 0.025}, + } + + def __init__( + self, + max_backoff=20, + random=random.random, + service_name=None, + throttling_detector=None, + ): self._base = self._BASE self._max_backoff = max_backoff self._random = random + self._service_name = service_name + self._throttling_detector = throttling_detector def delay_amount(self, context): """Calculates delay based on exponential backoff. @@ -272,10 +377,64 @@ def delay_amount(self, context): # The context.attempt_number is a 1-based value, but we have # to calculate the delay based on i based a 0-based value. We # want the first delay to just be ``rand(0, 1)``. - return min( - self._random() * (self._base ** (context.attempt_number - 1)), - self._max_backoff, + if NEW_RETRIES_ENABLED: + t_i = self._random() * min( + self._get_base_scale(context) + * (self._base ** (context.attempt_number - 1)), + self._max_backoff, + ) + + # Check for x-amz-retry-after header + retry_after = self._get_retry_after_delay(context) + if retry_after is not None: + # min is 't_i', max is 't_i + 5' + return max( + t_i, + min(retry_after, self._RETRY_AFTER_MAX_ADDITIONAL + t_i), + ) + + return t_i + else: + return self._random() * min( + (self._base ** (context.attempt_number - 1)), + self._max_backoff, + ) + + def _get_base_scale(self, context): + if ( + self._throttling_detector + and self._throttling_detector.is_throttling_error_from_context( + context + ) + ): + return self._DEFAULT_BACKOFF_CONFIG['throttling_base_scale'] + if self._service_name in self._SERVICE_BACKOFF_CONFIG: + return self._SERVICE_BACKOFF_CONFIG[self._service_name][ + 'non_throttling_base_scale' + ] + return self._DEFAULT_BACKOFF_CONFIG['non_throttling_base_scale'] + + def _get_retry_after_delay(self, context): + if context.http_response is None: + return None + retry_after_ms = context.http_response.headers.get( + self._RETRY_AFTER_HEADER ) + if retry_after_ms is None: + return None + try: + value = int(retry_after_ms) / 1000.0 + if value < 0: + raise ValueError("Negative retry-after value") + return value + except (ValueError, OverflowError) as e: + logger.debug( + "Invalid %s header value: %s, ignoring. Error: %s", + self._RETRY_AFTER_HEADER, + retry_after_ms, + e, + ) + return None class MaxAttemptsChecker(BaseRetryableChecker): @@ -424,6 +583,9 @@ def __init__(self, retry_event_adapter): # This expects the kwargs from needs-retry to be passed through. def is_throttling_error(self, **kwargs): context = self._retry_event_adapter.create_retry_context(**kwargs) + return self.is_throttling_error_from_context(context) + + def is_throttling_error_from_context(self, context): if self._fixed_error_code_detector.is_retryable(context): return True error_type = self._modeled_error_detector.detect_error_type(context) @@ -473,7 +635,9 @@ def is_retryable(self, context): class RetryQuotaChecker: _RETRY_COST = 5 + _RETRY_COST_V2 = 14 _NO_RETRY_INCREMENT = 1 + _THROTTLING_RETRY_COST = 5 _TIMEOUT_RETRY_REQUEST = 10 _TIMEOUT_EXCEPTIONS = (ConnectTimeoutError, ReadTimeoutError) @@ -483,16 +647,23 @@ class RetryQuotaChecker: # a BaseRetryableChecker implies you can call .is_retryable(context) # as many times as you want and not affect anything. - def __init__(self, quota): + def __init__(self, quota, throttling_detector=None): self._quota = quota + self._throttling_detector = throttling_detector # This tracks the last amount self._last_amount_acquired = None def acquire_retry_quota(self, context): - if self._is_timeout_error(context): - capacity_amount = self._TIMEOUT_RETRY_REQUEST + if NEW_RETRIES_ENABLED: + if self._is_throttling_error(context): + capacity_amount = self._THROTTLING_RETRY_COST + else: + capacity_amount = self._RETRY_COST_V2 else: - capacity_amount = self._RETRY_COST + if self._is_timeout_error(context): + capacity_amount = self._TIMEOUT_RETRY_REQUEST + else: + capacity_amount = self._RETRY_COST success = self._quota.acquire(capacity_amount) if success: # We add the capacity amount to the request context so we know @@ -503,6 +674,13 @@ def acquire_retry_quota(self, context): context.add_retry_metadata(RetryQuotaReached=True) return False + def _is_throttling_error(self, context): + if self._throttling_detector is None: + return False + return self._throttling_detector.is_throttling_error_from_context( + context + ) + def _is_timeout_error(self, context): return isinstance(context.caught_exception, self._TIMEOUT_EXCEPTIONS) diff --git a/tests/unit/botocore/retries/test_standard_retry_v2_1.py b/tests/unit/botocore/retries/test_standard_retry_v2_1.py new file mode 100644 index 000000000000..d1d506dd7eb3 --- /dev/null +++ b/tests/unit/botocore/retries/test_standard_retry_v2_1.py @@ -0,0 +1,439 @@ +"""Temporary test suite for new updated retry behavior. + +These tests validate the updated retry behavior for standard retries, +which is currently gated behind an internal flag and not yet available +to external users. Once the changes are validated internally and released +publicly, these tests will replace the corresponding tests in +test_standard.py and this file will be removed. +""" + +from collections import Counter + +import pytest +from botocore import configprovider +from botocore.awsrequest import AWSResponse +from botocore.exceptions import ReadTimeoutError +from botocore.retries import quota, standard + +from tests import BaseEnvVar, mock, unittest + + +@mock.patch('botocore.retries.standard.NEW_RETRIES_ENABLED', True) +class TestExponentialBackoff(unittest.TestCase): + def setUp(self): + self.random = lambda: 1 + self.backoff = standard.ExponentialBackoff( + max_backoff=20, random=self.random + ) + + def test_range_of_exponential_backoff(self): + backoffs = [ + self.backoff.delay_amount(standard.RetryContext(attempt_number=i)) + for i in range(1, 12) + ] + # Note that we're capped at 20 which is our max backoff. + # Cap kicks in at attempt 10 + self.assertEqual( + backoffs, [0.05, 0.1, 0.2, 0.4, 0.8, 1.6, 3.2, 6.4, 12.8, 20, 20] + ) + + def test_exponential_backoff_with_jitter(self): + backoff = standard.ExponentialBackoff() + backoffs = [ + backoff.delay_amount(standard.RetryContext(attempt_number=3)) + for i in range(10) + ] + # For attempt number 3, we should have a max value of 0.2 (0.05 * 2 ^ 2), + # so we can assert all the backoff values are within that range. + # 0.05 is the default non-throttling scale + for x in backoffs: + self.assertTrue(0 <= x <= 0.2) + + def test_uniform_rand_dist_on_max_attempts(self): + backoff = standard.ExponentialBackoff() + num_datapoints = 10_000 + backoffs = [ + backoff.delay_amount(standard.RetryContext(attempt_number=10)) + for i in range(num_datapoints) + ] + self._assert_looks_like_uniform_distribution(backoffs) + + def _assert_looks_like_uniform_distribution(self, backoffs): + histogram = Counter(int(el) for el in backoffs) + expected_value = len(backoffs) / len(histogram) + # This is an arbitrarily chosen tolerance, but we're being fairly + # lenient here and giving a 20% tolerance. We're only interested + # in cases where it's obviously broken and not a uniform distribution. + tolerance = 0.20 + low = expected_value - (expected_value * tolerance) + high = expected_value + (expected_value * tolerance) + out_of_range = [ + str(i) for i in histogram.values() if not low <= i <= high + ] + if out_of_range: + raise AssertionError( + "Backoff values outside of uniform distribution range " + f"({low} - {high}): {', '.join(out_of_range)}" + ) + + +@mock.patch('botocore.retries.standard.NEW_RETRIES_ENABLED', True) +class TestRetryQuotaChecker(unittest.TestCase): + def setUp(self): + self.quota = quota.RetryQuota(500) + self.throttling_detector = standard.ThrottlingErrorDetector( + standard.RetryEventAdapter() + ) + self.quota_checker = standard.RetryQuotaChecker( + self.quota, self.throttling_detector + ) + self.request_context = {} + + def create_context( + self, + is_timeout_error=False, + status_code=200, + is_throttling_error=False, + ): + caught_exception = None + parsed_response = {} + if is_timeout_error: + caught_exception = ReadTimeoutError(endpoint_url='https://foo') + if is_throttling_error: + status_code = 400 + parsed_response = {'Error': {'Code': 'Throttling'}} + http_response = AWSResponse( + status_code=status_code, raw=None, headers={}, url='https://foo/' + ) + context = standard.RetryContext( + attempt_number=1, + request_context=self.request_context, + caught_exception=caught_exception, + http_response=http_response, + parsed_response=parsed_response, + ) + return context + + def test_can_acquire_quota_for_throttling_error(self): + self.assertTrue( + self.quota_checker.acquire_retry_quota( + self.create_context(is_throttling_error=True) + ) + ) + self.assertEqual(self.request_context['retry_quota_capacity'], 5) + + def test_can_acquire_quota_non_timeout_error(self): + self.assertTrue( + self.quota_checker.acquire_retry_quota(self.create_context()) + ) + self.assertEqual(self.request_context['retry_quota_capacity'], 14) + + def test_can_acquire_quota_for_timeout_error(self): + self.assertTrue( + self.quota_checker.acquire_retry_quota( + self.create_context(is_timeout_error=True) + ) + ) + self.assertEqual(self.request_context['retry_quota_capacity'], 14) + + def test_can_release_quota_based_on_context_value_on_success(self): + context = self.create_context() + # This is where we had to retry the request but eventually + # succeeded. + http_response = self.create_context(status_code=200).http_response + self.assertTrue(self.quota_checker.acquire_retry_quota(context)) + self.assertEqual(self.quota.available_capacity, 486) + self.quota_checker.release_retry_quota( + context.request_context, http_response=http_response + ) + self.assertEqual(self.quota.available_capacity, 500) + + def test_can_release_quota_when_succeed_after_throttling_error(self): + context = self.create_context(is_throttling_error=True) + http_response = self.create_context(status_code=200).http_response + self.assertTrue(self.quota_checker.acquire_retry_quota(context)) + self.assertEqual(self.quota.available_capacity, 495) + self.quota_checker.release_retry_quota( + context.request_context, http_response=http_response + ) + self.assertEqual(self.quota.available_capacity, 500) + + def test_dont_release_quota_if_all_retries_failed(self): + context = self.create_context() + # If max_attempts_reached is True, then it means we used up all + # our retry attempts and still failed. In this case we shouldn't + # give any retry quota back. + http_response = self.create_context(status_code=500).http_response + self.assertTrue(self.quota_checker.acquire_retry_quota(context)) + self.assertEqual(self.quota.available_capacity, 486) + self.quota_checker.release_retry_quota( + context.request_context, http_response=http_response + ) + self.assertEqual(self.quota.available_capacity, 486) + + def test_can_release_default_quota_if_not_in_context(self): + context = self.create_context() + self.assertTrue(self.quota_checker.acquire_retry_quota(context)) + self.assertEqual(self.quota.available_capacity, 486) + # We're going to remove the quota amount from the request context. + # This represents a successful request with no retries. + self.request_context.pop('retry_quota_capacity') + self.quota_checker.release_retry_quota( + context.request_context, context.http_response + ) + # We expect only 1 unit was released. + self.assertEqual(self.quota.available_capacity, 487) + + def test_acquire_quota_fails(self): + quota_checker = standard.RetryQuotaChecker( + quota.RetryQuota(initial_capacity=14) + ) + # The first one succeeds. + self.assertTrue( + quota_checker.acquire_retry_quota(self.create_context()) + ) + # But we should fail now because we're out of quota. + self.request_context.pop('retry_quota_capacity') + self.assertFalse( + quota_checker.acquire_retry_quota(self.create_context()) + ) + self.assertNotIn('retry_quota_capacity', self.request_context) + + def test_quota_reached_adds_retry_metadata(self): + quota_checker = standard.RetryQuotaChecker( + quota.RetryQuota(initial_capacity=0) + ) + context = self.create_context() + self.assertFalse(quota_checker.acquire_retry_quota(context)) + self.assertEqual( + context.get_retry_metadata(), {'RetryQuotaReached': True} + ) + + def test_single_failed_request_does_not_give_back_quota(self): + context = self.create_context() + http_response = self.create_context(status_code=400).http_response + # First deduct some amount of the retry quota so we're not hitting + # the upper bound. + self.quota.acquire(50) + self.assertEqual(self.quota.available_capacity, 450) + self.quota_checker.release_retry_quota( + context.request_context, http_response=http_response + ) + self.assertEqual(self.quota.available_capacity, 450) + + +@mock.patch('botocore.retries.standard.NEW_RETRIES_ENABLED', True) +class TestServiceSpecificRetries(unittest.TestCase): + def _make_retry_context(self, attempt, status_code, error_code=None): + http_response = AWSResponse( + status_code=status_code, raw=None, headers={}, url='https://foo/' + ) + parsed_response = {} + if error_code: + parsed_response = {'Error': {'Code': error_code}} + return standard.RetryContext( + attempt_number=attempt, + operation_model=mock.Mock(error_shapes=[]), + http_response=http_response, + parsed_response=parsed_response, + request_context={}, + ) + + def test_dynamodb_base_backoff_and_increased_retries(self): + retry_quota_bucket = quota.RetryQuota() + + throttling_detector = standard.ThrottlingErrorDetector( + standard.RetryEventAdapter() + ) + retry_quota = standard.RetryQuotaChecker( + retry_quota_bucket, throttling_detector + ) + backoff = standard.ExponentialBackoff( + random=lambda: 1, + service_name='dynamodb', + throttling_detector=throttling_detector, + ) + + retry_conditions = standard.StandardRetryConditions(max_attempts=4) + + # Attempts 1-3: retryable + for attempt, expected_quota, expected_delay in [ + (1, 486, 0.025), + (2, 472, 0.05), + (3, 458, 0.1), + ]: + context = self._make_retry_context( + attempt=attempt, status_code=500 + ) + self.assertTrue(retry_conditions.is_retryable(context)) + self.assertTrue(retry_quota.acquire_retry_quota(context)) + self.assertEqual( + retry_quota_bucket.available_capacity, expected_quota + ) + self.assertEqual(backoff.delay_amount(context), expected_delay) + + # Attempt 4: NOT retryable because max_attempts=4 + context4 = self._make_retry_context(attempt=4, status_code=500) + self.assertFalse(retry_conditions.is_retryable(context4)) + self.assertEqual(retry_quota_bucket.available_capacity, 458) + self.assertEqual( + context4.get_retry_metadata(), {'MaxAttemptsReached': True} + ) + + def test_sqs_triggers_long_polling_backoff_when_token_empty(self): + mock_sleep = mock.Mock() + retry_policy = mock.Mock(spec=standard.RetryPolicy) + retry_policy.should_retry.return_value = True + retry_policy.compute_retry_delay.return_value = 0.05 + + retry_quota = mock.Mock(spec=standard.RetryQuotaChecker) + retry_quota.acquire_retry_quota.return_value = False + + handler = standard.RetryHandler( + retry_policy=retry_policy, + retry_event_adapter=standard.RetryEventAdapter(), + retry_quota=retry_quota, + service_name='sqs', + sleep=mock_sleep, + ) + + context = self._make_retry_context(attempt=1, status_code=500) + context.operation_model = mock.Mock() + context.operation_model.name = 'ReceiveMessage' + + result = handler.needs_retry( + response=(context.http_response, {}), + attempts=1, + caught_exception=None, + request_dict={'context': {}}, + operation=context.operation_model, + ) + + assert result is False + retry_quota.acquire_retry_quota.assert_called_once() + mock_sleep.assert_called_once_with(0.05) + + def test_non_long_polling_operation_does_not_sleep_when_quota_exhausted( + self, + ): + mock_sleep = mock.Mock() + retry_policy = mock.Mock(spec=standard.RetryPolicy) + retry_policy.should_retry.return_value = True + retry_policy.compute_retry_delay.return_value = 0.05 + + retry_quota = mock.Mock(spec=standard.RetryQuotaChecker) + retry_quota.acquire_retry_quota.return_value = False + + handler = standard.RetryHandler( + retry_policy=retry_policy, + retry_event_adapter=standard.RetryEventAdapter(), + retry_quota=retry_quota, + service_name='sqs', + sleep=mock_sleep, + ) + + context = self._make_retry_context(attempt=1, status_code=500) + context.operation_model = mock.Mock() + context.operation_model.name = 'SendMessage' + + result = handler.needs_retry( + response=(context.http_response, {}), + attempts=1, + caught_exception=None, + request_dict={'context': {}}, + operation=context.operation_model, + ) + + self.assertIsNone(result) + mock_sleep.assert_not_called() + + +@mock.patch('botocore.retries.standard.NEW_RETRIES_ENABLED', True) +class TestRetryAfterHeaderInRetries: + def setup_method(self): + throttling_detector = standard.ThrottlingErrorDetector( + standard.RetryEventAdapter() + ) + self.retry_quota_bucket = quota.RetryQuota() + self.retry_quota = standard.RetryQuotaChecker( + self.retry_quota_bucket, throttling_detector + ) + self.backoff = standard.ExponentialBackoff( + random=lambda: 1, + throttling_detector=throttling_detector, + ) + + def _make_retry_context( + self, attempt, status_code, error_code=None, retry_after='0' + ): + http_response = AWSResponse( + status_code=status_code, + raw=None, + headers={'x-amz-retry-after': retry_after}, + url='https://foo/', + ) + parsed_response = {} + if error_code: + parsed_response = {'Error': {'Code': error_code}} + return standard.RetryContext( + attempt_number=attempt, + operation_model=mock.Mock(error_shapes=[]), + http_response=http_response, + parsed_response=parsed_response, + request_context={}, + ) + + @pytest.mark.parametrize( + 'retry_after_header,' + 'expected_capacity_after_failure,' + 'expected_delay_amount,' + 'expected_capacity_after_success', + [ + ('1500', 486, 1.5, 500), + ('0', 486, 0.05, 500), + ('10000', 486, 5.05, 500), + ('invalid', 486, 0.05, 500), + ('-100', 486, 0.05, 500), + ], + ) + def test_x_amz_retry_after_header_is_honored( + self, + retry_after_header, + expected_capacity_after_failure, + expected_delay_amount, + expected_capacity_after_success, + ): + context = self._make_retry_context( + attempt=1, status_code=500, retry_after=retry_after_header + ) + + assert self.retry_quota.acquire_retry_quota(context) + assert ( + self.retry_quota_bucket.available_capacity + == expected_capacity_after_failure + ) + assert self.backoff.delay_amount(context) == expected_delay_amount + + http_success = AWSResponse( + status_code=200, raw=None, headers={}, url='https://foo/' + ) + self.retry_quota.release_retry_quota( + context.request_context, http_response=http_success + ) + assert ( + self.retry_quota_bucket.available_capacity + == expected_capacity_after_success + ) + + +class TestNewRetriesEnvironmentVariable(BaseEnvVar): + def test_env_var_true_enables_new_retries(self): + self.environ['AWS_NEW_RETRIES_2026'] = 'true' + self.assertTrue(configprovider._resolve_new_retries()) + + def test_env_var_false_disables_new_retries(self): + self.environ['AWS_NEW_RETRIES_2026'] = 'false' + self.assertFalse(configprovider._resolve_new_retries()) + + def test_no_env_var_uses_default(self): + self.assertFalse(configprovider._resolve_new_retries()) From 23c202e1d1e07609d41a5c834db480da7ee53c52 Mon Sep 17 00:00:00 2001 From: Andrew Asseily <77591070+AndrewAsseily@users.noreply.github.com> Date: Fri, 29 May 2026 10:24:54 -0400 Subject: [PATCH 45/73] Update protocol tests and handle null values in sparse map serialization (#10177) * Update protocol tests * Update protocol tests ignore list * Handle null values in sparse map serialization and deserialization * Add changelog entry for protocol test update and sparse map null handling --- .../enhancement-botocore-93454.json | 5 + awscli/botocore/parsers.py | 10 +- awscli/botocore/serialize.py | 42 +- tests/unit/botocore/protocols/input/ec2.json | 347 ++- tests/unit/botocore/protocols/input/json.json | 973 +++--- .../input/json_1_0-query-compatible.json | 6 +- .../botocore/protocols/input/json_1_0.json | 383 ++- .../unit/botocore/protocols/input/query.json | 497 +-- .../botocore/protocols/input/rest-json.json | 2675 ++++++++++++----- .../botocore/protocols/input/rest-xml.json | 2469 +++++++++------ ...ithy-rpc-v2-cbor-non-query-compatible.json | 2 +- .../smithy-rpc-v2-cbor-query-compatible.json | 4 +- .../protocols/input/smithy-rpc-v2-cbor.json | 871 ++++-- tests/unit/botocore/protocols/output/ec2.json | 940 +++--- .../unit/botocore/protocols/output/json.json | 770 +++-- .../output/json_1_0-query-compatible.json | 8 +- .../botocore/protocols/output/json_1_0.json | 439 +-- .../unit/botocore/protocols/output/query.json | 1297 ++++---- .../botocore/protocols/output/rest-json.json | 2188 +++++++++----- .../botocore/protocols/output/rest-xml.json | 2089 ++++++++----- .../smithy-rpc-v2-cbor-query-compatible.json | 12 +- .../protocols/output/smithy-rpc-v2-cbor.json | 1060 ++++--- .../protocols/protocol-tests-ignore-list.json | 30 +- 23 files changed, 11214 insertions(+), 5903 deletions(-) create mode 100644 .changes/next-release/enhancement-botocore-93454.json diff --git a/.changes/next-release/enhancement-botocore-93454.json b/.changes/next-release/enhancement-botocore-93454.json new file mode 100644 index 000000000000..4da3645f51f7 --- /dev/null +++ b/.changes/next-release/enhancement-botocore-93454.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "botocore", + "description": "Update protocol tests to latest and handle null values in sparse map serialization and deserialization" +} diff --git a/awscli/botocore/parsers.py b/awscli/botocore/parsers.py index b50bbf7a8fa1..f1bff70a7c58 100644 --- a/awscli/botocore/parsers.py +++ b/awscli/botocore/parsers.py @@ -709,7 +709,12 @@ def _handle_map(self, shape, value): value_shape = shape.value for key, value in value.items(): actual_key = self._parse_shape(key_shape, key) - actual_value = self._parse_shape(value_shape, value) + # Treat all maps as sparse during parsing to safely handle null + # values that may be present in service responses. + if value is None: + actual_value = None + else: + actual_value = self._parse_shape(value_shape, value) parsed[actual_key] = actual_value return parsed @@ -891,8 +896,7 @@ def _parse_map(self, stream, additional_info): def _parse_key_value_pair(self, stream, items): key = self.parse_data_item(stream) value = self.parse_data_item(stream) - if value is not None: - items[key] = value + items[key] = value # Major type 6 is tags. The only tag we currently support is tag 1 for unix # timestamps diff --git a/awscli/botocore/serialize.py b/awscli/botocore/serialize.py index 1b436c7b75c3..a3b8f8449627 100644 --- a/awscli/botocore/serialize.py +++ b/awscli/botocore/serialize.py @@ -416,19 +416,27 @@ def _serialize_type_map(self, serialized, value, shape, key): map_obj = self.MAP_TYPE() serialized[key] = map_obj for sub_key, sub_value in value.items(): - self._serialize(map_obj, sub_value, shape.value, sub_key) + if sub_value is None: + map_obj[sub_key] = None + else: + self._serialize(map_obj, sub_value, shape.value, sub_key) def _serialize_type_list(self, serialized, value, shape, key): list_obj = [] serialized[key] = list_obj for list_item in value: - wrapper = {} - # The JSON list serialization is the only case where we aren't - # setting a key on a dict. We handle this by using - # a __current__ key on a wrapper dict to serialize each - # list item before appending it to the serialized list. - self._serialize(wrapper, list_item, shape.member, "__current__") - list_obj.append(wrapper["__current__"]) + if list_item is None: + list_obj.append(None) + else: + wrapper = {} + # The JSON list serialization is the only case where we aren't + # setting a key on a dict. We handle this by using + # a __current__ key on a wrapper dict to serialize each + # list item before appending it to the serialized list. + self._serialize( + wrapper, list_item, shape.member, "__current__" + ) + list_obj.append(wrapper["__current__"]) def _default_serialize(self, serialized, value, shape, key): serialized[key] = value @@ -539,7 +547,14 @@ def _serialize_type_list(self, serialized, value, shape, key): else: serialized.extend(initial_byte + length.to_bytes(num_bytes, "big")) for item in value: - self._serialize_data_item(serialized, item, shape.member) + if item is None: + serialized.extend( + self._get_initial_byte( + self.FLOAT_AND_SIMPLE_MAJOR_TYPE, 22 + ) + ) + else: + self._serialize_data_item(serialized, item, shape.member) def _serialize_type_map(self, serialized, value, shape, key): length = len(value) @@ -555,7 +570,14 @@ def _serialize_type_map(self, serialized, value, shape, key): serialized.extend(initial_byte + length.to_bytes(num_bytes, "big")) for key_item, item in value.items(): self._serialize_data_item(serialized, key_item, shape.key) - self._serialize_data_item(serialized, item, shape.value) + if item is None: + serialized.extend( + self._get_initial_byte( + self.FLOAT_AND_SIMPLE_MAJOR_TYPE, 22 + ) + ) + else: + self._serialize_data_item(serialized, item, shape.value) def _serialize_type_structure(self, serialized, value, shape, key): if key is not None: diff --git a/tests/unit/botocore/protocols/input/ec2.json b/tests/unit/botocore/protocols/input/ec2.json index 200ac6e16a96..45bc66617c2d 100644 --- a/tests/unit/botocore/protocols/input/ec2.json +++ b/tests/unit/botocore/protocols/input/ec2.json @@ -2,11 +2,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "EmptyInputAndEmptyOutputInput": { @@ -17,6 +26,7 @@ "cases": [ { "id": "Ec2QueryEmptyInputAndEmptyOutput", + "description": "Empty input serializes no extra query params", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -28,7 +38,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response members.

While this should be rare, code generators must support this.

" }, - "description": "Empty input serializes no extra query params", "params": {}, "serialized": { "method": "POST", @@ -43,17 +52,28 @@ }, { "description": "Test cases for EndpointOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "Ec2QueryEndpointTrait", + "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "given": { "name": "EndpointOperation", "http": { @@ -64,29 +84,37 @@ "hostPrefix": "foo." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "Action=EndpointOperation&Version=2020-01-08", + "host": "foo.example.com", "headers": { "Content-Type": "application/x-www-form-urlencoded" - }, - "host": "foo.example.com" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "HostLabelInput": { @@ -108,6 +136,7 @@ "cases": [ { "id": "Ec2QueryEndpointTraitWithHostLabel", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "given": { "name": "EndpointWithHostLabelOperation", "http": { @@ -121,7 +150,6 @@ "hostPrefix": "foo.{label}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "params": { "label": "bar" }, @@ -129,28 +157,38 @@ "method": "POST", "uri": "/", "body": "Action=EndpointWithHostLabelOperation&Version=2020-01-08&Label=bar", + "host": "foo.bar.example.com", "headers": { "Content-Type": "application/x-www-form-urlencoded" - }, - "host": "foo.bar.example.com" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for HostWithPathOperation operation", + "clientEndpoint": "https://example.com/custom", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "Ec2QueryHostWithPath", + "description": "Custom endpoints supplied by users can have paths", "given": { "name": "HostWithPathOperation", "http": { @@ -158,7 +196,6 @@ "requestUri": "/" } }, - "description": "Custom endpoints supplied by users can have paths", "params": {}, "serialized": { "method": "POST", @@ -167,19 +204,31 @@ "host": "example.com/custom" } } - ], - "clientEndpoint": "https://example.com/custom" + ] }, { "description": "Test cases for NestedStructures operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, "NestedStructuresInput": { "type": "structure", "members": { @@ -188,6 +237,9 @@ } } }, + "String": { + "type": "string" + }, "StructArg": { "type": "structure", "members": { @@ -201,18 +253,12 @@ "shape": "StructArg" } } - }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true } }, "cases": [ { "id": "Ec2NestedStructures", + "description": "Serializes nested structures using dots", "given": { "name": "NestedStructures", "http": { @@ -224,7 +270,6 @@ }, "documentation": "

This test serializes nested and recursive structure members.

" }, - "description": "Serializes nested structures using dots", "params": { "Nested": { "StringArg": "foo", @@ -251,16 +296,26 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "Ec2QueryNoInputAndOutput", + "description": "No input serializes no payload", "given": { "name": "NoInputAndOutput", "http": { @@ -269,7 +324,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request payload or response members.

While this should be rare, code generators must support this.

" }, - "description": "No input serializes no payload", "params": {}, "serialized": { "method": "POST", @@ -285,11 +339,20 @@ { "description": "Test cases for PutWithContentEncoding operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "PutWithContentEncodingInput": { @@ -310,6 +373,7 @@ "cases": [ { "id": "SDKAppliedContentEncoding_ec2Query", + "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "given": { "name": "PutWithContentEncoding", "http": { @@ -325,7 +389,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "params": { "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" }, @@ -339,6 +402,7 @@ }, { "id": "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_ec2Query", + "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the ec2Query protocol.\n", "given": { "name": "PutWithContentEncoding", "http": { @@ -354,7 +418,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the ec2Query protocol.\n", "params": { "encoding": "custom", "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" @@ -372,11 +435,20 @@ { "description": "Test cases for QueryIdempotencyTokenAutoFill operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "QueryIdempotencyTokenAutoFillInput": { @@ -395,6 +467,7 @@ "cases": [ { "id": "Ec2ProtocolIdempotencyTokenAutoFill", + "description": "Automatically adds idempotency token when not set", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -406,7 +479,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Automatically adds idempotency token when not set", "params": {}, "serialized": { "method": "POST", @@ -422,6 +494,7 @@ }, { "id": "Ec2ProtocolIdempotencyTokenAutoFillIsSet", + "description": "Uses the given idempotency token as-is", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -433,7 +506,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Uses the given idempotency token as-is", "params": { "token": "00000000-0000-4000-8000-000000000123" }, @@ -454,13 +526,51 @@ { "description": "Test cases for QueryLists operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "GreetingList": { + "type": "list", + "member": { + "shape": "GreetingStruct" + } + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "ListWithXmlName": { + "type": "list", + "member": { + "shape": "String", + "locationName": "item" + } + }, + "NestedStructWithList": { + "type": "structure", + "members": { + "ListArg": { + "shape": "StringList" + } + } + }, "QueryListsInput": { "type": "structure", "members": { @@ -482,48 +592,20 @@ } } }, + "String": { + "type": "string" + }, "StringList": { "type": "list", "member": { "shape": "String" } - }, - "GreetingList": { - "type": "list", - "member": { - "shape": "GreetingStruct" - } - }, - "ListWithXmlName": { - "type": "list", - "member": { - "shape": "String", - "locationName": "item" - } - }, - "NestedStructWithList": { - "type": "structure", - "members": { - "ListArg": { - "shape": "StringList" - } - } - }, - "String": { - "type": "string" - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } } }, "cases": [ { "id": "Ec2Lists", + "description": "Serializes query lists. All EC2 lists are flattened.", "given": { "name": "QueryLists", "http": { @@ -535,7 +617,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Serializes query lists. All EC2 lists are flattened.", "params": { "ListArg": [ "foo", @@ -562,6 +643,7 @@ }, { "id": "Ec2EmptyQueryLists", + "description": "Does not serialize empty query lists.", "given": { "name": "QueryLists", "http": { @@ -573,7 +655,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Does not serialize empty query lists.", "params": { "ListArg": [] }, @@ -588,6 +669,7 @@ }, { "id": "Ec2ListArgWithXmlNameMember", + "description": "An xmlName trait in the member of a list has no effect on the list serialization.", "given": { "name": "QueryLists", "http": { @@ -599,7 +681,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "An xmlName trait in the member of a list has no effect on the list serialization.", "params": { "ListArgWithXmlNameMember": [ "A", @@ -617,6 +698,7 @@ }, { "id": "Ec2ListMemberWithXmlName", + "description": "Changes the name of the list using the xmlName trait", "given": { "name": "QueryLists", "http": { @@ -628,7 +710,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Changes the name of the list using the xmlName trait", "params": { "ListArgWithXmlName": [ "A", @@ -646,6 +727,7 @@ }, { "id": "Ec2ListNestedStructWithList", + "description": "Nested structure with a list member", "given": { "name": "QueryLists", "http": { @@ -657,7 +739,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Nested structure with a list member", "params": { "NestedWithList": { "ListArg": [ @@ -680,13 +761,26 @@ { "description": "Test cases for QueryTimestamps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, "QueryTimestampsInput": { "type": "structure", "members": { @@ -701,21 +795,18 @@ } } }, - "Timestamp": { - "type": "timestamp" - }, "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "Ec2TimestampsInput", + "description": "Serializes timestamps", "given": { "name": "QueryTimestamps", "http": { @@ -727,7 +818,6 @@ }, "documentation": "

This test serializes timestamps.

  1. Timestamps are serialized as RFC 3339 date-time values by default.
  2. A timestampFormat trait on a member changes the format.
  3. A timestampFormat trait on the shape targeted by the member changes the format.
" }, - "description": "Serializes timestamps", "params": { "normalFormat": 1422172800, "epochMember": 1422172800, @@ -750,13 +840,51 @@ { "description": "Test cases for SimpleInputParams operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "Integer": { + "type": "integer", + "box": true + }, "SimpleInputParamsInput": { "type": "structure", "members": { @@ -799,40 +927,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Blob": { - "type": "blob" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] } }, "cases": [ { "id": "Ec2SimpleInputParamsStrings", + "description": "Serializes strings", "given": { "name": "SimpleInputParams", "http": { @@ -844,7 +944,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes strings", "params": { "Foo": "val1", "Bar": "val2" @@ -863,6 +962,7 @@ }, { "id": "Ec2SimpleInputParamsStringAndBooleanTrue", + "description": "Serializes booleans that are true", "given": { "name": "SimpleInputParams", "http": { @@ -874,7 +974,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes booleans that are true", "params": { "Foo": "val1", "Baz": true @@ -893,6 +992,7 @@ }, { "id": "Ec2SimpleInputParamsStringsAndBooleanFalse", + "description": "Serializes booleans that are false", "given": { "name": "SimpleInputParams", "http": { @@ -904,7 +1004,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes booleans that are false", "params": { "Baz": false }, @@ -922,6 +1021,7 @@ }, { "id": "Ec2SimpleInputParamsInteger", + "description": "Serializes integers", "given": { "name": "SimpleInputParams", "http": { @@ -933,7 +1033,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes integers", "params": { "Bam": 10 }, @@ -951,6 +1050,7 @@ }, { "id": "Ec2SimpleInputParamsFloat", + "description": "Serializes floats", "given": { "name": "SimpleInputParams", "http": { @@ -962,7 +1062,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes floats", "params": { "Boo": 10.8 }, @@ -980,6 +1079,7 @@ }, { "id": "Ec2SimpleInputParamsBlob", + "description": "Blobs are base64 encoded in the query string", "given": { "name": "SimpleInputParams", "http": { @@ -991,7 +1091,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Blobs are base64 encoded in the query string", "params": { "Qux": "value" }, @@ -1009,6 +1108,7 @@ }, { "id": "Ec2Enums", + "description": "Serializes enums in the query string", "given": { "name": "SimpleInputParams", "http": { @@ -1020,7 +1120,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes enums in the query string", "params": { "FooEnum": "Foo" }, @@ -1038,6 +1137,7 @@ }, { "id": "Ec2Query", + "description": "Serializes query using ec2QueryName trait.", "given": { "name": "SimpleInputParams", "http": { @@ -1049,7 +1149,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes query using ec2QueryName trait.", "params": { "HasQueryName": "Hi" }, @@ -1067,6 +1166,7 @@ }, { "id": "Ec2QueryIsPreferred", + "description": "ec2QueryName trait is preferred over xmlName.", "given": { "name": "SimpleInputParams", "http": { @@ -1078,7 +1178,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "ec2QueryName trait is preferred over xmlName.", "params": { "HasQueryAndXmlName": "Hi" }, @@ -1096,6 +1195,7 @@ }, { "id": "Ec2XmlNameIsUppercased", + "description": "xmlName is used with the ec2 protocol, but the first character is uppercased", "given": { "name": "SimpleInputParams", "http": { @@ -1107,7 +1207,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "xmlName is used with the ec2 protocol, but the first character is uppercased", "params": { "UsesXmlName": "Hi" }, @@ -1125,6 +1224,7 @@ }, { "id": "Ec2QuerySupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleInputParams", "http": { @@ -1136,7 +1236,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Supports handling NaN float values.", "params": { "FloatValue": "NaN", "Boo": "NaN" @@ -1155,6 +1254,7 @@ }, { "id": "Ec2QuerySupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleInputParams", "http": { @@ -1166,7 +1266,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Supports handling Infinity float values.", "params": { "FloatValue": "Infinity", "Boo": "Infinity" @@ -1185,6 +1284,7 @@ }, { "id": "Ec2QuerySupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleInputParams", "http": { @@ -1196,7 +1296,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Supports handling -Infinity float values.", "params": { "FloatValue": "-Infinity", "Boo": "-Infinity" diff --git a/tests/unit/botocore/protocols/input/json.json b/tests/unit/botocore/protocols/input/json.json index 2187e52a5260..add87a2beecf 100644 --- a/tests/unit/botocore/protocols/input/json.json +++ b/tests/unit/botocore/protocols/input/json.json @@ -2,18 +2,28 @@ { "description": "Test cases for EmptyOperation operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": {}, "cases": [ { "id": "sends_requests_to_slash", + "description": "Sends requests to /", "given": { "name": "EmptyOperation", "http": { @@ -21,19 +31,19 @@ "requestUri": "/" } }, - "description": "Sends requests to /", "params": {}, "serialized": { "method": "POST", "uri": "/", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.EmptyOperation" + "X-Amz-Target": "JsonProtocol.EmptyOperation", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "includes_x_amz_target_and_content_type", + "description": "Includes X-Amz-Target header and Content-Type", "given": { "name": "EmptyOperation", "http": { @@ -41,19 +51,19 @@ "requestUri": "/" } }, - "description": "Includes X-Amz-Target header and Content-Type", "params": {}, "serialized": { "method": "POST", "uri": "/", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.EmptyOperation" + "X-Amz-Target": "JsonProtocol.EmptyOperation", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "json_1_1_client_sends_empty_payload_for_no_input_shape", + "description": "Clients must always send an empty JSON object payload for\noperations with no input (that is, `{}`). While AWS service\nimplementations support requests with no payload or requests\nthat send `{}`, always sending `{}` from the client is\npreferred for forward compatibility in case input is ever\nadded to an operation.", "given": { "name": "EmptyOperation", "http": { @@ -61,15 +71,14 @@ "requestUri": "/" } }, - "description": "Clients must always send an empty JSON object payload for\noperations with no input (that is, `{}`). While AWS service\nimplementations support requests with no payload or requests\nthat send `{}`, always sending `{}` from the client is\npreferred for forward compatibility in case input is ever\nadded to an operation.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.EmptyOperation" + "X-Amz-Target": "JsonProtocol.EmptyOperation", + "Content-Type": "application/x-amz-json-1.1" } } } @@ -77,19 +86,30 @@ }, { "description": "Test cases for EndpointOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": {}, "cases": [ { "id": "AwsJson11EndpointTrait", + "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "given": { "name": "EndpointOperation", "http": { @@ -100,32 +120,40 @@ "hostPrefix": "foo." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", + "host": "foo.example.com", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.EndpointOperation" - }, - "host": "foo.example.com" + "X-Amz-Target": "JsonProtocol.EndpointOperation", + "Content-Type": "application/x-amz-json-1.1" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "HostLabelInput": { @@ -147,6 +175,7 @@ "cases": [ { "id": "AwsJson11EndpointTraitWithHostLabel", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "given": { "name": "EndpointWithHostLabelOperation", "http": { @@ -160,7 +189,6 @@ "hostPrefix": "foo.{label}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "params": { "label": "bar" }, @@ -168,31 +196,41 @@ "method": "POST", "uri": "/", "body": "{\"label\": \"bar\"}", + "host": "foo.bar.example.com", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.EndpointWithHostLabelOperation" - }, - "host": "foo.bar.example.com" + "X-Amz-Target": "JsonProtocol.EndpointWithHostLabelOperation", + "Content-Type": "application/x-amz-json-1.1" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for HostWithPathOperation operation", + "clientEndpoint": "https://example.com/custom", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": {}, "cases": [ { "id": "AwsJson11HostWithPath", + "description": "Custom endpoints supplied by users can have paths", "given": { "name": "HostWithPathOperation", "http": { @@ -200,57 +238,41 @@ "requestUri": "/" } }, - "description": "Custom endpoints supplied by users can have paths", "params": {}, "serialized": { "method": "POST", "uri": "/custom/", "body": "{}", + "host": "example.com/custom", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.HostWithPathOperation" - }, - "host": "example.com/custom" + "X-Amz-Target": "JsonProtocol.HostWithPathOperation", + "Content-Type": "application/x-amz-json-1.1" + } } } - ], - "clientEndpoint": "https://example.com/custom" + ] }, { "description": "Test cases for JsonEnums operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { - "JsonEnumsInputOutput": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -267,12 +289,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -282,6 +298,35 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "JsonEnumsInputOutput": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } + }, "String": { "type": "string" } @@ -289,6 +334,7 @@ "cases": [ { "id": "AwsJson11Enums", + "description": "Serializes simple scalar properties", "given": { "name": "JsonEnums", "http": { @@ -301,7 +347,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -324,8 +369,8 @@ "uri": "/", "body": "{\n \"fooEnum1\": \"Foo\",\n \"fooEnum2\": \"0\",\n \"fooEnum3\": \"1\",\n \"fooEnumList\": [\n \"Foo\",\n \"0\"\n ],\n \"fooEnumSet\": [\n \"Foo\",\n \"0\"\n ],\n \"fooEnumMap\": {\n \"hi\": \"Foo\",\n \"zero\": \"0\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonEnums" + "X-Amz-Target": "JsonProtocol.JsonEnums", + "Content-Type": "application/x-amz-json-1.1" } } } @@ -334,15 +379,49 @@ { "description": "Test cases for JsonIntEnums operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, "JsonIntEnumsInputOutput": { "type": "structure", "members": { @@ -366,31 +445,6 @@ } } }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, "String": { "type": "string" } @@ -398,6 +452,7 @@ "cases": [ { "id": "AwsJson11IntEnums", + "description": "Serializes simple scalar properties", "given": { "name": "JsonIntEnums", "http": { @@ -410,7 +465,6 @@ "documentation": "

This example serializes intEnums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "intEnum1": 1, "intEnum2": 2, @@ -433,8 +487,8 @@ "uri": "/", "body": "{\n \"intEnum1\": 1,\n \"intEnum2\": 2,\n \"intEnum3\": 3,\n \"intEnumList\": [\n 1,\n 2\n ],\n \"intEnumSet\": [\n 1,\n 2\n ],\n \"intEnumMap\": {\n \"a\": 1,\n \"b\": 2\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonIntEnums" + "X-Amz-Target": "JsonProtocol.JsonIntEnums", + "Content-Type": "application/x-amz-json-1.1" } } } @@ -443,23 +497,52 @@ { "description": "Test cases for JsonUnions operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { - "UnionInputOutput": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "GreetingStruct": { "type": "structure", "members": { - "contents": { - "shape": "MyUnion" + "hi": { + "shape": "String" } - }, - "documentation": "

A shared structure that contains a single union member.

" + } + }, + "Integer": { + "type": "integer", + "box": true }, "MyUnion": { "type": "structure", @@ -498,30 +581,6 @@ "String": { "type": "string" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Blob": { - "type": "blob" - }, - "Timestamp": { - "type": "timestamp" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "StringList": { "type": "list", "member": { @@ -537,18 +596,23 @@ "shape": "String" } }, - "GreetingStruct": { + "Timestamp": { + "type": "timestamp" + }, + "UnionInputOutput": { "type": "structure", "members": { - "hi": { - "shape": "String" + "contents": { + "shape": "MyUnion" } - } + }, + "documentation": "

A shared structure that contains a single union member.

" } }, "cases": [ { "id": "AwsJson11SerializeStringUnionValue", + "description": "Serializes a string union value", "given": { "name": "JsonUnions", "http": { @@ -561,7 +625,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a string union value", "params": { "contents": { "stringValue": "foo" @@ -572,13 +635,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"stringValue\": \"foo\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeBooleanUnionValue", + "description": "Serializes a boolean union value", "given": { "name": "JsonUnions", "http": { @@ -591,7 +655,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a boolean union value", "params": { "contents": { "booleanValue": true @@ -602,13 +665,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"booleanValue\": true\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeNumberUnionValue", + "description": "Serializes a number union value", "given": { "name": "JsonUnions", "http": { @@ -621,7 +685,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a number union value", "params": { "contents": { "numberValue": 1 @@ -632,13 +695,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"numberValue\": 1\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeBlobUnionValue", + "description": "Serializes a blob union value", "given": { "name": "JsonUnions", "http": { @@ -651,7 +715,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a blob union value", "params": { "contents": { "blobValue": "foo" @@ -662,13 +725,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"blobValue\": \"Zm9v\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeTimestampUnionValue", + "description": "Serializes a timestamp union value", "given": { "name": "JsonUnions", "http": { @@ -681,7 +745,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a timestamp union value", "params": { "contents": { "timestampValue": 1398796238 @@ -692,13 +755,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"timestampValue\": 1398796238\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeEnumUnionValue", + "description": "Serializes an enum union value", "given": { "name": "JsonUnions", "http": { @@ -711,7 +775,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes an enum union value", "params": { "contents": { "enumValue": "Foo" @@ -722,13 +785,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"enumValue\": \"Foo\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeListUnionValue", + "description": "Serializes a list union value", "given": { "name": "JsonUnions", "http": { @@ -741,7 +805,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a list union value", "params": { "contents": { "listValue": [ @@ -755,13 +818,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"listValue\": [\"foo\", \"bar\"]\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeMapUnionValue", + "description": "Serializes a map union value", "given": { "name": "JsonUnions", "http": { @@ -774,7 +838,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a map union value", "params": { "contents": { "mapValue": { @@ -788,13 +851,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"mapValue\": {\n \"foo\": \"bar\",\n \"spam\": \"eggs\"\n }\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SerializeStructureUnionValue", + "description": "Serializes a structure union value", "given": { "name": "JsonUnions", "http": { @@ -807,7 +871,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a structure union value", "params": { "contents": { "structureValue": { @@ -820,8 +883,8 @@ "uri": "/", "body": "{\n \"contents\": {\n \"structureValue\": {\n \"hi\": \"hello\"\n }\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonUnions" + "X-Amz-Target": "JsonProtocol.JsonUnions", + "Content-Type": "application/x-amz-json-1.1" } } } @@ -830,15 +893,50 @@ { "description": "Test cases for KitchenSinkOperation operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "EmptyStruct": { + "type": "structure", + "members": {} + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "JsonValue": { + "type": "string" + }, "KitchenSink": { "type": "structure", "members": { @@ -909,53 +1007,25 @@ "SimpleStruct": { "shape": "SimpleStruct" }, - "String": { - "shape": "String" - }, - "StructWithJsonName": { - "shape": "StructWithJsonName" - }, - "Timestamp": { - "shape": "Timestamp" - }, - "UnixTimestamp": { - "shape": "SyntheticTimestamp_epoch_seconds" - } - } - }, - "Blob": { - "type": "blob" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "EmptyStruct": { - "type": "structure", - "members": {} - }, - "Float": { - "type": "float", - "box": true - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "Integer": { - "type": "integer", - "box": true - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" + "String": { + "shape": "String" + }, + "StructWithJsonName": { + "shape": "StructWithJsonName" + }, + "Timestamp": { + "shape": "Timestamp" + }, + "UnixTimestamp": { + "shape": "SyntheticTimestamp_epoch_seconds" + } + } }, - "JsonValue": { - "type": "string" + "ListOfKitchenSinks": { + "type": "list", + "member": { + "shape": "KitchenSink" + } }, "ListOfListOfStrings": { "type": "list", @@ -985,6 +1055,15 @@ "type": "long", "box": true }, + "MapOfKitchenSinks": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "KitchenSink" + } + }, "MapOfListsOfStrings": { "type": "map", "key": { @@ -1021,21 +1100,6 @@ "shape": "SimpleStruct" } }, - "ListOfKitchenSinks": { - "type": "list", - "member": { - "shape": "KitchenSink" - } - }, - "MapOfKitchenSinks": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "KitchenSink" - } - }, "SimpleStruct": { "type": "structure", "members": { @@ -1055,17 +1119,26 @@ } } }, - "Timestamp": { - "type": "timestamp" + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" }, "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "serializes_string_shapes", + "description": "Serializes string shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1076,7 +1149,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes string shapes", "params": { "String": "abc xyz" }, @@ -1085,8 +1157,8 @@ "uri": "/", "body": "{\"String\":\"abc xyz\"}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1095,6 +1167,7 @@ }, { "id": "serializes_string_shapes_with_jsonvalue_trait", + "description": "Serializes string shapes with jsonvalue trait", "given": { "name": "KitchenSinkOperation", "http": { @@ -1105,7 +1178,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes string shapes with jsonvalue trait", "params": { "JsonValue": "{\"string\":\"value\",\"number\":1234.5,\"boolTrue\":true,\"boolFalse\":false,\"array\":[1,2,3,4],\"object\":{\"key\":\"value\"},\"null\":null}" }, @@ -1114,8 +1186,8 @@ "uri": "/", "body": "{\"JsonValue\":\"{\\\"string\\\":\\\"value\\\",\\\"number\\\":1234.5,\\\"boolTrue\\\":true,\\\"boolFalse\\\":false,\\\"array\\\":[1,2,3,4],\\\"object\\\":{\\\"key\\\":\\\"value\\\"},\\\"null\\\":null}\"}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1124,6 +1196,7 @@ }, { "id": "serializes_integer_shapes", + "description": "Serializes integer shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1134,7 +1207,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes integer shapes", "params": { "Integer": 1234 }, @@ -1143,8 +1215,8 @@ "uri": "/", "body": "{\"Integer\":1234}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1153,6 +1225,7 @@ }, { "id": "serializes_long_shapes", + "description": "Serializes long shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1163,7 +1236,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes long shapes", "params": { "Long": 999999999999 }, @@ -1172,8 +1244,8 @@ "uri": "/", "body": "{\"Long\":999999999999}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1182,6 +1254,7 @@ }, { "id": "serializes_float_shapes", + "description": "Serializes float shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1192,7 +1265,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes float shapes", "params": { "Float": 1234.5 }, @@ -1201,8 +1273,8 @@ "uri": "/", "body": "{\"Float\":1234.5}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1211,6 +1283,7 @@ }, { "id": "serializes_double_shapes", + "description": "Serializes double shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1221,7 +1294,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes double shapes", "params": { "Double": 1234.5 }, @@ -1230,8 +1302,8 @@ "uri": "/", "body": "{\"Double\":1234.5}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1240,6 +1312,7 @@ }, { "id": "serializes_blob_shapes", + "description": "Serializes blob shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1250,7 +1323,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes blob shapes", "params": { "Blob": "binary-value" }, @@ -1259,8 +1331,8 @@ "uri": "/", "body": "{\"Blob\":\"YmluYXJ5LXZhbHVl\"}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1269,6 +1341,7 @@ }, { "id": "serializes_boolean_shapes_true", + "description": "Serializes boolean shapes (true)", "given": { "name": "KitchenSinkOperation", "http": { @@ -1279,7 +1352,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes boolean shapes (true)", "params": { "Boolean": true }, @@ -1288,8 +1360,8 @@ "uri": "/", "body": "{\"Boolean\":true}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1298,6 +1370,7 @@ }, { "id": "serializes_boolean_shapes_false", + "description": "Serializes boolean shapes (false)", "given": { "name": "KitchenSinkOperation", "http": { @@ -1308,7 +1381,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes boolean shapes (false)", "params": { "Boolean": false }, @@ -1317,8 +1389,8 @@ "uri": "/", "body": "{\"Boolean\":false}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1327,6 +1399,7 @@ }, { "id": "serializes_timestamp_shapes", + "description": "Serializes timestamp shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1337,7 +1410,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes timestamp shapes", "params": { "Timestamp": 946845296 }, @@ -1346,8 +1418,8 @@ "uri": "/", "body": "{\"Timestamp\":946845296}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1356,6 +1428,7 @@ }, { "id": "serializes_timestamp_shapes_with_iso8601_timestampformat", + "description": "Serializes timestamp shapes with iso8601 timestampFormat", "given": { "name": "KitchenSinkOperation", "http": { @@ -1366,7 +1439,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes timestamp shapes with iso8601 timestampFormat", "params": { "Iso8601Timestamp": 946845296 }, @@ -1375,8 +1447,8 @@ "uri": "/", "body": "{\"Iso8601Timestamp\":\"2000-01-02T20:34:56Z\"}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1385,6 +1457,7 @@ }, { "id": "serializes_timestamp_shapes_with_httpdate_timestampformat", + "description": "Serializes timestamp shapes with httpdate timestampFormat", "given": { "name": "KitchenSinkOperation", "http": { @@ -1395,7 +1468,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes timestamp shapes with httpdate timestampFormat", "params": { "HttpdateTimestamp": 946845296 }, @@ -1404,8 +1476,8 @@ "uri": "/", "body": "{\"HttpdateTimestamp\":\"Sun, 02 Jan 2000 20:34:56 GMT\"}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1414,6 +1486,7 @@ }, { "id": "serializes_timestamp_shapes_with_unixtimestamp_timestampformat", + "description": "Serializes timestamp shapes with unixTimestamp timestampFormat", "given": { "name": "KitchenSinkOperation", "http": { @@ -1424,7 +1497,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes timestamp shapes with unixTimestamp timestampFormat", "params": { "UnixTimestamp": 946845296 }, @@ -1433,8 +1505,8 @@ "uri": "/", "body": "{\"UnixTimestamp\":946845296}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1443,6 +1515,7 @@ }, { "id": "serializes_list_shapes", + "description": "Serializes list shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1453,7 +1526,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes list shapes", "params": { "ListOfStrings": [ "abc", @@ -1466,8 +1538,8 @@ "uri": "/", "body": "{\"ListOfStrings\":[\"abc\",\"mno\",\"xyz\"]}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1476,6 +1548,7 @@ }, { "id": "serializes_empty_list_shapes", + "description": "Serializes empty list shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1486,7 +1559,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes empty list shapes", "params": { "ListOfStrings": [] }, @@ -1495,8 +1567,8 @@ "uri": "/", "body": "{\"ListOfStrings\":[]}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1505,6 +1577,7 @@ }, { "id": "serializes_list_of_map_shapes", + "description": "Serializes list of map shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1515,7 +1588,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes list of map shapes", "params": { "ListOfMapsOfStrings": [ { @@ -1534,8 +1606,8 @@ "uri": "/", "body": "{\"ListOfMapsOfStrings\":[{\"foo\":\"bar\"},{\"abc\":\"xyz\"},{\"red\":\"blue\"}]}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1544,6 +1616,7 @@ }, { "id": "serializes_list_of_structure_shapes", + "description": "Serializes list of structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1554,7 +1627,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes list of structure shapes", "params": { "ListOfStructs": [ { @@ -1573,8 +1645,8 @@ "uri": "/", "body": "{\"ListOfStructs\":[{\"Value\":\"abc\"},{\"Value\":\"mno\"},{\"Value\":\"xyz\"}]}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1583,6 +1655,7 @@ }, { "id": "serializes_list_of_recursive_structure_shapes", + "description": "Serializes list of recursive structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1593,7 +1666,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes list of recursive structure shapes", "params": { "RecursiveList": [ { @@ -1614,8 +1686,8 @@ "uri": "/", "body": "{\"RecursiveList\":[{\"RecursiveList\":[{\"RecursiveList\":[{\"Integer\":123}]}]}]}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1624,6 +1696,7 @@ }, { "id": "serializes_map_shapes", + "description": "Serializes map shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1634,7 +1707,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes map shapes", "params": { "MapOfStrings": { "abc": "xyz", @@ -1646,8 +1718,8 @@ "uri": "/", "body": "{\"MapOfStrings\":{\"abc\":\"xyz\",\"mno\":\"hjk\"}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1656,6 +1728,7 @@ }, { "id": "serializes_empty_map_shapes", + "description": "Serializes empty map shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1666,7 +1739,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes empty map shapes", "params": { "MapOfStrings": {} }, @@ -1675,8 +1747,8 @@ "uri": "/", "body": "{\"MapOfStrings\":{}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1685,6 +1757,7 @@ }, { "id": "serializes_map_of_list_shapes", + "description": "Serializes map of list shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1695,7 +1768,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes map of list shapes", "params": { "MapOfListsOfStrings": { "abc": [ @@ -1713,8 +1785,8 @@ "uri": "/", "body": "{\"MapOfListsOfStrings\":{\"abc\":[\"abc\",\"xyz\"],\"mno\":[\"xyz\",\"abc\"]}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1723,6 +1795,7 @@ }, { "id": "serializes_map_of_structure_shapes", + "description": "Serializes map of structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1733,7 +1806,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes map of structure shapes", "params": { "MapOfStructs": { "key1": { @@ -1749,8 +1821,8 @@ "uri": "/", "body": "{\"MapOfStructs\":{\"key1\":{\"Value\":\"value-1\"},\"key2\":{\"Value\":\"value-2\"}}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1759,6 +1831,7 @@ }, { "id": "serializes_map_of_recursive_structure_shapes", + "description": "Serializes map of recursive structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1769,7 +1842,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes map of recursive structure shapes", "params": { "RecursiveMap": { "key1": { @@ -1790,8 +1862,8 @@ "uri": "/", "body": "{\"RecursiveMap\":{\"key1\":{\"RecursiveMap\":{\"key2\":{\"RecursiveMap\":{\"key3\":{\"Boolean\":false}}}}}}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1800,6 +1872,7 @@ }, { "id": "serializes_structure_shapes", + "description": "Serializes structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1810,7 +1883,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes structure shapes", "params": { "SimpleStruct": { "Value": "abc" @@ -1821,8 +1893,8 @@ "uri": "/", "body": "{\"SimpleStruct\":{\"Value\":\"abc\"}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1831,6 +1903,7 @@ }, { "id": "serializes_structure_members_with_locationname_traits", + "description": "Serializes structure members with locationName traits", "given": { "name": "KitchenSinkOperation", "http": { @@ -1841,7 +1914,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes structure members with locationName traits", "params": { "StructWithJsonName": { "Value": "some-value" @@ -1852,8 +1924,8 @@ "uri": "/", "body": "{\"StructWithJsonName\":{\"Value\":\"some-value\"}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1862,6 +1934,7 @@ }, { "id": "serializes_empty_structure_shapes", + "description": "Serializes empty structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1872,7 +1945,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes empty structure shapes", "params": { "SimpleStruct": {} }, @@ -1881,8 +1953,8 @@ "uri": "/", "body": "{\"SimpleStruct\":{}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1891,6 +1963,7 @@ }, { "id": "serializes_structure_which_have_no_members", + "description": "Serializes structure which have no members", "given": { "name": "KitchenSinkOperation", "http": { @@ -1901,7 +1974,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes structure which have no members", "params": { "EmptyStruct": {} }, @@ -1910,8 +1982,8 @@ "uri": "/", "body": "{\"EmptyStruct\":{}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1920,6 +1992,7 @@ }, { "id": "serializes_recursive_structure_shapes", + "description": "Serializes recursive structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1930,7 +2003,6 @@ "shape": "KitchenSink" } }, - "description": "Serializes recursive structure shapes", "params": { "String": "top-value", "Boolean": false, @@ -1957,8 +2029,8 @@ "uri": "/", "body": "{\"String\":\"top-value\",\"Boolean\":false,\"RecursiveStruct\":{\"String\":\"nested-value\",\"Boolean\":true,\"RecursiveList\":[{\"String\":\"string-only\"},{\"RecursiveStruct\":{\"MapOfStrings\":{\"color\":\"red\",\"size\":\"large\"}}}]}}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.KitchenSinkOperation" + "X-Amz-Target": "JsonProtocol.KitchenSinkOperation", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -1970,13 +2042,22 @@ { "description": "Test cases for NullOperation operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "NullOperationInputOutput": { @@ -1994,6 +2075,7 @@ "cases": [ { "id": "AwsJson11StructuresDontSerializeNullValues", + "description": "Null structure values are dropped", "given": { "name": "NullOperation", "http": { @@ -2004,7 +2086,6 @@ "shape": "NullOperationInputOutput" } }, - "description": "Null structure values are dropped", "params": { "string": null }, @@ -2013,8 +2094,8 @@ "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.NullOperation" + "X-Amz-Target": "JsonProtocol.NullOperation", + "Content-Type": "application/x-amz-json-1.1" } } } @@ -2023,13 +2104,22 @@ { "description": "Test cases for OperationWithOptionalInputOutput operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "OperationWithOptionalInputOutputInput": { @@ -2047,6 +2137,7 @@ "cases": [ { "id": "can_call_operation_with_no_input_or_output", + "description": "Can call operations with no input or output", "given": { "name": "OperationWithOptionalInputOutput", "http": { @@ -2057,20 +2148,20 @@ "shape": "OperationWithOptionalInputOutputInput" } }, - "description": "Can call operations with no input or output", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.OperationWithOptionalInputOutput" + "X-Amz-Target": "JsonProtocol.OperationWithOptionalInputOutput", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "can_call_operation_with_optional_input", + "description": "Can invoke operations with optional input", "given": { "name": "OperationWithOptionalInputOutput", "http": { @@ -2081,7 +2172,6 @@ "shape": "OperationWithOptionalInputOutputInput" } }, - "description": "Can invoke operations with optional input", "params": { "Value": "Hi" }, @@ -2090,8 +2180,8 @@ "uri": "/", "body": "{\"Value\":\"Hi\"}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.OperationWithOptionalInputOutput" + "X-Amz-Target": "JsonProtocol.OperationWithOptionalInputOutput", + "Content-Type": "application/x-amz-json-1.1" } } } @@ -2100,15 +2190,29 @@ { "description": "Test cases for PutAndGetInlineDocuments operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "PutAndGetInlineDocumentsInputOutput": { "type": "structure", "members": { @@ -2116,16 +2220,12 @@ "shape": "Document" } } - }, - "Document": { - "type": "structure", - "members": {}, - "document": true } }, "cases": [ { "id": "PutAndGetInlineDocumentsInput", + "description": "Serializes inline documents in a JSON request.", "given": { "name": "PutAndGetInlineDocuments", "http": { @@ -2137,7 +2237,6 @@ }, "documentation": "

This example serializes an inline document as part of the payload.

" }, - "description": "Serializes inline documents in a JSON request.", "params": { "inlineDocument": { "foo": "bar" @@ -2148,8 +2247,8 @@ "uri": "/", "body": "{\n \"inlineDocument\": {\"foo\": \"bar\"}\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.PutAndGetInlineDocuments" + "X-Amz-Target": "JsonProtocol.PutAndGetInlineDocuments", + "Content-Type": "application/x-amz-json-1.1" }, "requireHeaders": [ "Content-Length" @@ -2161,13 +2260,22 @@ { "description": "Test cases for PutWithContentEncoding operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "PutWithContentEncodingInput": { @@ -2188,6 +2296,7 @@ "cases": [ { "id": "SDKAppliedContentEncoding_awsJson1_1", + "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "given": { "name": "PutWithContentEncoding", "http": { @@ -2203,7 +2312,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "params": { "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" }, @@ -2217,6 +2325,7 @@ }, { "id": "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsJson1_1", + "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the awsJson1_1 protocol.\n", "given": { "name": "PutWithContentEncoding", "http": { @@ -2232,7 +2341,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the awsJson1_1 protocol.\n", "params": { "encoding": "custom", "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" @@ -2250,15 +2358,32 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "SimpleScalarPropertiesInputOutput": { "type": "structure", "members": { @@ -2269,19 +2394,12 @@ "shape": "Double" } } - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "AwsJson11SupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2292,7 +2410,6 @@ "shape": "SimpleScalarPropertiesInputOutput" } }, - "description": "Supports handling NaN float values.", "params": { "floatValue": "NaN", "doubleValue": "NaN" @@ -2302,13 +2419,14 @@ "uri": "/", "body": "{\n \"floatValue\": \"NaN\",\n \"doubleValue\": \"NaN\"\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.SimpleScalarProperties" + "X-Amz-Target": "JsonProtocol.SimpleScalarProperties", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2319,7 +2437,6 @@ "shape": "SimpleScalarPropertiesInputOutput" } }, - "description": "Supports handling Infinity float values.", "params": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -2329,13 +2446,14 @@ "uri": "/", "body": "{\n \"floatValue\": \"Infinity\",\n \"doubleValue\": \"Infinity\"\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.SimpleScalarProperties" + "X-Amz-Target": "JsonProtocol.SimpleScalarProperties", + "Content-Type": "application/x-amz-json-1.1" } } }, { "id": "AwsJson11SupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2346,7 +2464,6 @@ "shape": "SimpleScalarPropertiesInputOutput" } }, - "description": "Supports handling -Infinity float values.", "params": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -2356,8 +2473,120 @@ "uri": "/", "body": "{\n \"floatValue\": \"-Infinity\",\n \"doubleValue\": \"-Infinity\"\n}", "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.SimpleScalarProperties" + "X-Amz-Target": "JsonProtocol.SimpleScalarProperties", + "Content-Type": "application/x-amz-json-1.1" + } + } + } + ] + }, + { + "description": "Test cases for SparseNullsOperation operation", + "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", + "protocol": "json", + "protocols": [ + "json" + ], + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" + }, + "shapes": { + "SparseNullsOperationInputOutput": { + "type": "structure", + "members": { + "sparseStringList": { + "shape": "SparseStringList" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + } + } + }, + "SparseStringList": { + "type": "list", + "member": { + "shape": "String" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "AwsJson11SparseMapsSerializeNullValues", + "description": "Serializes null values in maps", + "given": { + "name": "SparseNullsOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "SparseNullsOperationInputOutput" + } + }, + "params": { + "sparseStringMap": { + "foo": null + } + }, + "serialized": { + "method": "POST", + "uri": "/", + "body": "{\n \"sparseStringMap\": {\n \"foo\": null\n }\n}", + "headers": { + "X-Amz-Target": "JsonProtocol.SparseNullsOperation", + "Content-Type": "application/x-amz-json-1.1" + } + } + }, + { + "id": "AwsJson11SparseListsSerializeNull", + "description": "Serializes null values in lists", + "given": { + "name": "SparseNullsOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "SparseNullsOperationInputOutput" + } + }, + "params": { + "sparseStringList": [ + null + ] + }, + "serialized": { + "method": "POST", + "uri": "/", + "body": "{\n \"sparseStringList\": [\n null\n ]\n}", + "headers": { + "X-Amz-Target": "JsonProtocol.SparseNullsOperation", + "Content-Type": "application/x-amz-json-1.1" } } } diff --git a/tests/unit/botocore/protocols/input/json_1_0-query-compatible.json b/tests/unit/botocore/protocols/input/json_1_0-query-compatible.json index 170d1e7414ce..6db096423132 100644 --- a/tests/unit/botocore/protocols/input/json_1_0-query-compatible.json +++ b/tests/unit/botocore/protocols/input/json_1_0-query-compatible.json @@ -24,6 +24,7 @@ "cases": [ { "id": "QueryCompatibleAwsJson10CborSendsQueryModeHeader", + "description": "Clients for query-compatible services MUST send the x-amzn-query-mode header.", "given": { "name": "QueryCompatibleOperation", "http": { @@ -32,16 +33,15 @@ }, "idempotent": true }, - "description": "Clients for query-compatible services MUST send the x-amzn-query-mode header.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.0", "X-Amz-Target": "QueryCompatibleJsonRpc10.QueryCompatibleOperation", - "x-amzn-query-mode": "true" + "x-amzn-query-mode": "true", + "Content-Type": "application/x-amz-json-1.0" } } } diff --git a/tests/unit/botocore/protocols/input/json_1_0.json b/tests/unit/botocore/protocols/input/json_1_0.json index f746c223618b..5605c57474b6 100644 --- a/tests/unit/botocore/protocols/input/json_1_0.json +++ b/tests/unit/botocore/protocols/input/json_1_0.json @@ -2,13 +2,22 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "EmptyInputAndEmptyOutputInput": { @@ -19,6 +28,7 @@ "cases": [ { "id": "AwsJson10EmptyInputAndEmptyOutput", + "description": "Clients must always send an empty object if input is modeled.", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -30,15 +40,14 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "Clients must always send an empty object if input is modeled.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.EmptyInputAndEmptyOutput" + "X-Amz-Target": "JsonRpc10.EmptyInputAndEmptyOutput", + "Content-Type": "application/x-amz-json-1.0" } } } @@ -46,19 +55,30 @@ }, { "description": "Test cases for EndpointOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": {}, "cases": [ { "id": "AwsJson10EndpointTrait", + "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "given": { "name": "EndpointOperation", "http": { @@ -69,7 +89,6 @@ "hostPrefix": "foo." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "params": {}, "serialized": { "method": "POST", @@ -78,19 +97,28 @@ "host": "foo.example.com" } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "EndpointWithHostLabelOperationInput": { @@ -112,6 +140,7 @@ "cases": [ { "id": "AwsJson10EndpointTraitWithHostLabel", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "given": { "name": "EndpointWithHostLabelOperation", "http": { @@ -125,7 +154,6 @@ "hostPrefix": "foo.{label}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "params": { "label": "bar" }, @@ -136,24 +164,34 @@ "host": "foo.bar.example.com" } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for HostWithPathOperation operation", + "clientEndpoint": "https://example.com/custom", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": {}, "cases": [ { "id": "AwsJson10HostWithPath", + "description": "Custom endpoints supplied by users can have paths", "given": { "name": "HostWithPathOperation", "http": { @@ -161,7 +199,6 @@ "requestUri": "/" } }, - "description": "Custom endpoints supplied by users can have paths", "params": {}, "serialized": { "method": "POST", @@ -170,21 +207,62 @@ "host": "example.com/custom" } } - ], - "clientEndpoint": "https://example.com/custom" + ] }, { "description": "Test cases for JsonUnions operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, "JsonUnionsInput": { "type": "structure", "members": { @@ -233,34 +311,6 @@ "String": { "type": "string" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Blob": { - "type": "blob" - }, - "Timestamp": { - "type": "timestamp" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, "StringList": { "type": "list", "member": { @@ -276,18 +326,14 @@ "shape": "String" } }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "AwsJson10SerializeStringUnionValue", + "description": "Serializes a string union value", "given": { "name": "JsonUnions", "http": { @@ -300,7 +346,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a string union value", "params": { "contents": { "stringValue": "foo" @@ -311,13 +356,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"stringValue\": \"foo\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeBooleanUnionValue", + "description": "Serializes a boolean union value", "given": { "name": "JsonUnions", "http": { @@ -330,7 +376,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a boolean union value", "params": { "contents": { "booleanValue": true @@ -341,13 +386,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"booleanValue\": true\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeNumberUnionValue", + "description": "Serializes a number union value", "given": { "name": "JsonUnions", "http": { @@ -360,7 +406,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a number union value", "params": { "contents": { "numberValue": 1 @@ -371,13 +416,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"numberValue\": 1\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeBlobUnionValue", + "description": "Serializes a blob union value", "given": { "name": "JsonUnions", "http": { @@ -390,7 +436,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a blob union value", "params": { "contents": { "blobValue": "foo" @@ -401,13 +446,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"blobValue\": \"Zm9v\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeTimestampUnionValue", + "description": "Serializes a timestamp union value", "given": { "name": "JsonUnions", "http": { @@ -420,7 +466,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a timestamp union value", "params": { "contents": { "timestampValue": 1398796238 @@ -431,13 +476,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"timestampValue\": 1398796238\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeEnumUnionValue", + "description": "Serializes an enum union value", "given": { "name": "JsonUnions", "http": { @@ -450,7 +496,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes an enum union value", "params": { "contents": { "enumValue": "Foo" @@ -461,13 +506,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"enumValue\": \"Foo\"\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeIntEnumUnionValue", + "description": "Serializes an intEnum union value", "given": { "name": "JsonUnions", "http": { @@ -480,7 +526,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes an intEnum union value", "params": { "contents": { "intEnumValue": 1 @@ -491,13 +536,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"intEnumValue\": 1\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeListUnionValue", + "description": "Serializes a list union value", "given": { "name": "JsonUnions", "http": { @@ -510,7 +556,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a list union value", "params": { "contents": { "listValue": [ @@ -524,13 +569,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"listValue\": [\"foo\", \"bar\"]\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeMapUnionValue", + "description": "Serializes a map union value", "given": { "name": "JsonUnions", "http": { @@ -543,7 +589,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a map union value", "params": { "contents": { "mapValue": { @@ -557,13 +602,14 @@ "uri": "/", "body": "{\n \"contents\": {\n \"mapValue\": {\n \"foo\": \"bar\",\n \"spam\": \"eggs\"\n }\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SerializeStructureUnionValue", + "description": "Serializes a structure union value", "given": { "name": "JsonUnions", "http": { @@ -576,7 +622,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a structure union value", "params": { "contents": { "structureValue": { @@ -589,8 +634,8 @@ "uri": "/", "body": "{\n \"contents\": {\n \"structureValue\": {\n \"hi\": \"hello\"\n }\n }\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.JsonUnions" + "X-Amz-Target": "JsonRpc10.JsonUnions", + "Content-Type": "application/x-amz-json-1.0" } } } @@ -599,18 +644,28 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": {}, "cases": [ { "id": "AwsJson10MustAlwaysSendEmptyJsonPayload", + "description": "Clients must always send an empty JSON object payload for\noperations with no input (that is, `{}`). While AWS service\nimplementations support requests with no payload or requests\nthat send `{}`, always sending `{}` from the client is\npreferred for forward compatibility in case input is ever\nadded to an operation.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -619,15 +674,14 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "Clients must always send an empty JSON object payload for\noperations with no input (that is, `{}`). While AWS service\nimplementations support requests with no payload or requests\nthat send `{}`, always sending `{}` from the client is\npreferred for forward compatibility in case input is ever\nadded to an operation.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.NoInputAndNoOutput" + "X-Amz-Target": "JsonRpc10.NoInputAndNoOutput", + "Content-Type": "application/x-amz-json-1.0" } } } @@ -636,18 +690,28 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": {}, "cases": [ { "id": "AwsJson10NoInputAndOutput", + "description": "A client should always send and empty JSON object payload.", "given": { "name": "NoInputAndOutput", "http": { @@ -656,15 +720,14 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "A client should always send and empty JSON object payload.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "{}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.NoInputAndOutput" + "X-Amz-Target": "JsonRpc10.NoInputAndOutput", + "Content-Type": "application/x-amz-json-1.0" } } } @@ -673,13 +736,22 @@ { "description": "Test cases for PutWithContentEncoding operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "PutWithContentEncodingInput": { @@ -700,6 +772,7 @@ "cases": [ { "id": "SDKAppliedContentEncoding_awsJson1_0", + "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "given": { "name": "PutWithContentEncoding", "http": { @@ -715,7 +788,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "params": { "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" }, @@ -729,6 +801,7 @@ }, { "id": "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsJson1_0", + "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the awsJson1_0 protocol.\n", "given": { "name": "PutWithContentEncoding", "http": { @@ -744,7 +817,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the awsJson1_0 protocol.\n", "params": { "encoding": "custom", "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" @@ -760,17 +832,80 @@ ] }, { - "description": "Test cases for SimpleScalarProperties operation", + "description": "Test cases for QueryIncompatibleOperation operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" + }, + "shapes": {}, + "cases": [ + { + "id": "NonQueryCompatibleAwsJson10ForbidsQueryModeHeader", + "description": "The query mode header MUST NOT be set on non-query-compatible services.", + "given": { + "name": "QueryIncompatibleOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "idempotent": true + }, + "params": {}, + "serialized": { + "method": "POST", + "uri": "/", + "body": "{}", + "headers": { + "X-Amz-Target": "JsonRpc10.QueryIncompatibleOperation", + "Content-Type": "application/x-amz-json-1.0" + } + } + } + ] + }, + { + "description": "Test cases for SimpleScalarProperties operation", + "metadata": { "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "protocol": "json", + "protocols": [ + "json" + ], + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "SimpleScalarPropertiesInput": { "type": "structure", "members": { @@ -781,19 +916,12 @@ "shape": "Double" } } - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "AwsJson10SupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -804,7 +932,6 @@ "shape": "SimpleScalarPropertiesInput" } }, - "description": "Supports handling NaN float values.", "params": { "floatValue": "NaN", "doubleValue": "NaN" @@ -814,13 +941,14 @@ "uri": "/", "body": "{\n \"floatValue\": \"NaN\",\n \"doubleValue\": \"NaN\"\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.SimpleScalarProperties" + "X-Amz-Target": "JsonRpc10.SimpleScalarProperties", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -831,7 +959,6 @@ "shape": "SimpleScalarPropertiesInput" } }, - "description": "Supports handling Infinity float values.", "params": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -841,13 +968,14 @@ "uri": "/", "body": "{\n \"floatValue\": \"Infinity\",\n \"doubleValue\": \"Infinity\"\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.SimpleScalarProperties" + "X-Amz-Target": "JsonRpc10.SimpleScalarProperties", + "Content-Type": "application/x-amz-json-1.0" } } }, { "id": "AwsJson10SupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -858,7 +986,6 @@ "shape": "SimpleScalarPropertiesInput" } }, - "description": "Supports handling -Infinity float values.", "params": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -868,8 +995,8 @@ "uri": "/", "body": "{\n \"floatValue\": \"-Infinity\",\n \"doubleValue\": \"-Infinity\"\n}", "headers": { - "Content-Type": "application/x-amz-json-1.0", - "X-Amz-Target": "JsonRpc10.SimpleScalarProperties" + "X-Amz-Target": "JsonRpc10.SimpleScalarProperties", + "Content-Type": "application/x-amz-json-1.0" } } } diff --git a/tests/unit/botocore/protocols/input/query.json b/tests/unit/botocore/protocols/input/query.json index 58435cca0c84..1fe448bd44f5 100644 --- a/tests/unit/botocore/protocols/input/query.json +++ b/tests/unit/botocore/protocols/input/query.json @@ -2,11 +2,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "EmptyInputAndEmptyOutputInput": { @@ -17,6 +26,7 @@ "cases": [ { "id": "QueryEmptyInputAndEmptyOutput", + "description": "Empty input serializes no extra query params", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -28,7 +38,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response members.

While this should be rare, code generators must support this.

" }, - "description": "Empty input serializes no extra query params", "params": {}, "serialized": { "method": "POST", @@ -43,17 +52,28 @@ }, { "description": "Test cases for EndpointOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "AwsQueryEndpointTrait", + "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "given": { "name": "EndpointOperation", "http": { @@ -64,29 +84,37 @@ "hostPrefix": "foo." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "params": {}, "serialized": { "method": "POST", "uri": "/", "body": "Action=EndpointOperation&Version=2020-01-08", + "host": "foo.example.com", "headers": { "Content-Type": "application/x-www-form-urlencoded" - }, - "host": "foo.example.com" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "HostLabelInput": { @@ -108,6 +136,7 @@ "cases": [ { "id": "AwsQueryEndpointTraitWithHostLabel", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "given": { "name": "EndpointWithHostLabelOperation", "http": { @@ -121,7 +150,6 @@ "hostPrefix": "foo.{label}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "params": { "label": "bar" }, @@ -129,28 +157,38 @@ "method": "POST", "uri": "/", "body": "Action=EndpointWithHostLabelOperation&Version=2020-01-08&label=bar", + "host": "foo.bar.example.com", "headers": { "Content-Type": "application/x-www-form-urlencoded" - }, - "host": "foo.bar.example.com" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for HostWithPathOperation operation", + "clientEndpoint": "https://example.com/custom", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "QueryHostWithPath", + "description": "Custom endpoints supplied by users can have paths", "given": { "name": "HostWithPathOperation", "http": { @@ -158,7 +196,6 @@ "requestUri": "/" } }, - "description": "Custom endpoints supplied by users can have paths", "params": {}, "serialized": { "method": "POST", @@ -167,19 +204,31 @@ "host": "example.com/custom" } } - ], - "clientEndpoint": "https://example.com/custom" + ] }, { "description": "Test cases for NestedStructures operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, "NestedStructuresInput": { "type": "structure", "members": { @@ -188,6 +237,9 @@ } } }, + "String": { + "type": "string" + }, "StructArg": { "type": "structure", "members": { @@ -201,18 +253,12 @@ "shape": "StructArg" } } - }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true } }, "cases": [ { "id": "NestedStructures", + "description": "Serializes nested structures using dots", "given": { "name": "NestedStructures", "http": { @@ -224,7 +270,6 @@ }, "documentation": "

This test serializes nested and recursive structure members.

" }, - "description": "Serializes nested structures using dots", "params": { "Nested": { "StringArg": "foo", @@ -251,16 +296,26 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "QueryNoInputAndNoOutput", + "description": "No input serializes no additional query params", "given": { "name": "NoInputAndNoOutput", "http": { @@ -269,7 +324,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output.

While this should be rare, code generators must support this.

" }, - "description": "No input serializes no additional query params", "params": {}, "serialized": { "method": "POST", @@ -285,11 +339,20 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "NoInputAndOutputInput": { @@ -300,6 +363,7 @@ "cases": [ { "id": "QueryNoInputAndOutput", + "description": "No input serializes no payload", "given": { "name": "NoInputAndOutput", "http": { @@ -311,7 +375,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request payload or response members.

While this should be rare, code generators must support this.

" }, - "description": "No input serializes no payload", "params": {}, "serialized": { "method": "POST", @@ -327,11 +390,20 @@ { "description": "Test cases for PutWithContentEncoding operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "PutWithContentEncodingInput": { @@ -352,6 +424,7 @@ "cases": [ { "id": "SDKAppliedContentEncoding_awsQuery", + "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "given": { "name": "PutWithContentEncoding", "http": { @@ -367,7 +440,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "params": { "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" }, @@ -381,6 +453,7 @@ }, { "id": "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsQuery", + "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the awsQuery protocol.\n", "given": { "name": "PutWithContentEncoding", "http": { @@ -396,7 +469,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is NOT in the Content-Encoding header since HTTP binding\ntraits are ignored in the awsQuery protocol.\n", "params": { "encoding": "custom", "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" @@ -414,11 +486,20 @@ { "description": "Test cases for QueryIdempotencyTokenAutoFill operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "QueryIdempotencyTokenAutoFillInput": { @@ -437,6 +518,7 @@ "cases": [ { "id": "QueryProtocolIdempotencyTokenAutoFill", + "description": "Automatically adds idempotency token when not set", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -448,7 +530,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Automatically adds idempotency token when not set", "params": {}, "serialized": { "method": "POST", @@ -464,6 +545,7 @@ }, { "id": "QueryProtocolIdempotencyTokenAutoFillIsSet", + "description": "Uses the given idempotency token as-is", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -475,7 +557,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Uses the given idempotency token as-is", "params": { "token": "00000000-0000-4000-8000-000000000123" }, @@ -496,13 +577,51 @@ { "description": "Test cases for QueryLists operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "GreetingList": { + "type": "list", + "member": { + "shape": "GreetingStruct" + } + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "ListWithXmlName": { + "type": "list", + "member": { + "shape": "String", + "locationName": "item" + } + }, + "NestedStructWithList": { + "type": "structure", + "members": { + "ListArg": { + "shape": "StringList" + } + } + }, "QueryListsInput": { "type": "structure", "members": { @@ -529,48 +648,20 @@ } } }, + "String": { + "type": "string" + }, "StringList": { "type": "list", "member": { "shape": "String" } - }, - "GreetingList": { - "type": "list", - "member": { - "shape": "GreetingStruct" - } - }, - "ListWithXmlName": { - "type": "list", - "member": { - "shape": "String", - "locationName": "item" - } - }, - "NestedStructWithList": { - "type": "structure", - "members": { - "ListArg": { - "shape": "StringList" - } - } - }, - "String": { - "type": "string" - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } } }, "cases": [ { "id": "QueryLists", + "description": "Serializes query lists", "given": { "name": "QueryLists", "http": { @@ -582,7 +673,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Serializes query lists", "params": { "ListArg": [ "foo", @@ -609,6 +699,7 @@ }, { "id": "EmptyQueryLists", + "description": "Serializes empty query lists", "given": { "name": "QueryLists", "http": { @@ -620,7 +711,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Serializes empty query lists", "params": { "ListArg": [] }, @@ -635,6 +725,7 @@ }, { "id": "FlattenedQueryLists", + "description": "Flattens query lists by repeating the member name and removing the member element", "given": { "name": "QueryLists", "http": { @@ -646,7 +737,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Flattens query lists by repeating the member name and removing the member element", "params": { "FlattenedListArg": [ "A", @@ -664,6 +754,7 @@ }, { "id": "QueryListArgWithXmlNameMember", + "description": "Changes the member of lists using xmlName trait", "given": { "name": "QueryLists", "http": { @@ -675,7 +766,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Changes the member of lists using xmlName trait", "params": { "ListArgWithXmlNameMember": [ "A", @@ -693,6 +783,7 @@ }, { "id": "QueryFlattenedListArgWithXmlName", + "description": "Changes the name of flattened lists using xmlName trait on the structure member", "given": { "name": "QueryLists", "http": { @@ -704,7 +795,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Changes the name of flattened lists using xmlName trait on the structure member", "params": { "FlattenedListArgWithXmlName": [ "A", @@ -722,6 +812,7 @@ }, { "id": "QueryNestedStructWithList", + "description": "Nested structure with a list member", "given": { "name": "QueryLists", "http": { @@ -733,7 +824,6 @@ }, "documentation": "

This test serializes simple and complex lists.

" }, - "description": "Nested structure with a list member", "params": { "NestedWithList": { "ListArg": [ @@ -756,62 +846,46 @@ { "description": "Test cases for QueryMaps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "QueryMapsInput": { - "type": "structure", - "members": { - "MapArg": { - "shape": "StringMap" - }, - "RenamedMapArg": { - "shape": "StringMap", - "locationName": "Foo" - }, - "ComplexMapArg": { - "shape": "ComplexMap" - }, - "MapWithXmlMemberName": { - "shape": "MapWithXmlName" - }, - "FlattenedMap": { - "shape": "StringMap", - "flattened": true - }, - "FlattenedMapWithXmlName": { - "shape": "MapWithXmlName", - "flattened": true, - "locationName": "Hi" - }, - "MapOfLists": { - "shape": "MapOfLists" - }, - "NestedStructWithMap": { - "shape": "NestedStructWithMap" - } - } - }, - "StringMap": { + "ComplexMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "String" + "shape": "GreetingStruct" } }, - "ComplexMap": { + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "MapOfLists": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "GreetingStruct" + "shape": "StringList" } }, "MapWithXmlName": { @@ -825,20 +899,44 @@ "locationName": "V" } }, - "MapOfLists": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "StringList" + "NestedStructWithMap": { + "type": "structure", + "members": { + "MapArg": { + "shape": "StringMap" + } } }, - "NestedStructWithMap": { + "QueryMapsInput": { "type": "structure", "members": { "MapArg": { "shape": "StringMap" + }, + "RenamedMapArg": { + "shape": "StringMap", + "locationName": "Foo" + }, + "ComplexMapArg": { + "shape": "ComplexMap" + }, + "MapWithXmlMemberName": { + "shape": "MapWithXmlName" + }, + "FlattenedMap": { + "shape": "StringMap", + "flattened": true + }, + "FlattenedMapWithXmlName": { + "shape": "MapWithXmlName", + "flattened": true, + "locationName": "Hi" + }, + "MapOfLists": { + "shape": "MapOfLists" + }, + "NestedStructWithMap": { + "shape": "NestedStructWithMap" } } }, @@ -851,18 +949,20 @@ "shape": "String" } }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } + "StringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" } } }, "cases": [ { "id": "QuerySimpleQueryMaps", + "description": "Serializes query maps", "given": { "name": "QueryMaps", "http": { @@ -874,7 +974,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes query maps", "params": { "MapArg": { "bar": "Bar", @@ -892,6 +991,7 @@ }, { "id": "QuerySimpleQueryMapsWithXmlName", + "description": "Serializes query maps and uses xmlName", "given": { "name": "QueryMaps", "http": { @@ -903,7 +1003,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes query maps and uses xmlName", "params": { "RenamedMapArg": { "foo": "Foo" @@ -920,6 +1019,7 @@ }, { "id": "QueryComplexQueryMaps", + "description": "Serializes complex query maps", "given": { "name": "QueryMaps", "http": { @@ -931,7 +1031,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes complex query maps", "params": { "ComplexMapArg": { "bar": { @@ -953,6 +1052,7 @@ }, { "id": "QueryEmptyQueryMaps", + "description": "Does not serialize empty query maps", "given": { "name": "QueryMaps", "http": { @@ -964,7 +1064,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Does not serialize empty query maps", "params": { "MapArg": {} }, @@ -979,6 +1078,7 @@ }, { "id": "QueryQueryMapWithMemberXmlName", + "description": "Serializes query maps where the member has an xmlName trait", "given": { "name": "QueryMaps", "http": { @@ -990,7 +1090,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes query maps where the member has an xmlName trait", "params": { "MapWithXmlMemberName": { "bar": "Bar", @@ -1008,6 +1107,7 @@ }, { "id": "QueryFlattenedQueryMaps", + "description": "Serializes flattened query maps", "given": { "name": "QueryMaps", "http": { @@ -1019,7 +1119,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes flattened query maps", "params": { "FlattenedMap": { "bar": "Bar", @@ -1037,6 +1136,7 @@ }, { "id": "QueryFlattenedQueryMapsWithXmlName", + "description": "Serializes flattened query maps that use an xmlName", "given": { "name": "QueryMaps", "http": { @@ -1048,7 +1148,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes flattened query maps that use an xmlName", "params": { "FlattenedMapWithXmlName": { "bar": "Bar", @@ -1066,6 +1165,7 @@ }, { "id": "QueryQueryMapOfLists", + "description": "Serializes query map of lists", "given": { "name": "QueryMaps", "http": { @@ -1077,7 +1177,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes query map of lists", "params": { "MapOfLists": { "bar": [ @@ -1101,6 +1200,7 @@ }, { "id": "QueryNestedStructWithMap", + "description": "Serializes nested struct with map member", "given": { "name": "QueryMaps", "http": { @@ -1112,7 +1212,6 @@ }, "documentation": "

This test serializes simple and complex maps.

" }, - "description": "Serializes nested struct with map member", "params": { "NestedStructWithMap": { "MapArg": { @@ -1135,13 +1234,26 @@ { "description": "Test cases for QueryTimestamps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, "QueryTimestampsInput": { "type": "structure", "members": { @@ -1156,21 +1268,18 @@ } } }, - "Timestamp": { - "type": "timestamp" - }, "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "QueryTimestampsInput", + "description": "Serializes timestamps", "given": { "name": "QueryTimestamps", "http": { @@ -1182,7 +1291,6 @@ }, "documentation": "

This test serializes timestamps.

  1. Timestamps are serialized as RFC 3339 date-time values by default.
  2. A timestampFormat trait on a member changes the format.
  3. A timestampFormat trait on the shape targeted by the member changes the format.
" }, - "description": "Serializes timestamps", "params": { "normalFormat": 1422172800, "epochMember": 1422172800, @@ -1205,13 +1313,55 @@ { "description": "Test cases for SimpleInputParams operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, "SimpleInputParamsInput": { "type": "structure", "members": { @@ -1246,44 +1396,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Blob": { - "type": "blob" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "IntegerEnum": { - "type": "integer", - "box": true } }, "cases": [ { "id": "QuerySimpleInputParamsStrings", + "description": "Serializes strings", "given": { "name": "SimpleInputParams", "http": { @@ -1295,7 +1413,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes strings", "params": { "Foo": "val1", "Bar": "val2" @@ -1314,6 +1431,7 @@ }, { "id": "QuerySimpleInputParamsStringAndBooleanTrue", + "description": "Serializes booleans that are true", "given": { "name": "SimpleInputParams", "http": { @@ -1325,7 +1443,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes booleans that are true", "params": { "Foo": "val1", "Baz": true @@ -1344,6 +1461,7 @@ }, { "id": "QuerySimpleInputParamsStringsAndBooleanFalse", + "description": "Serializes booleans that are false", "given": { "name": "SimpleInputParams", "http": { @@ -1355,7 +1473,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes booleans that are false", "params": { "Baz": false }, @@ -1373,6 +1490,7 @@ }, { "id": "QuerySimpleInputParamsInteger", + "description": "Serializes integers", "given": { "name": "SimpleInputParams", "http": { @@ -1384,7 +1502,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes integers", "params": { "Bam": 10 }, @@ -1402,6 +1519,7 @@ }, { "id": "QuerySimpleInputParamsFloat", + "description": "Serializes floats", "given": { "name": "SimpleInputParams", "http": { @@ -1413,7 +1531,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes floats", "params": { "Boo": 10.8 }, @@ -1431,6 +1548,7 @@ }, { "id": "QuerySimpleInputParamsBlob", + "description": "Blobs are base64 encoded in the query string", "given": { "name": "SimpleInputParams", "http": { @@ -1442,7 +1560,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Blobs are base64 encoded in the query string", "params": { "Qux": "value" }, @@ -1460,6 +1577,7 @@ }, { "id": "QueryEnums", + "description": "Serializes enums in the query string", "given": { "name": "SimpleInputParams", "http": { @@ -1471,7 +1589,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes enums in the query string", "params": { "FooEnum": "Foo" }, @@ -1489,6 +1606,7 @@ }, { "id": "QueryIntEnums", + "description": "Serializes intEnums in the query string", "given": { "name": "SimpleInputParams", "http": { @@ -1500,7 +1618,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Serializes intEnums in the query string", "params": { "IntegerEnum": 1 }, @@ -1518,6 +1635,7 @@ }, { "id": "AwsQuerySupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleInputParams", "http": { @@ -1529,7 +1647,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Supports handling NaN float values.", "params": { "FloatValue": "NaN", "Boo": "NaN" @@ -1548,6 +1665,7 @@ }, { "id": "AwsQuerySupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleInputParams", "http": { @@ -1559,7 +1677,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Supports handling Infinity float values.", "params": { "FloatValue": "Infinity", "Boo": "Infinity" @@ -1578,6 +1695,7 @@ }, { "id": "AwsQuerySupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleInputParams", "http": { @@ -1589,7 +1707,6 @@ }, "documentation": "

This test serializes strings, numbers, and boolean values.

" }, - "description": "Supports handling -Infinity float values.", "params": { "FloatValue": "-Infinity", "Boo": "-Infinity" diff --git a/tests/unit/botocore/protocols/input/rest-json.json b/tests/unit/botocore/protocols/input/rest-json.json index bc73a3d7adc8..02dd85a3e1f1 100644 --- a/tests/unit/botocore/protocols/input/rest-json.json +++ b/tests/unit/botocore/protocols/input/rest-json.json @@ -2,11 +2,20 @@ { "description": "Test cases for AllQueryStringTypes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "AllQueryStringTypesInput": { @@ -118,45 +127,16 @@ } } }, - "String": { - "type": "string" - }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } - }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } - }, - "Integer": { - "type": "integer", + "Boolean": { + "type": "boolean", "box": true }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "IntegerSet": { + "BooleanList": { "type": "list", "member": { - "shape": "Integer" + "shape": "Boolean" } }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, "Double": { "type": "double", "box": true @@ -167,25 +147,10 @@ "shape": "Double" } }, - "Boolean": { - "type": "boolean", + "Float": { + "type": "float", "box": true }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } - }, - "Timestamp": { - "type": "timestamp" - }, - "TimestampList": { - "type": "list", - "member": { - "shape": "Timestamp" - } - }, "FooEnum": { "type": "string", "enum": [ @@ -202,6 +167,10 @@ "shape": "FooEnum" } }, + "Integer": { + "type": "integer", + "box": true + }, "IntegerEnum": { "type": "integer", "box": true @@ -212,6 +181,31 @@ "shape": "IntegerEnum" } }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, + "IntegerSet": { + "type": "list", + "member": { + "shape": "Integer" + } + }, + "Long": { + "type": "long", + "box": true + }, + "String": { + "type": "string" + }, + "StringList": { + "type": "list", + "member": { + "shape": "String" + } + }, "StringListMap": { "type": "map", "key": { @@ -220,11 +214,27 @@ "value": { "shape": "StringList" } + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + }, + "Timestamp": { + "type": "timestamp" + }, + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } } }, "cases": [ { "id": "RestJsonAllQueryStringTypes", + "description": "Serializes query string parameters with all supported types", "given": { "name": "AllQueryStringTypes", "http": { @@ -235,9 +245,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Serializes query string parameters with all supported types", "params": { "queryString": "Hello there", "queryStringList": [ @@ -384,6 +394,7 @@ }, { "id": "RestJsonQueryStringMap", + "description": "Handles query string maps", "given": { "name": "AllQueryStringTypes", "http": { @@ -394,9 +405,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Handles query string maps", "params": { "queryParamsMapOfStringList": { "QueryParamsStringKeyA": [ @@ -415,6 +426,7 @@ }, { "id": "RestJsonQueryStringEscaping", + "description": "Handles escaping all required characters in the query string.", "given": { "name": "AllQueryStringTypes", "http": { @@ -425,9 +437,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Handles escaping all required characters in the query string.", "params": { "queryString": " %:/?#[]@!$&'()*+,;=😹", "queryParamsMapOfStringList": { @@ -444,6 +456,7 @@ }, { "id": "RestJsonSupportsNaNFloatQueryValues", + "description": "Supports handling NaN float query values.", "given": { "name": "AllQueryStringTypes", "http": { @@ -454,9 +467,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Supports handling NaN float query values.", "params": { "queryFloat": "NaN", "queryDouble": "NaN", @@ -477,6 +490,7 @@ }, { "id": "RestJsonSupportsInfinityFloatQueryValues", + "description": "Supports handling Infinity float query values.", "given": { "name": "AllQueryStringTypes", "http": { @@ -487,9 +501,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Supports handling Infinity float query values.", "params": { "queryFloat": "Infinity", "queryDouble": "Infinity", @@ -510,6 +524,7 @@ }, { "id": "RestJsonSupportsNegativeInfinityFloatQueryValues", + "description": "Supports handling -Infinity float query values.", "given": { "name": "AllQueryStringTypes", "http": { @@ -520,9 +535,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Supports handling -Infinity float query values.", "params": { "queryFloat": "-Infinity", "queryDouble": "-Infinity", @@ -543,6 +558,7 @@ }, { "id": "RestJsonZeroAndFalseQueryValues", + "description": "Query values of 0 and false are serialized", "given": { "name": "AllQueryStringTypes", "http": { @@ -553,9 +569,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Query values of 0 and false are serialized", "params": { "queryInteger": 0, "queryBoolean": false, @@ -579,11 +595,20 @@ { "description": "Test cases for ConstantAndVariableQueryString operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "ConstantAndVariableQueryStringInput": { @@ -608,6 +633,7 @@ "cases": [ { "id": "RestJsonConstantAndVariableQueryStringMissingOneValue", + "description": "Mixes constant and variable query string parameters", "given": { "name": "ConstantAndVariableQueryString", "http": { @@ -618,9 +644,9 @@ "input": { "shape": "ConstantAndVariableQueryStringInput" }, - "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

" + "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

", + "readonly": true }, - "description": "Mixes constant and variable query string parameters", "params": { "baz": "bam" }, @@ -632,6 +658,7 @@ }, { "id": "RestJsonConstantAndVariableQueryStringAllValues", + "description": "Mixes constant and variable query string parameters", "given": { "name": "ConstantAndVariableQueryString", "http": { @@ -642,9 +669,9 @@ "input": { "shape": "ConstantAndVariableQueryStringInput" }, - "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

" + "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

", + "readonly": true }, - "description": "Mixes constant and variable query string parameters", "params": { "baz": "bam", "maybeSet": "yes" @@ -660,11 +687,20 @@ { "description": "Test cases for ConstantQueryString operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "ConstantQueryStringInput": { @@ -687,6 +723,7 @@ "cases": [ { "id": "RestJsonConstantQueryString", + "description": "Includes constant query string parameters", "given": { "name": "ConstantQueryString", "http": { @@ -697,9 +734,9 @@ "input": { "shape": "ConstantQueryStringInput" }, - "documentation": "

This example uses a constant query string parameters and a label. This simply tests that labels and query string parameters are compatible. The fixed query string parameter named "hello" should in no way conflict with the label, {hello}.

" + "documentation": "

This example uses a constant query string parameters and a label. This simply tests that labels and query string parameters are compatible. The fixed query string parameter named "hello" should in no way conflict with the label, {hello}.

", + "readonly": true }, - "description": "Includes constant query string parameters", "params": { "hello": "hi" }, @@ -714,13 +751,27 @@ { "description": "Test cases for DocumentType operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "DocumentTypeInputOutput": { "type": "structure", "members": { @@ -734,16 +785,12 @@ }, "String": { "type": "string" - }, - "Document": { - "type": "structure", - "members": {}, - "document": true } }, "cases": [ { "id": "DocumentTypeInputWithObject", + "description": "Serializes document types as part of the JSON request payload with no escaping.", "given": { "name": "DocumentType", "http": { @@ -757,7 +804,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Serializes document types as part of the JSON request payload with no escaping.", "params": { "stringValue": "string", "documentValue": { @@ -775,6 +821,7 @@ }, { "id": "DocumentInputWithString", + "description": "Serializes document types using a string.", "given": { "name": "DocumentType", "http": { @@ -788,7 +835,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Serializes document types using a string.", "params": { "stringValue": "string", "documentValue": "hello" @@ -804,6 +850,7 @@ }, { "id": "DocumentInputWithNumber", + "description": "Serializes document types using a number.", "given": { "name": "DocumentType", "http": { @@ -817,7 +864,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Serializes document types using a number.", "params": { "stringValue": "string", "documentValue": 10 @@ -833,6 +879,7 @@ }, { "id": "DocumentInputWithBoolean", + "description": "Serializes document types using a boolean.", "given": { "name": "DocumentType", "http": { @@ -846,7 +893,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Serializes document types using a boolean.", "params": { "stringValue": "string", "documentValue": true @@ -862,6 +908,7 @@ }, { "id": "DocumentInputWithList", + "description": "Serializes document types using a list.", "given": { "name": "DocumentType", "http": { @@ -875,7 +922,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Serializes document types using a list.", "params": { "stringValue": "string", "documentValue": [ @@ -909,13 +955,27 @@ { "description": "Test cases for DocumentTypeAsMapValue operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "DocumentTypeAsMapValueInputOutput": { "type": "structure", "members": { @@ -933,11 +993,6 @@ "shape": "Document" } }, - "Document": { - "type": "structure", - "members": {}, - "document": true - }, "String": { "type": "string" } @@ -945,6 +1000,7 @@ "cases": [ { "id": "DocumentTypeAsMapValueInput", + "description": "Serializes a map that uses documents as the value.", "given": { "name": "DocumentTypeAsMapValue", "http": { @@ -958,7 +1014,6 @@ "documentation": "

This example serializes documents as the value of maps.

", "idempotent": true }, - "description": "Serializes a map that uses documents as the value.", "params": { "docValuedMap": { "foo": { @@ -987,13 +1042,27 @@ { "description": "Test cases for DocumentTypeAsPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "DocumentTypeAsPayloadInputOutput": { "type": "structure", "members": { @@ -1002,16 +1071,12 @@ } }, "payload": "documentValue" - }, - "Document": { - "type": "structure", - "members": {}, - "document": true } }, "cases": [ { "id": "DocumentTypeAsPayloadInput", + "description": "Serializes a document as the target of the httpPayload trait.", "given": { "name": "DocumentTypeAsPayload", "http": { @@ -1025,7 +1090,6 @@ "documentation": "

This example serializes a document as the entire HTTP payload.

", "idempotent": true }, - "description": "Serializes a document as the target of the httpPayload trait.", "params": { "documentValue": { "foo": "bar" @@ -1042,6 +1106,7 @@ }, { "id": "DocumentTypeAsPayloadInputString", + "description": "Serializes a document as the target of the httpPayload trait using a string.", "given": { "name": "DocumentTypeAsPayload", "http": { @@ -1055,7 +1120,6 @@ "documentation": "

This example serializes a document as the entire HTTP payload.

", "idempotent": true }, - "description": "Serializes a document as the target of the httpPayload trait using a string.", "params": { "documentValue": "hello" }, @@ -1073,11 +1137,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "EmptyInputAndEmptyOutputInput": { @@ -1088,6 +1161,7 @@ "cases": [ { "id": "RestJsonEmptyInputAndEmptyOutput", + "description": "Clients should not serialize a JSON payload when no parameters\nare given that are sent in the body. A service will tolerate\nclients that omit a payload or that send a JSON object.", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -1100,7 +1174,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "Clients should not serialize a JSON payload when no parameters\nare given that are sent in the body. A service will tolerate\nclients that omit a payload or that send a JSON object.", "params": {}, "serialized": { "method": "POST", @@ -1112,17 +1185,28 @@ }, { "description": "Test cases for EndpointOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonEndpointTrait", + "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "given": { "name": "EndpointOperation", "http": { @@ -1134,7 +1218,6 @@ "hostPrefix": "foo." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "params": {}, "serialized": { "method": "POST", @@ -1143,17 +1226,26 @@ "host": "foo.example.com" } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HostLabelInput": { @@ -1175,6 +1267,7 @@ "cases": [ { "id": "RestJsonEndpointTraitWithHostLabel", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "given": { "name": "EndpointWithHostLabelOperation", "http": { @@ -1189,7 +1282,6 @@ "hostPrefix": "foo.{label}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "params": { "label": "bar" }, @@ -1200,31 +1292,41 @@ "host": "foo.bar.example.com" } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for HostWithPathOperation operation", + "clientEndpoint": "https://example.com/custom", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonHostWithPath", + "description": "Custom endpoints supplied by users can have paths", "given": { "name": "HostWithPathOperation", "http": { "method": "GET", "requestUri": "/HostWithPathOperation", "responseCode": 200 - } + }, + "readonly": true }, - "description": "Custom endpoints supplied by users can have paths", "params": {}, "serialized": { "method": "GET", @@ -1233,17 +1335,25 @@ "host": "example.com/custom" } } - ], - "clientEndpoint": "https://example.com/custom" + ] }, { "description": "Test cases for HttpChecksumRequired operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpChecksumRequiredInputOutput": { @@ -1261,6 +1371,7 @@ "cases": [ { "id": "RestJsonHttpChecksumRequired", + "description": "Adds Content-MD5 header", "given": { "name": "HttpChecksumRequired", "http": { @@ -1274,7 +1385,6 @@ "documentation": "

This example tests httpChecksumRequired trait

", "httpChecksumRequired": true }, - "description": "Adds Content-MD5 header", "params": { "foo": "base64 encoded md5 checksum" }, @@ -1290,14 +1400,106 @@ } ] }, + { + "description": "Test cases for HttpEmptyPrefixHeaders operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "HttpEmptyPrefixHeadersInput": { + "type": "structure", + "members": { + "prefixHeaders": { + "shape": "StringMap", + "location": "headers", + "locationName": "" + }, + "specificHeader": { + "shape": "String", + "location": "header", + "locationName": "hello" + } + } + }, + "String": { + "type": "string" + }, + "StringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "RestJsonHttpEmptyPrefixHeadersRequestClient", + "description": "Serializes all request headers, using specific when present", + "given": { + "name": "HttpEmptyPrefixHeaders", + "http": { + "method": "GET", + "requestUri": "/HttpEmptyPrefixHeaders", + "responseCode": 200 + }, + "input": { + "shape": "HttpEmptyPrefixHeadersInput" + }, + "documentation": "

Clients that perform this test extract all headers from the response.

", + "readonly": true + }, + "params": { + "prefixHeaders": { + "x-foo": "Foo", + "hello": "Hello" + }, + "specificHeader": "There" + }, + "serialized": { + "method": "GET", + "uri": "/HttpEmptyPrefixHeaders", + "body": "", + "headers": { + "x-foo": "Foo", + "hello": "There" + } + } + } + ] + }, { "description": "Test cases for HttpEnumPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "EnumPayloadInput": { @@ -1347,13 +1549,25 @@ { "description": "Test cases for HttpPayloadTraits operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "HttpPayloadTraitsInputOutput": { "type": "structure", "members": { @@ -1370,14 +1584,12 @@ }, "String": { "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RestJsonHttpPayloadTraitsWithBlob", + "description": "Serializes a blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -1390,7 +1602,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no JSON document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes a blob in the HTTP payload", "params": { "foo": "Foo", "blob": "blobby blob blob" @@ -1400,8 +1611,8 @@ "uri": "/HttpPayloadTraits", "body": "blobby blob blob", "headers": { - "Content-Type": "application/octet-stream", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/octet-stream" }, "requireHeaders": [ "Content-Length" @@ -1410,6 +1621,7 @@ }, { "id": "RestJsonHttpPayloadTraitsWithNoBlobBody", + "description": "Serializes an empty blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -1422,7 +1634,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no JSON document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes an empty blob in the HTTP payload", "params": { "foo": "Foo" }, @@ -1440,11 +1651,20 @@ { "description": "Test cases for HttpPayloadWithStructure operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithStructureInputOutput": { @@ -1474,6 +1694,7 @@ "cases": [ { "id": "RestJsonHttpPayloadWithStructure", + "description": "Serializes a structure in the payload", "given": { "name": "HttpPayloadWithStructure", "http": { @@ -1487,7 +1708,6 @@ "documentation": "

This example serializes a structure in the payload.

Note that serializing a structure changes the wrapper element name to match the targeted structure.

", "idempotent": true }, - "description": "Serializes a structure in the payload", "params": { "nested": { "greeting": "hello", @@ -1511,11 +1731,20 @@ { "description": "Test cases for HttpPayloadWithUnion operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithUnionInputOutput": { @@ -1527,6 +1756,9 @@ }, "payload": "nested" }, + "String": { + "type": "string" + }, "UnionPayload": { "type": "structure", "members": { @@ -1535,14 +1767,12 @@ } }, "union": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestJsonHttpPayloadWithUnion", + "description": "Serializes a union in the payload.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -1556,7 +1786,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "Serializes a union in the payload.", "params": { "nested": { "greeting": "hello" @@ -1576,6 +1805,7 @@ }, { "id": "RestJsonHttpPayloadWithUnsetUnion", + "description": "No payload is sent if the union has no value.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -1589,7 +1819,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "No payload is sent if the union has no value.", "params": {}, "serialized": { "method": "PUT", @@ -1602,11 +1831,20 @@ { "description": "Test cases for HttpPrefixHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPrefixHeadersInput": { @@ -1640,6 +1878,7 @@ "cases": [ { "id": "RestJsonHttpPrefixHeadersArePresent", + "description": "Adds headers by prefix", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1650,9 +1889,9 @@ "input": { "shape": "HttpPrefixHeadersInput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "Adds headers by prefix", "params": { "foo": "Foo", "fooMap": { @@ -1666,13 +1905,14 @@ "body": "", "headers": { "x-foo": "Foo", - "x-foo-abc": "Abc value", - "x-foo-def": "Def value" + "x-foo-def": "Def value", + "x-foo-abc": "Abc value" } } }, { "id": "RestJsonHttpPrefixHeadersAreNotPresent", + "description": "No prefix headers are serialized because the value is not present", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1683,9 +1923,9 @@ "input": { "shape": "HttpPrefixHeadersInput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "No prefix headers are serialized because the value is not present", "params": { "foo": "Foo", "fooMap": {} @@ -1701,6 +1941,7 @@ }, { "id": "RestJsonHttpPrefixEmptyHeaders", + "description": "Serialize prefix headers were the value is present but empty", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1711,9 +1952,9 @@ "input": { "shape": "HttpPrefixHeadersInput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "Serialize prefix headers were the value is present but empty", "params": { "fooMap": { "abc": "" @@ -1730,16 +1971,128 @@ } ] }, + { + "description": "Test cases for HttpQueryParamsOnlyOperation operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "HttpQueryParamsOnlyInput": { + "type": "structure", + "members": { + "queryMap": { + "shape": "QueryMap", + "location": "querystring" + } + } + }, + "QueryMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "HttpQueryParamsOnlyRequest", + "description": "Test that httpQueryParams are included in request when no other query parameters exist", + "given": { + "name": "HttpQueryParamsOnlyOperation", + "http": { + "method": "GET", + "requestUri": "/http-query-params-only", + "responseCode": 200 + }, + "input": { + "shape": "HttpQueryParamsOnlyInput" + }, + "documentation": "

This example tests httpQueryParams when no other query parameters exist.

", + "readonly": true + }, + "params": { + "queryMap": { + "a": "b", + "c": "d" + } + }, + "serialized": { + "method": "GET", + "uri": "/http-query-params-only?a=b&c=d" + } + }, + { + "id": "HttpQueryParamsOnlyEmptyRequest", + "description": "Test that empty httpQueryParams map results in no query parameters", + "given": { + "name": "HttpQueryParamsOnlyOperation", + "http": { + "method": "GET", + "requestUri": "/http-query-params-only", + "responseCode": 200 + }, + "input": { + "shape": "HttpQueryParamsOnlyInput" + }, + "documentation": "

This example tests httpQueryParams when no other query parameters exist.

", + "readonly": true + }, + "params": { + "queryMap": {} + }, + "serialized": { + "method": "GET", + "uri": "/http-query-params-only" + } + } + ] + }, { "description": "Test cases for HttpRequestWithFloatLabels operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "HttpRequestWithFloatLabelsInput": { "type": "structure", "required": [ @@ -1758,19 +2111,12 @@ "locationName": "double" } } - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "RestJsonSupportsNaNFloatLabels", + "description": "Supports handling NaN float label values.", "given": { "name": "HttpRequestWithFloatLabels", "http": { @@ -1780,9 +2126,9 @@ }, "input": { "shape": "HttpRequestWithFloatLabelsInput" - } + }, + "readonly": true }, - "description": "Supports handling NaN float label values.", "params": { "float": "NaN", "double": "NaN" @@ -1795,6 +2141,7 @@ }, { "id": "RestJsonSupportsInfinityFloatLabels", + "description": "Supports handling Infinity float label values.", "given": { "name": "HttpRequestWithFloatLabels", "http": { @@ -1804,9 +2151,9 @@ }, "input": { "shape": "HttpRequestWithFloatLabelsInput" - } + }, + "readonly": true }, - "description": "Supports handling Infinity float label values.", "params": { "float": "Infinity", "double": "Infinity" @@ -1819,6 +2166,7 @@ }, { "id": "RestJsonSupportsNegativeInfinityFloatLabels", + "description": "Supports handling -Infinity float label values.", "given": { "name": "HttpRequestWithFloatLabels", "http": { @@ -1828,9 +2176,9 @@ }, "input": { "shape": "HttpRequestWithFloatLabelsInput" - } + }, + "readonly": true }, - "description": "Supports handling -Infinity float label values.", "params": { "float": "-Infinity", "double": "-Infinity" @@ -1846,11 +2194,20 @@ { "description": "Test cases for HttpRequestWithGreedyLabelInPath operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpRequestWithGreedyLabelInPathInput": { @@ -1879,6 +2236,7 @@ "cases": [ { "id": "RestJsonHttpRequestWithGreedyLabelInPath", + "description": "Serializes greedy labels and normal labels", "given": { "name": "HttpRequestWithGreedyLabelInPath", "http": { @@ -1888,9 +2246,9 @@ }, "input": { "shape": "HttpRequestWithGreedyLabelInPathInput" - } + }, + "readonly": true }, - "description": "Serializes greedy labels and normal labels", "params": { "foo": "hello/escape", "baz": "there/guy" @@ -1906,13 +2264,34 @@ { "description": "Test cases for HttpRequestWithLabels operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "HttpRequestWithLabelsInput": { "type": "structure", "required": [ @@ -1970,9 +2349,6 @@ } } }, - "String": { - "type": "string" - }, "Integer": { "type": "integer", "box": true @@ -1981,17 +2357,8 @@ "type": "long", "box": true }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Boolean": { - "type": "boolean", - "box": true + "String": { + "type": "string" }, "Timestamp": { "type": "timestamp" @@ -2000,6 +2367,7 @@ "cases": [ { "id": "RestJsonInputWithHeadersAndAllParams", + "description": "Sends a GET request that uses URI label bindings", "given": { "name": "HttpRequestWithLabels", "http": { @@ -2010,9 +2378,9 @@ "input": { "shape": "HttpRequestWithLabelsInput" }, - "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

" + "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

", + "readonly": true }, - "description": "Sends a GET request that uses URI label bindings", "params": { "string": "string", "short": 1, @@ -2031,6 +2399,7 @@ }, { "id": "RestJsonHttpRequestLabelEscaping", + "description": "Sends a GET request that uses URI label bindings", "given": { "name": "HttpRequestWithLabels", "http": { @@ -2041,9 +2410,9 @@ "input": { "shape": "HttpRequestWithLabelsInput" }, - "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

" + "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

", + "readonly": true }, - "description": "Sends a GET request that uses URI label bindings", "params": { "string": " %:/?#[]@!$&'()*+,;=😹", "short": 1, @@ -2065,13 +2434,34 @@ { "description": "Test cases for HttpRequestWithLabelsAndTimestampFormat operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, "HttpRequestWithLabelsAndTimestampFormatInput": { "type": "structure", "required": [ @@ -2121,37 +2511,26 @@ } } }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, "SyntheticTimestamp_date_time": { "type": "timestamp", "timestampFormat": "iso8601" }, - "Timestamp": { - "type": "timestamp" - }, - "EpochSeconds": { + "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "HttpDate": { + "SyntheticTimestamp_http_date": { "type": "timestamp", "timestampFormat": "rfc822" }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "RestJsonHttpRequestWithLabelsAndTimestampFormat", + "description": "Serializes different timestamp formats in URI labels", "given": { "name": "HttpRequestWithLabelsAndTimestampFormat", "http": { @@ -2162,9 +2541,9 @@ "input": { "shape": "HttpRequestWithLabelsAndTimestampFormatInput" }, - "documentation": "

The example tests how requests serialize different timestamp formats in the URI path.

" + "documentation": "

The example tests how requests serialize different timestamp formats in the URI path.

", + "readonly": true }, - "description": "Serializes different timestamp formats in URI labels", "params": { "memberEpochSeconds": 1576540098, "memberHttpDate": 1576540098, @@ -2185,11 +2564,20 @@ { "description": "Test cases for HttpRequestWithRegexLiteral operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpRequestWithRegexLiteralInput": { @@ -2212,6 +2600,7 @@ "cases": [ { "id": "RestJsonToleratesRegexCharsInSegments", + "description": "Path matching is not broken by regex expressions in literal segments", "given": { "name": "HttpRequestWithRegexLiteral", "http": { @@ -2221,9 +2610,9 @@ }, "input": { "shape": "HttpRequestWithRegexLiteralInput" - } + }, + "readonly": true }, - "description": "Path matching is not broken by regex expressions in literal segments", "params": { "str": "abc" }, @@ -2238,13 +2627,25 @@ { "description": "Test cases for HttpStringPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "StringPayloadInput": { "type": "structure", "members": { @@ -2253,9 +2654,6 @@ } }, "payload": "payload" - }, - "String": { - "type": "string" } }, "cases": [ @@ -2292,13 +2690,56 @@ { "description": "Test cases for InputAndOutputWithHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "InputAndOutputWithHeadersIO": { "type": "structure", "members": { @@ -2394,28 +2835,32 @@ } } }, - "String": { - "type": "string" - }, "Integer": { "type": "integer", "box": true }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, "Long": { "type": "long", "box": true }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Boolean": { - "type": "boolean", - "box": true + "String": { + "type": "string" }, "StringList": { "type": "list", @@ -2429,57 +2874,20 @@ "shape": "String" } }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Timestamp": { + "type": "timestamp" }, "TimestampList": { "type": "list", "member": { "shape": "Timestamp" } - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "FooEnumList": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "Timestamp": { - "type": "timestamp" } }, "cases": [ { "id": "RestJsonInputAndOutputWithStringHeaders", + "description": "Tests requests with string header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2492,7 +2900,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with string header bindings", "params": { "headerString": "Hello", "headerStringList": [ @@ -2511,14 +2918,15 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-String": "Hello", "X-StringList": "a, b, c", + "X-String": "Hello", "X-StringSet": "a, b, c" } } }, { "id": "RestJsonInputAndOutputWithQuotedStringHeaders", + "description": "Tests requests with string list header bindings that require quoting", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2531,7 +2939,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with string list header bindings that require quoting", "params": { "headerStringList": [ "b,c", @@ -2550,6 +2957,7 @@ }, { "id": "RestJsonInputAndOutputWithNumericHeaders", + "description": "Tests requests with numeric header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2562,7 +2970,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with numeric header bindings", "params": { "headerByte": 1, "headerShort": 123, @@ -2581,18 +2988,19 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { + "X-Integer": "123", + "X-Short": "123", "X-Byte": "1", + "X-Long": "123", "X-Double": "1.1", "X-Float": "1.1", - "X-Integer": "123", - "X-IntegerList": "1, 2, 3", - "X-Long": "123", - "X-Short": "123" + "X-IntegerList": "1, 2, 3" } } }, { "id": "RestJsonInputAndOutputWithBooleanHeaders", + "description": "Tests requests with boolean header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2605,7 +3013,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with boolean header bindings", "params": { "headerTrueBool": true, "headerFalseBool": false, @@ -2620,14 +3027,15 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { + "X-BooleanList": "true, false, true", "X-Boolean1": "true", - "X-Boolean2": "false", - "X-BooleanList": "true, false, true" + "X-Boolean2": "false" } } }, { "id": "RestJsonInputAndOutputWithTimestampHeaders", + "description": "Tests requests with timestamp header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2640,7 +3048,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with timestamp header bindings", "params": { "headerTimestampList": [ 1576540098, @@ -2658,6 +3065,7 @@ }, { "id": "RestJsonInputAndOutputWithEnumHeaders", + "description": "Tests requests with enum header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2670,7 +3078,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with enum header bindings", "params": { "headerEnum": "Foo", "headerEnumList": [ @@ -2684,13 +3091,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Enum": "Foo", - "X-EnumList": "Foo, Bar, Baz" + "X-EnumList": "Foo, Bar, Baz", + "X-Enum": "Foo" } } }, { "id": "RestJsonInputAndOutputWithIntEnumHeaders", + "description": "Tests requests with intEnum header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2703,7 +3111,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with intEnum header bindings", "params": { "headerIntegerEnum": 1, "headerIntegerEnumList": [ @@ -2717,13 +3124,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-IntegerEnum": "1", - "X-IntegerEnumList": "1, 2, 3" + "X-IntegerEnumList": "1, 2, 3", + "X-IntegerEnum": "1" } } }, { "id": "RestJsonSupportsNaNFloatHeaderInputs", + "description": "Supports handling NaN float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2736,7 +3144,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling NaN float header values.", "params": { "headerFloat": "NaN", "headerDouble": "NaN" @@ -2746,13 +3153,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Double": "NaN", - "X-Float": "NaN" + "X-Float": "NaN", + "X-Double": "NaN" } } }, { "id": "RestJsonSupportsInfinityFloatHeaderInputs", + "description": "Supports handling Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2765,7 +3173,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling Infinity float header values.", "params": { "headerFloat": "Infinity", "headerDouble": "Infinity" @@ -2775,13 +3182,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Double": "Infinity", - "X-Float": "Infinity" + "X-Float": "Infinity", + "X-Double": "Infinity" } } }, { "id": "RestJsonSupportsNegativeInfinityFloatHeaderInputs", + "description": "Supports handling -Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2794,7 +3202,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling -Infinity float header values.", "params": { "headerFloat": "-Infinity", "headerDouble": "-Infinity" @@ -2804,8 +3211,8 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Double": "-Infinity", - "X-Float": "-Infinity" + "X-Float": "-Infinity", + "X-Double": "-Infinity" } } } @@ -2814,13 +3221,25 @@ { "description": "Test cases for JsonBlobs operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "JsonBlobsInputOutput": { "type": "structure", "members": { @@ -2828,14 +3247,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RestJsonJsonBlobs", + "description": "Blobs are base64 encoded", "given": { "name": "JsonBlobs", "http": { @@ -2848,7 +3265,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Blobs are base64 encoded", "params": { "data": "value" }, @@ -2866,36 +3282,22 @@ { "description": "Test cases for JsonEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "JsonEnumsInputOutput": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -2912,12 +3314,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -2927,6 +3323,35 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "JsonEnumsInputOutput": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } + }, "String": { "type": "string" } @@ -2934,6 +3359,7 @@ "cases": [ { "id": "RestJsonJsonEnums", + "description": "Serializes simple scalar properties", "given": { "name": "JsonEnums", "http": { @@ -2947,7 +3373,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -2979,13 +3404,47 @@ { "description": "Test cases for JsonIntEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, "JsonIntEnumsInputOutput": { "type": "structure", "members": { @@ -3009,31 +3468,6 @@ } } }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, "String": { "type": "string" } @@ -3041,6 +3475,7 @@ "cases": [ { "id": "RestJsonJsonIntEnums", + "description": "Serializes intEnums as integers", "given": { "name": "JsonIntEnums", "http": { @@ -3054,7 +3489,6 @@ "documentation": "

This example serializes intEnums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes intEnums as integers", "params": { "integerEnum1": 1, "integerEnum2": 2, @@ -3087,13 +3521,68 @@ { "description": "Test cases for JsonLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, "JsonListsInputOutput": { "type": "structure", "members": { @@ -3127,55 +3616,28 @@ } } }, - "StringList": { + "NestedStringList": { "type": "list", "member": { - "shape": "String" - } - }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } - }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "shape": "StringList" + }, + "documentation": "

A list of lists of strings.

" }, - "TimestampList": { - "type": "list", - "member": { - "shape": "Timestamp" - } + "String": { + "type": "string" }, - "FooEnumList": { + "StringList": { "type": "list", "member": { - "shape": "FooEnum" + "shape": "String" } }, - "IntegerEnumList": { + "StringSet": { "type": "list", "member": { - "shape": "IntegerEnum" + "shape": "String" } }, - "NestedStringList": { - "type": "list", - "member": { - "shape": "StringList" - }, - "documentation": "

A list of lists of strings.

" - }, "StructureList": { "type": "list", "member": { @@ -3195,38 +3657,20 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } } }, "cases": [ { "id": "RestJsonLists", + "description": "Serializes JSON lists", "given": { "name": "JsonLists", "http": { @@ -3240,7 +3684,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal JSON lists.
  2. Normal JSON sets.
  3. JSON lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes JSON lists", "params": { "stringList": [ "foo", @@ -3302,6 +3745,7 @@ }, { "id": "RestJsonListsEmpty", + "description": "Serializes empty JSON lists", "given": { "name": "JsonLists", "http": { @@ -3315,7 +3759,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal JSON lists.
  2. Normal JSON sets.
  3. JSON lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes empty JSON lists", "params": { "stringList": [] }, @@ -3333,40 +3776,33 @@ { "description": "Test cases for JsonMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "JsonMapsInputOutput": { - "type": "structure", - "members": { - "denseStructMap": { - "shape": "DenseStructMap" - }, - "denseNumberMap": { - "shape": "DenseNumberMap" - }, - "denseBooleanMap": { - "shape": "DenseBooleanMap" - }, - "denseStringMap": { - "shape": "DenseStringMap" - }, - "denseSetMap": { - "shape": "DenseSetMap" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "DenseStructMap": { + "DenseBooleanMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "GreetingStruct" + "shape": "Boolean" } }, "DenseNumberMap": { @@ -3378,13 +3814,13 @@ "shape": "Integer" } }, - "DenseBooleanMap": { + "DenseSetMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "Boolean" + "shape": "StringSet" } }, "DenseStringMap": { @@ -3396,44 +3832,61 @@ "shape": "String" } }, - "DenseSetMap": { + "DenseStructMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "StringSet" + "shape": "GreetingStruct" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } } }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, "Integer": { "type": "integer", "box": true }, - "GreetingStruct": { + "JsonMapsInputOutput": { "type": "structure", "members": { - "hi": { - "shape": "String" + "denseStructMap": { + "shape": "DenseStructMap" + }, + "denseNumberMap": { + "shape": "DenseNumberMap" + }, + "denseBooleanMap": { + "shape": "DenseBooleanMap" + }, + "denseStringMap": { + "shape": "DenseStringMap" + }, + "denseSetMap": { + "shape": "DenseSetMap" } } + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } } }, "cases": [ { "id": "RestJsonJsonMaps", + "description": "Serializes JSON maps", "given": { "name": "JsonMaps", "http": { @@ -3446,7 +3899,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Serializes JSON maps", "params": { "denseStructMap": { "foo": { @@ -3468,6 +3920,7 @@ }, { "id": "RestJsonSerializesZeroValuesInMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "given": { "name": "JsonMaps", "http": { @@ -3480,7 +3933,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "params": { "denseNumberMap": { "x": 0 @@ -3500,6 +3952,7 @@ }, { "id": "RestJsonSerializesDenseSetMap", + "description": "A request that contains a dense map of sets.", "given": { "name": "JsonMaps", "http": { @@ -3512,7 +3965,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "A request that contains a dense map of sets.", "params": { "denseSetMap": { "x": [], @@ -3536,13 +3988,34 @@ { "description": "Test cases for JsonTimestamps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, "JsonTimestampsInputOutput": { "type": "structure", "members": { @@ -3569,37 +4042,26 @@ } } }, - "Timestamp": { - "type": "timestamp" - }, "SyntheticTimestamp_date_time": { "type": "timestamp", "timestampFormat": "iso8601" }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, "SyntheticTimestamp_http_date": { "type": "timestamp", "timestampFormat": "rfc822" }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "RestJsonJsonTimestamps", + "description": "Tests how normal timestamps are serialized", "given": { "name": "JsonTimestamps", "http": { @@ -3612,7 +4074,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Tests how normal timestamps are serialized", "params": { "normal": 1398796238 }, @@ -3627,6 +4088,7 @@ }, { "id": "RestJsonJsonTimestampsWithDateTimeFormat", + "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "given": { "name": "JsonTimestamps", "http": { @@ -3639,7 +4101,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "params": { "dateTime": 1398796238 }, @@ -3654,6 +4115,7 @@ }, { "id": "RestJsonJsonTimestampsWithDateTimeOnTargetFormat", + "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "given": { "name": "JsonTimestamps", "http": { @@ -3666,7 +4128,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "params": { "dateTimeOnTarget": 1398796238 }, @@ -3681,6 +4142,7 @@ }, { "id": "RestJsonJsonTimestampsWithEpochSecondsFormat", + "description": "Ensures that the timestampFormat of epoch-seconds works", "given": { "name": "JsonTimestamps", "http": { @@ -3693,7 +4155,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds works", "params": { "epochSeconds": 1398796238 }, @@ -3708,6 +4169,7 @@ }, { "id": "RestJsonJsonTimestampsWithEpochSecondsOnTargetFormat", + "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "given": { "name": "JsonTimestamps", "http": { @@ -3720,7 +4182,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "params": { "epochSecondsOnTarget": 1398796238 }, @@ -3735,6 +4196,7 @@ }, { "id": "RestJsonJsonTimestampsWithHttpDateFormat", + "description": "Ensures that the timestampFormat of http-date works", "given": { "name": "JsonTimestamps", "http": { @@ -3747,7 +4209,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date works", "params": { "httpDate": 1398796238 }, @@ -3762,6 +4223,7 @@ }, { "id": "RestJsonJsonTimestampsWithHttpDateOnTargetFormat", + "description": "Ensures that the timestampFormat of http-date on the target shape works", "given": { "name": "JsonTimestamps", "http": { @@ -3774,7 +4236,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date on the target shape works", "params": { "httpDateOnTarget": 1398796238 }, @@ -3792,21 +4253,50 @@ { "description": "Test cases for JsonUnions operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "UnionInputOutput": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "GreetingStruct": { "type": "structure", "members": { - "contents": { - "shape": "MyUnion" + "hi": { + "shape": "String" } - }, - "documentation": "

A shared structure that contains a single union member.

" + } + }, + "Integer": { + "type": "integer", + "box": true }, "MyUnion": { "type": "structure", @@ -3845,38 +4335,22 @@ "documentation": "

A union with a representative set of types for members.

", "union": true }, + "RenamedGreeting": { + "type": "structure", + "members": { + "salutation": { + "shape": "String" + } + } + }, "String": { "type": "string" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Blob": { - "type": "blob" - }, - "Timestamp": { - "type": "timestamp" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } + "StringList": { + "type": "list", + "member": { + "shape": "String" + } }, "StringMap": { "type": "map", @@ -3887,26 +4361,23 @@ "shape": "String" } }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } + "Timestamp": { + "type": "timestamp" }, - "RenamedGreeting": { + "UnionInputOutput": { "type": "structure", "members": { - "salutation": { - "shape": "String" + "contents": { + "shape": "MyUnion" } - } + }, + "documentation": "

A shared structure that contains a single union member.

" } }, "cases": [ { "id": "RestJsonSerializeStringUnionValue", + "description": "Serializes a string union value", "given": { "name": "JsonUnions", "http": { @@ -3920,7 +4391,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a string union value", "params": { "contents": { "stringValue": "foo" @@ -3937,6 +4407,7 @@ }, { "id": "RestJsonSerializeBooleanUnionValue", + "description": "Serializes a boolean union value", "given": { "name": "JsonUnions", "http": { @@ -3950,7 +4421,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a boolean union value", "params": { "contents": { "booleanValue": true @@ -3967,6 +4437,7 @@ }, { "id": "RestJsonSerializeNumberUnionValue", + "description": "Serializes a number union value", "given": { "name": "JsonUnions", "http": { @@ -3980,7 +4451,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a number union value", "params": { "contents": { "numberValue": 1 @@ -3997,6 +4467,7 @@ }, { "id": "RestJsonSerializeBlobUnionValue", + "description": "Serializes a blob union value", "given": { "name": "JsonUnions", "http": { @@ -4010,7 +4481,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a blob union value", "params": { "contents": { "blobValue": "foo" @@ -4027,6 +4497,7 @@ }, { "id": "RestJsonSerializeTimestampUnionValue", + "description": "Serializes a timestamp union value", "given": { "name": "JsonUnions", "http": { @@ -4040,7 +4511,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a timestamp union value", "params": { "contents": { "timestampValue": 1398796238 @@ -4057,6 +4527,7 @@ }, { "id": "RestJsonSerializeEnumUnionValue", + "description": "Serializes an enum union value", "given": { "name": "JsonUnions", "http": { @@ -4070,7 +4541,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes an enum union value", "params": { "contents": { "enumValue": "Foo" @@ -4087,6 +4557,7 @@ }, { "id": "RestJsonSerializeListUnionValue", + "description": "Serializes a list union value", "given": { "name": "JsonUnions", "http": { @@ -4100,7 +4571,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a list union value", "params": { "contents": { "listValue": [ @@ -4120,6 +4590,7 @@ }, { "id": "RestJsonSerializeMapUnionValue", + "description": "Serializes a map union value", "given": { "name": "JsonUnions", "http": { @@ -4133,7 +4604,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a map union value", "params": { "contents": { "mapValue": { @@ -4153,6 +4623,7 @@ }, { "id": "RestJsonSerializeStructureUnionValue", + "description": "Serializes a structure union value", "given": { "name": "JsonUnions", "http": { @@ -4166,7 +4637,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a structure union value", "params": { "contents": { "structureValue": { @@ -4185,6 +4655,7 @@ }, { "id": "RestJsonSerializeRenamedStructureUnionValue", + "description": "Serializes a renamed structure union value", "given": { "name": "JsonUnions", "http": { @@ -4198,7 +4669,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Serializes a renamed structure union value", "params": { "contents": { "renamedStructureValue": { @@ -4220,13 +4690,25 @@ { "description": "Test cases for MediaTypeHeader operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "JsonValue": { + "type": "string" + }, "MediaTypeHeaderInput": { "type": "structure", "members": { @@ -4237,14 +4719,12 @@ "locationName": "X-Json" } } - }, - "JsonValue": { - "type": "string" } }, "cases": [ { "id": "MediaTypeHeaderInputBase64", + "description": "Headers that target strings with a mediaType are base64 encoded", "given": { "name": "MediaTypeHeader", "http": { @@ -4255,9 +4735,9 @@ "input": { "shape": "MediaTypeHeaderInput" }, - "documentation": "

This example ensures that mediaType strings are base64 encoded in headers.

" + "documentation": "

This example ensures that mediaType strings are base64 encoded in headers.

", + "readonly": true }, - "description": "Headers that target strings with a mediaType are base64 encoded", "params": { "json": "true" }, @@ -4275,16 +4755,26 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonNoInputAndNoOutput", + "description": "No input serializes no payload. When clients do not need to\nserialize any data in the payload, they should omit a payload\naltogether.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -4294,7 +4784,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "No input serializes no payload. When clients do not need to\nserialize any data in the payload, they should omit a payload\naltogether.", "params": {}, "serialized": { "method": "POST", @@ -4307,16 +4796,26 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonNoInputAndOutput", + "description": "No input serializes no payload. When clients do not need to\nserialize any data in the payload, they should omit a payload\naltogether.", "given": { "name": "NoInputAndOutput", "http": { @@ -4326,7 +4825,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "No input serializes no payload. When clients do not need to\nserialize any data in the payload, they should omit a payload\naltogether.", "params": {}, "serialized": { "method": "POST", @@ -4339,11 +4837,20 @@ { "description": "Test cases for NullAndEmptyHeadersClient operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "NullAndEmptyHeadersIO": { @@ -4379,6 +4886,7 @@ "cases": [ { "id": "RestJsonNullAndEmptyHeaders", + "description": "Do not send null values, but do send empty strings and empty lists over the wire in headers", "given": { "name": "NullAndEmptyHeadersClient", "http": { @@ -4389,9 +4897,9 @@ "input": { "shape": "NullAndEmptyHeadersIO" }, - "documentation": "

Null headers are not sent over the wire, empty headers are serialized to ""

" + "documentation": "

Null headers are not sent over the wire, empty headers are serialized to ""

", + "readonly": true }, - "description": "Do not send null values, but do send empty strings and empty lists over the wire in headers", "params": { "a": null, "b": "", @@ -4415,11 +4923,20 @@ { "description": "Test cases for OmitsNullSerializesEmptyString operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "OmitsNullSerializesEmptyStringInput": { @@ -4444,6 +4961,7 @@ "cases": [ { "id": "RestJsonOmitsNullQuery", + "description": "Omits null query values", "given": { "name": "OmitsNullSerializesEmptyString", "http": { @@ -4454,9 +4972,9 @@ "input": { "shape": "OmitsNullSerializesEmptyStringInput" }, - "documentation": "

Omits null, but serializes empty string value.

" + "documentation": "

Omits null, but serializes empty string value.

", + "readonly": true }, - "description": "Omits null query values", "params": { "nullValue": null }, @@ -4468,6 +4986,7 @@ }, { "id": "RestJsonSerializesEmptyQueryValue", + "description": "Serializes empty query strings", "given": { "name": "OmitsNullSerializesEmptyString", "http": { @@ -4478,9 +4997,9 @@ "input": { "shape": "OmitsNullSerializesEmptyStringInput" }, - "documentation": "

Omits null, but serializes empty string value.

" + "documentation": "

Omits null, but serializes empty string value.

", + "readonly": true }, - "description": "Serializes empty query strings", "params": { "emptyString": "" }, @@ -4495,13 +5014,78 @@ { "description": "Test cases for OmitsSerializingEmptyLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "Double": { + "type": "double", + "box": true + }, + "DoubleList": { + "type": "list", + "member": { + "shape": "Double" + } + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, "OmitsSerializingEmptyListsInput": { "type": "structure", "members": { @@ -4542,84 +5126,29 @@ } } }, + "String": { + "type": "string" + }, "StringList": { "type": "list", "member": { "shape": "String" } }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "DoubleList": { - "type": "list", - "member": { - "shape": "Double" - } - }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Timestamp": { + "type": "timestamp" }, "TimestampList": { "type": "list", "member": { "shape": "Timestamp" } - }, - "FooEnumList": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "Timestamp": { - "type": "timestamp" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestJsonOmitsEmptyListQueryValues", + "description": "Supports omitting empty lists.", "given": { "name": "OmitsSerializingEmptyLists", "http": { @@ -4632,7 +5161,6 @@ }, "documentation": "

Omits serializing empty lists. Because empty strings are serilized as Foo=, empty lists cannot also be serialized as Foo= and instead must be omitted.

" }, - "description": "Supports omitting empty lists.", "params": { "queryStringList": [], "queryIntegerList": [], @@ -4653,11 +5181,20 @@ { "description": "Test cases for PostUnionWithJsonName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "PostUnionWithJsonNameInput": { @@ -4668,6 +5205,9 @@ } } }, + "String": { + "type": "string" + }, "UnionWithJsonName": { "type": "structure", "members": { @@ -4684,14 +5224,12 @@ } }, "union": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "PostUnionWithJsonNameRequest1", + "description": "Tests that jsonName works with union members.", "given": { "name": "PostUnionWithJsonName", "http": { @@ -4704,7 +5242,6 @@ }, "documentation": "

This operation defines a union that uses jsonName on some members.

" }, - "description": "Tests that jsonName works with union members.", "params": { "value": { "foo": "hi" @@ -4721,6 +5258,7 @@ }, { "id": "PostUnionWithJsonNameRequest2", + "description": "Tests that jsonName works with union members.", "given": { "name": "PostUnionWithJsonName", "http": { @@ -4733,7 +5271,6 @@ }, "documentation": "

This operation defines a union that uses jsonName on some members.

" }, - "description": "Tests that jsonName works with union members.", "params": { "value": { "baz": "hi" @@ -4750,6 +5287,7 @@ }, { "id": "PostUnionWithJsonNameRequest3", + "description": "Tests that jsonName works with union members.", "given": { "name": "PostUnionWithJsonName", "http": { @@ -4762,7 +5300,6 @@ }, "documentation": "

This operation defines a union that uses jsonName on some members.

" }, - "description": "Tests that jsonName works with union members.", "params": { "value": { "bar": "hi" @@ -4782,11 +5319,20 @@ { "description": "Test cases for PutWithContentEncoding operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "PutWithContentEncodingInput": { @@ -4809,6 +5355,7 @@ "cases": [ { "id": "SDKAppliedContentEncoding_restJson1", + "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "given": { "name": "PutWithContentEncoding", "http": { @@ -4825,7 +5372,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "params": { "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" }, @@ -4839,6 +5385,7 @@ }, { "id": "SDKAppendedGzipAfterProvidedEncoding_restJson1", + "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is in the Content-Encoding header before the\nrequest compression encoding from the HTTP binding.\n", "given": { "name": "PutWithContentEncoding", "http": { @@ -4855,7 +5402,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is in the Content-Encoding header before the\nrequest compression encoding from the HTTP binding.\n", "params": { "encoding": "custom", "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" @@ -4873,11 +5419,20 @@ { "description": "Test cases for QueryIdempotencyTokenAutoFill operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "QueryIdempotencyTokenAutoFillInput": { @@ -4898,6 +5453,7 @@ "cases": [ { "id": "RestJsonQueryIdempotencyTokenAutoFill", + "description": "Automatically adds idempotency token when not set", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -4910,7 +5466,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Automatically adds idempotency token when not set", "params": {}, "serialized": { "method": "POST", @@ -4920,6 +5475,7 @@ }, { "id": "RestJsonQueryIdempotencyTokenAutoFillIsSet", + "description": "Uses the given idempotency token as-is", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -4932,7 +5488,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Uses the given idempotency token as-is", "params": { "token": "00000000-0000-4000-8000-000000000000" }, @@ -4947,11 +5502,20 @@ { "description": "Test cases for QueryParamsAsStringListMap operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "QueryParamsAsStringListMapInput": { @@ -4971,6 +5535,12 @@ "String": { "type": "string" }, + "StringList": { + "type": "list", + "member": { + "shape": "String" + } + }, "StringListMap": { "type": "map", "key": { @@ -4979,17 +5549,12 @@ "value": { "shape": "StringList" } - }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } } }, "cases": [ { "id": "RestJsonQueryParamsStringListMap", + "description": "Serialize query params from map of list strings", "given": { "name": "QueryParamsAsStringListMap", "http": { @@ -5001,7 +5566,6 @@ "shape": "QueryParamsAsStringListMapInput" } }, - "description": "Serialize query params from map of list strings", "params": { "qux": "named", "foo": { @@ -5022,11 +5586,20 @@ { "description": "Test cases for QueryPrecedence operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "QueryPrecedenceInput": { @@ -5059,6 +5632,7 @@ "cases": [ { "id": "RestJsonQueryPrecedence", + "description": "Prefer named query parameters when serializing", "given": { "name": "QueryPrecedence", "http": { @@ -5070,7 +5644,6 @@ "shape": "QueryPrecedenceInput" } }, - "description": "Prefer named query parameters when serializing", "params": { "foo": "named", "baz": { @@ -5089,11 +5662,20 @@ { "description": "Test cases for RecursiveShapes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "RecursiveShapesInputOutput": { @@ -5115,9 +5697,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveShapesInputOutputNested2": { "type": "structure", "members": { @@ -5128,11 +5707,15 @@ "shape": "RecursiveShapesInputOutputNested1" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RestJsonRecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveShapes", "http": { @@ -5146,7 +5729,6 @@ "documentation": "

Recursive shapes

", "idempotent": true }, - "description": "Serializes recursive structures", "params": { "nested": { "foo": "Foo1", @@ -5175,13 +5757,42 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarPropertiesInputOutput": { "type": "structure", "members": { @@ -5222,31 +5833,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "RestJsonSimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarProperties", "http": { @@ -5259,7 +5851,6 @@ }, "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "foo": "Foo", "stringValue": "string", @@ -5273,121 +5864,499 @@ "doubleValue": 6.5 }, "serialized": { - "method": "PUT", - "uri": "/SimpleScalarProperties", - "body": "{\n \"stringValue\": \"string\",\n \"trueBooleanValue\": true,\n \"falseBooleanValue\": false,\n \"byteValue\": 1,\n \"shortValue\": 2,\n \"integerValue\": 3,\n \"longValue\": 4,\n \"floatValue\": 5.5,\n \"DoubleDribble\": 6.5\n}", + "method": "PUT", + "uri": "/SimpleScalarProperties", + "body": "{\n \"stringValue\": \"string\",\n \"trueBooleanValue\": true,\n \"falseBooleanValue\": false,\n \"byteValue\": 1,\n \"shortValue\": 2,\n \"integerValue\": 3,\n \"longValue\": 4,\n \"floatValue\": 5.5,\n \"DoubleDribble\": 6.5\n}", + "headers": { + "X-Foo": "Foo", + "Content-Type": "application/json" + } + } + }, + { + "id": "RestJsonDoesntSerializeNullStructureValues", + "description": "Rest Json should not serialize null structure values", + "given": { + "name": "SimpleScalarProperties", + "http": { + "method": "PUT", + "requestUri": "/SimpleScalarProperties", + "responseCode": 200 + }, + "input": { + "shape": "SimpleScalarPropertiesInputOutput" + }, + "idempotent": true + }, + "params": { + "stringValue": null + }, + "serialized": { + "method": "PUT", + "uri": "/SimpleScalarProperties", + "body": "{}", + "headers": { + "Content-Type": "application/json" + } + } + }, + { + "id": "RestJsonSupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", + "given": { + "name": "SimpleScalarProperties", + "http": { + "method": "PUT", + "requestUri": "/SimpleScalarProperties", + "responseCode": 200 + }, + "input": { + "shape": "SimpleScalarPropertiesInputOutput" + }, + "idempotent": true + }, + "params": { + "floatValue": "NaN", + "doubleValue": "NaN" + }, + "serialized": { + "method": "PUT", + "uri": "/SimpleScalarProperties", + "body": "{\n \"floatValue\": \"NaN\",\n \"DoubleDribble\": \"NaN\"\n}", + "headers": { + "Content-Type": "application/json" + } + } + }, + { + "id": "RestJsonSupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", + "given": { + "name": "SimpleScalarProperties", + "http": { + "method": "PUT", + "requestUri": "/SimpleScalarProperties", + "responseCode": 200 + }, + "input": { + "shape": "SimpleScalarPropertiesInputOutput" + }, + "idempotent": true + }, + "params": { + "floatValue": "Infinity", + "doubleValue": "Infinity" + }, + "serialized": { + "method": "PUT", + "uri": "/SimpleScalarProperties", + "body": "{\n \"floatValue\": \"Infinity\",\n \"DoubleDribble\": \"Infinity\"\n}", + "headers": { + "Content-Type": "application/json" + } + } + }, + { + "id": "RestJsonSupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", + "given": { + "name": "SimpleScalarProperties", + "http": { + "method": "PUT", + "requestUri": "/SimpleScalarProperties", + "responseCode": 200 + }, + "input": { + "shape": "SimpleScalarPropertiesInputOutput" + }, + "idempotent": true + }, + "params": { + "floatValue": "-Infinity", + "doubleValue": "-Infinity" + }, + "serialized": { + "method": "PUT", + "uri": "/SimpleScalarProperties", + "body": "{\n \"floatValue\": \"-Infinity\",\n \"DoubleDribble\": \"-Infinity\"\n}", + "headers": { + "Content-Type": "application/json" + } + } + } + ] + }, + { + "description": "Test cases for SparseJsonLists operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "Integer": { + "type": "integer", + "box": true + }, + "SparseJsonListsInputOutput": { + "type": "structure", + "members": { + "sparseStringList": { + "shape": "SparseStringList" + }, + "sparseShortList": { + "shape": "SparseShortList" + } + } + }, + "SparseShortList": { + "type": "list", + "member": { + "shape": "Integer" + }, + "sparse": true + }, + "SparseStringList": { + "type": "list", + "member": { + "shape": "String" + }, + "sparse": true + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "RestJsonSparseListsSerializeNull", + "description": "Serializes null values in sparse lists", + "given": { + "name": "SparseJsonLists", + "http": { + "method": "PUT", + "requestUri": "/SparseJsonLists", + "responseCode": 200 + }, + "input": { + "shape": "SparseJsonListsInputOutput" + }, + "idempotent": true + }, + "params": { + "sparseStringList": [ + null, + "hi" + ], + "sparseShortList": [ + null, + 2 + ] + }, + "serialized": { + "method": "PUT", + "uri": "/SparseJsonLists", + "body": "{\n \"sparseStringList\": [\n null,\n \"hi\"\n ],\n \"sparseShortList\": [\n null,\n 2\n ]\n}", + "headers": { + "Content-Type": "application/json" + } + } + } + ] + }, + { + "description": "Test cases for SparseJsonMaps operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "SparseBooleanMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Boolean" + }, + "sparse": true + }, + "SparseJsonMapsInputOutput": { + "type": "structure", + "members": { + "sparseStructMap": { + "shape": "SparseStructMap" + }, + "sparseNumberMap": { + "shape": "SparseNumberMap" + }, + "sparseBooleanMap": { + "shape": "SparseBooleanMap" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + }, + "sparseSetMap": { + "shape": "SparseSetMap" + } + } + }, + "SparseNumberMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Integer" + }, + "sparse": true + }, + "SparseSetMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "StringSet" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "SparseStructMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "GreetingStruct" + }, + "sparse": true + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "RestJsonSparseJsonMaps", + "description": "Serializes JSON maps", + "given": { + "name": "SparseJsonMaps", + "http": { + "method": "POST", + "requestUri": "/SparseJsonMaps", + "responseCode": 200 + }, + "input": { + "shape": "SparseJsonMapsInputOutput" + }, + "documentation": "

This example tests sparse map serialization.

" + }, + "params": { + "sparseStructMap": { + "foo": { + "hi": "there" + }, + "baz": { + "hi": "bye" + } + } + }, + "serialized": { + "method": "POST", + "uri": "/SparseJsonMaps", + "body": "{\n \"sparseStructMap\": {\n \"foo\": {\n \"hi\": \"there\"\n },\n \"baz\": {\n \"hi\": \"bye\"\n }\n }\n}", "headers": { - "Content-Type": "application/json", - "X-Foo": "Foo" + "Content-Type": "application/json" } } }, { - "id": "RestJsonDoesntSerializeNullStructureValues", + "id": "RestJsonSerializesSparseNullMapValues", + "description": "Serializes JSON map values in sparse maps", "given": { - "name": "SimpleScalarProperties", + "name": "SparseJsonMaps", "http": { - "method": "PUT", - "requestUri": "/SimpleScalarProperties", + "method": "POST", + "requestUri": "/SparseJsonMaps", "responseCode": 200 }, "input": { - "shape": "SimpleScalarPropertiesInputOutput" + "shape": "SparseJsonMapsInputOutput" }, - "idempotent": true + "documentation": "

This example tests sparse map serialization.

" }, - "description": "Rest Json should not serialize null structure values", "params": { - "stringValue": null + "sparseBooleanMap": { + "x": null + }, + "sparseNumberMap": { + "x": null + }, + "sparseStringMap": { + "x": null + }, + "sparseStructMap": { + "x": null + } }, "serialized": { - "method": "PUT", - "uri": "/SimpleScalarProperties", - "body": "{}", + "method": "POST", + "uri": "/SparseJsonMaps", + "body": "{\n \"sparseBooleanMap\": {\n \"x\": null\n },\n \"sparseNumberMap\": {\n \"x\": null\n },\n \"sparseStringMap\": {\n \"x\": null\n },\n \"sparseStructMap\": {\n \"x\": null\n }\n}", "headers": { "Content-Type": "application/json" } } }, { - "id": "RestJsonSupportsNaNFloatInputs", + "id": "RestJsonSerializesZeroValuesInSparseMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "given": { - "name": "SimpleScalarProperties", + "name": "SparseJsonMaps", "http": { - "method": "PUT", - "requestUri": "/SimpleScalarProperties", + "method": "POST", + "requestUri": "/SparseJsonMaps", "responseCode": 200 }, "input": { - "shape": "SimpleScalarPropertiesInputOutput" + "shape": "SparseJsonMapsInputOutput" }, - "idempotent": true + "documentation": "

This example tests sparse map serialization.

" }, - "description": "Supports handling NaN float values.", "params": { - "floatValue": "NaN", - "doubleValue": "NaN" + "sparseNumberMap": { + "x": 0 + }, + "sparseBooleanMap": { + "x": false + } }, "serialized": { - "method": "PUT", - "uri": "/SimpleScalarProperties", - "body": "{\n \"floatValue\": \"NaN\",\n \"DoubleDribble\": \"NaN\"\n}", + "method": "POST", + "uri": "/SparseJsonMaps", + "body": "{\n \"sparseNumberMap\": {\n \"x\": 0\n },\n \"sparseBooleanMap\": {\n \"x\": false\n }\n}", "headers": { "Content-Type": "application/json" } } }, { - "id": "RestJsonSupportsInfinityFloatInputs", + "id": "RestJsonSerializesSparseSetMap", + "description": "A request that contains a sparse map of sets", "given": { - "name": "SimpleScalarProperties", + "name": "SparseJsonMaps", "http": { - "method": "PUT", - "requestUri": "/SimpleScalarProperties", + "method": "POST", + "requestUri": "/SparseJsonMaps", "responseCode": 200 }, "input": { - "shape": "SimpleScalarPropertiesInputOutput" + "shape": "SparseJsonMapsInputOutput" }, - "idempotent": true + "documentation": "

This example tests sparse map serialization.

" }, - "description": "Supports handling Infinity float values.", "params": { - "floatValue": "Infinity", - "doubleValue": "Infinity" + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ] + } }, "serialized": { - "method": "PUT", - "uri": "/SimpleScalarProperties", - "body": "{\n \"floatValue\": \"Infinity\",\n \"DoubleDribble\": \"Infinity\"\n}", + "method": "POST", + "uri": "/SparseJsonMaps", + "body": "{\n \"sparseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"]\n }\n}", "headers": { "Content-Type": "application/json" } } }, { - "id": "RestJsonSupportsNegativeInfinityFloatInputs", + "id": "RestJsonSerializesSparseSetMapAndRetainsNull", + "description": "A request that contains a sparse map of sets.", "given": { - "name": "SimpleScalarProperties", + "name": "SparseJsonMaps", "http": { - "method": "PUT", - "requestUri": "/SimpleScalarProperties", + "method": "POST", + "requestUri": "/SparseJsonMaps", "responseCode": 200 }, "input": { - "shape": "SimpleScalarPropertiesInputOutput" + "shape": "SparseJsonMapsInputOutput" }, - "idempotent": true + "documentation": "

This example tests sparse map serialization.

" }, - "description": "Supports handling -Infinity float values.", "params": { - "floatValue": "-Infinity", - "doubleValue": "-Infinity" + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ], + "z": null + } }, "serialized": { - "method": "PUT", - "uri": "/SimpleScalarProperties", - "body": "{\n \"floatValue\": \"-Infinity\",\n \"DoubleDribble\": \"-Infinity\"\n}", + "method": "POST", + "uri": "/SparseJsonMaps", + "body": "{\n \"sparseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"],\n \"z\": null\n }\n}", "headers": { "Content-Type": "application/json" } @@ -5398,13 +6367,29 @@ { "description": "Test cases for TestBodyStructure operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Integer": { + "type": "integer", + "box": true + }, + "String": { + "type": "string" + }, "TestBodyStructureInputOutput": { "type": "structure", "members": { @@ -5418,9 +6403,6 @@ } } }, - "String": { - "type": "string" - }, "TestConfig": { "type": "structure", "members": { @@ -5428,15 +6410,12 @@ "shape": "Integer" } } - }, - "Integer": { - "type": "integer", - "box": true } }, "cases": [ { "id": "RestJsonTestBodyStructure", + "description": "Serializes a structure", "given": { "name": "TestBodyStructure", "http": { @@ -5450,7 +6429,6 @@ "documentation": "

This example operation serializes a structure in the HTTP body.

It should ensure Content-Type: application/json is used in all requests and that an "empty" body is an empty JSON document ({}).

", "idempotent": true }, - "description": "Serializes a structure", "params": { "testConfig": { "timeout": 10 @@ -5470,6 +6448,7 @@ }, { "id": "RestJsonHttpWithEmptyBody", + "description": "Serializes an empty structure in the body", "given": { "name": "TestBodyStructure", "http": { @@ -5483,7 +6462,6 @@ "documentation": "

This example operation serializes a structure in the HTTP body.

It should ensure Content-Type: application/json is used in all requests and that an "empty" body is an empty JSON document ({}).

", "idempotent": true }, - "description": "Serializes an empty structure in the body", "params": {}, "serialized": { "method": "POST", @@ -5502,16 +6480,26 @@ { "description": "Test cases for TestGetNoInputNoPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonHttpGetWithNoInput", + "description": "Serializes a GET request for an operation with no input, and therefore no modeled body", "given": { "name": "TestGetNoInputNoPayload", "http": { @@ -5519,9 +6507,9 @@ "requestUri": "/no_input_no_payload", "responseCode": 200 }, - "documentation": "

This example GET operation has no input and serializes a request without a HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.

" + "documentation": "

This example GET operation has no input and serializes a request without a HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.

", + "readonly": true }, - "description": "Serializes a GET request for an operation with no input, and therefore no modeled body", "params": {}, "serialized": { "method": "GET", @@ -5538,13 +6526,25 @@ { "description": "Test cases for TestGetNoPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "TestNoPayloadInputOutput": { "type": "structure", "members": { @@ -5554,14 +6554,12 @@ "locationName": "X-Amz-Test-Id" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestJsonHttpGetWithNoModeledBody", + "description": "Serializes a GET request with no modeled body", "given": { "name": "TestGetNoPayload", "http": { @@ -5572,9 +6570,9 @@ "input": { "shape": "TestNoPayloadInputOutput" }, - "documentation": "

This example GET operation serializes a request without a modeled HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.

" + "documentation": "

This example GET operation serializes a request without a modeled HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.

", + "readonly": true }, - "description": "Serializes a GET request with no modeled body", "params": {}, "serialized": { "method": "GET", @@ -5588,6 +6586,7 @@ }, { "id": "RestJsonHttpGetWithHeaderMemberNoModeledBody", + "description": "Serializes a GET request with header member but no modeled body", "given": { "name": "TestGetNoPayload", "http": { @@ -5598,9 +6597,9 @@ "input": { "shape": "TestNoPayloadInputOutput" }, - "documentation": "

This example GET operation serializes a request without a modeled HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.

" + "documentation": "

This example GET operation serializes a request without a modeled HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.

", + "readonly": true }, - "description": "Serializes a GET request with header member but no modeled body", "params": { "testId": "t-12345" }, @@ -5622,13 +6621,28 @@ { "description": "Test cases for TestPayloadBlob operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, + "String": { + "type": "string" + }, "TestPayloadBlobInputOutput": { "type": "structure", "members": { @@ -5642,17 +6656,12 @@ } }, "payload": "data" - }, - "String": { - "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RestJsonHttpWithEmptyBlobPayload", + "description": "Serializes a payload targeting an empty blob", "given": { "name": "TestPayloadBlob", "http": { @@ -5666,7 +6675,6 @@ "documentation": "

This example operation serializes a payload targeting a blob.

The Blob shape is not structured content and we cannot make assumptions about what data will be sent. This test ensures only a generic "Content-Type: application/octet-stream" header is used, and that we are not treating an empty body as an empty JSON document.

", "idempotent": true }, - "description": "Serializes a payload targeting an empty blob", "params": {}, "serialized": { "method": "POST", @@ -5676,6 +6684,7 @@ }, { "id": "RestJsonTestPayloadBlob", + "description": "Serializes a payload targeting a blob", "given": { "name": "TestPayloadBlob", "http": { @@ -5689,7 +6698,6 @@ "documentation": "

This example operation serializes a payload targeting a blob.

The Blob shape is not structured content and we cannot make assumptions about what data will be sent. This test ensures only a generic "Content-Type: application/octet-stream" header is used, and that we are not treating an empty body as an empty JSON document.

", "idempotent": true }, - "description": "Serializes a payload targeting a blob", "params": { "contentType": "image/jpg", "data": "1234" @@ -5711,13 +6719,37 @@ { "description": "Test cases for TestPayloadStructure operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Integer": { + "type": "integer", + "box": true + }, + "PayloadConfig": { + "type": "structure", + "members": { + "data": { + "shape": "Integer" + } + } + }, + "String": { + "type": "string" + }, "TestPayloadStructureInputOutput": { "type": "structure", "members": { @@ -5731,26 +6763,12 @@ } }, "payload": "payloadConfig" - }, - "String": { - "type": "string" - }, - "PayloadConfig": { - "type": "structure", - "members": { - "data": { - "shape": "Integer" - } - } - }, - "Integer": { - "type": "integer", - "box": true } }, "cases": [ { "id": "RestJsonHttpWithEmptyStructurePayload", + "description": "Serializes a payload targeting an empty structure", "given": { "name": "TestPayloadStructure", "http": { @@ -5764,7 +6782,6 @@ "documentation": "

This example operation serializes a payload targeting a structure.

This enforces the same requirements as TestBodyStructure but with the body specified by the @httpPayload trait.

", "idempotent": true }, - "description": "Serializes a payload targeting an empty structure", "params": {}, "serialized": { "method": "POST", @@ -5780,6 +6797,7 @@ }, { "id": "RestJsonTestPayloadStructure", + "description": "Serializes a payload targeting a structure", "given": { "name": "TestPayloadStructure", "http": { @@ -5793,7 +6811,6 @@ "documentation": "

This example operation serializes a payload targeting a structure.

This enforces the same requirements as TestBodyStructure but with the body specified by the @httpPayload trait.

", "idempotent": true }, - "description": "Serializes a payload targeting a structure", "params": { "payloadConfig": { "data": 25 @@ -5813,6 +6830,7 @@ }, { "id": "RestJsonHttpWithHeadersButNoPayload", + "description": "Serializes an request with header members but no payload", "given": { "name": "TestPayloadStructure", "http": { @@ -5826,7 +6844,6 @@ "documentation": "

This example operation serializes a payload targeting a structure.

This enforces the same requirements as TestBodyStructure but with the body specified by the @httpPayload trait.

", "idempotent": true }, - "description": "Serializes an request with header members but no payload", "params": { "testId": "t-12345" }, @@ -5835,8 +6852,8 @@ "uri": "/payload", "body": "{}", "headers": { - "Content-Type": "application/json", - "X-Amz-Test-Id": "t-12345" + "X-Amz-Test-Id": "t-12345", + "Content-Type": "application/json" }, "requireHeaders": [ "Content-Length" @@ -5848,16 +6865,26 @@ { "description": "Test cases for TestPostNoInputNoPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonHttpPostWithNoInput", + "description": "Serializes a POST request for an operation with no input, and therefore no modeled body", "given": { "name": "TestPostNoInputNoPayload", "http": { @@ -5867,7 +6894,6 @@ }, "documentation": "

This example POST operation has no input and serializes a request without a HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled input.

" }, - "description": "Serializes a POST request for an operation with no input, and therefore no modeled body", "params": {}, "serialized": { "method": "POST", @@ -5883,13 +6909,25 @@ { "description": "Test cases for TestPostNoPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "TestNoPayloadInputOutput": { "type": "structure", "members": { @@ -5899,14 +6937,12 @@ "locationName": "X-Amz-Test-Id" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestJsonHttpPostWithNoModeledBody", + "description": "Serializes a POST request with no modeled body", "given": { "name": "TestPostNoPayload", "http": { @@ -5919,7 +6955,6 @@ }, "documentation": "

This example POST operation serializes a request without a modeled HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled payload.

" }, - "description": "Serializes a POST request with no modeled body", "params": {}, "serialized": { "method": "POST", @@ -5932,6 +6967,7 @@ }, { "id": "RestJsonHttpWithPostHeaderMemberNoModeledBody", + "description": "Serializes a POST request with header member but no modeled body", "given": { "name": "TestPostNoPayload", "http": { @@ -5944,7 +6980,6 @@ }, "documentation": "

This example POST operation serializes a request without a modeled HTTP body.

These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled payload.

" }, - "description": "Serializes a POST request with header member but no modeled body", "params": { "testId": "t-12345" }, @@ -5965,13 +7000,49 @@ { "description": "Test cases for TimestampFormatHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "TimestampFormatHeadersIO": { "type": "structure", "members": { @@ -6011,38 +7082,12 @@ "locationName": "X-targetDateTime" } } - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "Timestamp": { - "type": "timestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RestJsonTimestampFormatHeaders", + "description": "Tests how timestamp request headers are serialized", "given": { "name": "TimestampFormatHeaders", "http": { @@ -6055,7 +7100,6 @@ }, "documentation": "

This example tests how timestamp request and response headers are serialized.

" }, - "description": "Tests how timestamp request headers are serialized", "params": { "memberEpochSeconds": 1576540098, "memberHttpDate": 1576540098, @@ -6070,13 +7114,13 @@ "uri": "/TimestampFormatHeaders", "body": "", "headers": { - "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberDateTime": "2019-12-16T23:48:18Z", - "X-memberEpochSeconds": "1576540098", + "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-targetDateTime": "2019-12-16T23:48:18Z", "X-targetEpochSeconds": "1576540098", - "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT" + "X-memberEpochSeconds": "1576540098", + "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT" } } } @@ -6085,16 +7129,26 @@ { "description": "Test cases for UnitInputAndOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonUnitInputAndOutput", + "description": "A unit type input serializes no payload. When clients do not\nneed to serialize any data in the payload, they should omit\na payload altogether.", "given": { "name": "UnitInputAndOutput", "http": { @@ -6104,7 +7158,6 @@ }, "documentation": "

This test is similar to NoInputAndNoOutput, but uses explicit Unit types.

" }, - "description": "A unit type input serializes no payload. When clients do not\nneed to serialize any data in the payload, they should omit\na payload altogether.", "params": {}, "serialized": { "method": "POST", diff --git a/tests/unit/botocore/protocols/input/rest-xml.json b/tests/unit/botocore/protocols/input/rest-xml.json index 72766ac9b707..65657e691c8a 100644 --- a/tests/unit/botocore/protocols/input/rest-xml.json +++ b/tests/unit/botocore/protocols/input/rest-xml.json @@ -2,11 +2,20 @@ { "description": "Test cases for AllQueryStringTypes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "AllQueryStringTypesInput": { @@ -118,45 +127,16 @@ } } }, - "String": { - "type": "string" - }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } - }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } - }, - "Integer": { - "type": "integer", + "Boolean": { + "type": "boolean", "box": true }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "IntegerSet": { + "BooleanList": { "type": "list", "member": { - "shape": "Integer" + "shape": "Boolean" } }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, "Double": { "type": "double", "box": true @@ -167,25 +147,10 @@ "shape": "Double" } }, - "Boolean": { - "type": "boolean", + "Float": { + "type": "float", "box": true }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } - }, - "Timestamp": { - "type": "timestamp" - }, - "TimestampList": { - "type": "list", - "member": { - "shape": "Timestamp" - } - }, "FooEnum": { "type": "string", "enum": [ @@ -202,6 +167,10 @@ "shape": "FooEnum" } }, + "Integer": { + "type": "integer", + "box": true + }, "IntegerEnum": { "type": "integer", "box": true @@ -212,6 +181,31 @@ "shape": "IntegerEnum" } }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, + "IntegerSet": { + "type": "list", + "member": { + "shape": "Integer" + } + }, + "Long": { + "type": "long", + "box": true + }, + "String": { + "type": "string" + }, + "StringList": { + "type": "list", + "member": { + "shape": "String" + } + }, "StringMap": { "type": "map", "key": { @@ -220,11 +214,27 @@ "value": { "shape": "String" } + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + }, + "Timestamp": { + "type": "timestamp" + }, + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } } }, "cases": [ { "id": "AllQueryStringTypes", + "description": "Serializes query string parameters with all supported types", "given": { "name": "AllQueryStringTypes", "http": { @@ -235,9 +245,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Serializes query string parameters with all supported types", "params": { "queryString": "Hello there", "queryStringList": [ @@ -303,6 +313,7 @@ }, { "id": "RestXmlQueryStringMap", + "description": "Handles query string maps", "given": { "name": "AllQueryStringTypes", "http": { @@ -313,9 +324,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Handles query string maps", "params": { "queryParamsMapOfStrings": { "QueryParamsStringKeyA": "Foo", @@ -330,6 +341,7 @@ }, { "id": "RestXmlQueryStringEscaping", + "description": "Handles escaping all required characters in the query string.", "given": { "name": "AllQueryStringTypes", "http": { @@ -340,9 +352,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Handles escaping all required characters in the query string.", "params": { "queryString": " %:/?#[]@!$&'()*+,;=😹" }, @@ -354,6 +366,7 @@ }, { "id": "RestXmlSupportsNaNFloatQueryValues", + "description": "Supports handling NaN float query values.", "given": { "name": "AllQueryStringTypes", "http": { @@ -364,9 +377,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Supports handling NaN float query values.", "params": { "queryFloat": "NaN", "queryDouble": "NaN" @@ -379,6 +392,7 @@ }, { "id": "RestXmlSupportsInfinityFloatQueryValues", + "description": "Supports handling Infinity float query values.", "given": { "name": "AllQueryStringTypes", "http": { @@ -389,9 +403,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Supports handling Infinity float query values.", "params": { "queryFloat": "Infinity", "queryDouble": "Infinity" @@ -404,6 +418,7 @@ }, { "id": "RestXmlSupportsNegativeInfinityFloatQueryValues", + "description": "Supports handling -Infinity float query values.", "given": { "name": "AllQueryStringTypes", "http": { @@ -414,9 +429,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Supports handling -Infinity float query values.", "params": { "queryFloat": "-Infinity", "queryDouble": "-Infinity" @@ -429,6 +444,7 @@ }, { "id": "RestXmlZeroAndFalseQueryValues", + "description": "Query values of 0 and false are serialized", "given": { "name": "AllQueryStringTypes", "http": { @@ -439,9 +455,9 @@ "input": { "shape": "AllQueryStringTypesInput" }, - "documentation": "

This example uses all query string types.

" + "documentation": "

This example uses all query string types.

", + "readonly": true }, - "description": "Query values of 0 and false are serialized", "params": { "queryInteger": 0, "queryBoolean": false @@ -457,11 +473,20 @@ { "description": "Test cases for BodyWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "BodyWithXmlNameInputOutput": { @@ -489,6 +514,7 @@ "cases": [ { "id": "BodyWithXmlName", + "description": "Serializes a payload using a wrapper name based on the xmlName", "given": { "name": "BodyWithXmlName", "http": { @@ -503,7 +529,6 @@ "documentation": "

The following example serializes a body that uses an XML name, changing the wrapper name.

", "idempotent": true }, - "description": "Serializes a payload using a wrapper name based on the xmlName", "params": { "nested": { "name": "Phreddy" @@ -526,11 +551,20 @@ { "description": "Test cases for ConstantAndVariableQueryString operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "ConstantAndVariableQueryStringInput": { @@ -555,6 +589,7 @@ "cases": [ { "id": "ConstantAndVariableQueryStringMissingOneValue", + "description": "Mixes constant and variable query string parameters", "given": { "name": "ConstantAndVariableQueryString", "http": { @@ -565,9 +600,9 @@ "input": { "shape": "ConstantAndVariableQueryStringInput" }, - "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

" + "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

", + "readonly": true }, - "description": "Mixes constant and variable query string parameters", "params": { "baz": "bam" }, @@ -579,6 +614,7 @@ }, { "id": "ConstantAndVariableQueryStringAllValues", + "description": "Mixes constant and variable query string parameters", "given": { "name": "ConstantAndVariableQueryString", "http": { @@ -589,9 +625,9 @@ "input": { "shape": "ConstantAndVariableQueryStringInput" }, - "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

" + "documentation": "

This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).

", + "readonly": true }, - "description": "Mixes constant and variable query string parameters", "params": { "baz": "bam", "maybeSet": "yes" @@ -607,11 +643,20 @@ { "description": "Test cases for ConstantQueryString operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "ConstantQueryStringInput": { @@ -634,6 +679,7 @@ "cases": [ { "id": "ConstantQueryString", + "description": "Includes constant query string parameters", "given": { "name": "ConstantQueryString", "http": { @@ -644,9 +690,9 @@ "input": { "shape": "ConstantQueryStringInput" }, - "documentation": "

This example uses a constant query string parameters and a label. This simply tests that labels and query string parameters are compatible. The fixed query string parameter named "hello" should in no way conflict with the label, {hello}.

" + "documentation": "

This example uses a constant query string parameters and a label. This simply tests that labels and query string parameters are compatible. The fixed query string parameter named "hello" should in no way conflict with the label, {hello}.

", + "readonly": true }, - "description": "Includes constant query string parameters", "params": { "hello": "hi" }, @@ -661,11 +707,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "EmptyInputAndEmptyOutputInput": { @@ -676,6 +731,7 @@ "cases": [ { "id": "EmptyInputAndEmptyOutput", + "description": "Empty input serializes no payload", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -688,7 +744,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "Empty input serializes no payload", "params": {}, "serialized": { "method": "POST", @@ -700,17 +755,28 @@ }, { "description": "Test cases for EndpointOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestXmlEndpointTrait", + "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "given": { "name": "EndpointOperation", "http": { @@ -722,7 +788,6 @@ "hostPrefix": "foo." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait.", "params": {}, "serialized": { "method": "POST", @@ -731,17 +796,26 @@ "host": "foo.example.com" } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelHeaderOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HostLabelHeaderInput": { @@ -765,6 +839,7 @@ "cases": [ { "id": "RestXmlEndpointTraitWithHostLabelAndHttpBinding", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input. The label must also\nbe serialized in into any other location it is bound to, such\nas the body or in this case an http header.", "given": { "name": "EndpointWithHostLabelHeaderOperation", "http": { @@ -779,7 +854,6 @@ "hostPrefix": "{accountId}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input. The label must also\nbe serialized in into any other location it is bound to, such\nas the body or in this case an http header.", "params": { "accountId": "bar" }, @@ -787,23 +861,32 @@ "method": "POST", "uri": "/EndpointWithHostLabelHeaderOperation", "body": "", + "host": "bar.example.com", "headers": { "X-Amz-Account-Id": "bar" - }, - "host": "bar.example.com" + } } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for EndpointWithHostLabelOperation operation", + "clientEndpoint": "https://example.com", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "EndpointWithHostLabelOperationRequest": { @@ -825,6 +908,7 @@ "cases": [ { "id": "RestXmlEndpointTraitWithHostLabel", + "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "given": { "name": "EndpointWithHostLabelOperation", "http": { @@ -840,7 +924,6 @@ "hostPrefix": "foo.{label}." } }, - "description": "Operations can prepend to the given host if they define the\nendpoint trait, and can use the host label trait to define\nfurther customization based on user input.", "params": { "label": "bar" }, @@ -851,17 +934,25 @@ "host": "foo.bar.example.com" } } - ], - "clientEndpoint": "https://example.com" + ] }, { "description": "Test cases for FlattenedXmlMap operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "FlattenedXmlMapRequest": { @@ -873,15 +964,6 @@ } } }, - "FooEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "FooEnum" - } - }, "FooEnum": { "type": "string", "enum": [ @@ -892,6 +974,15 @@ "0" ] }, + "FooEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "FooEnum" + } + }, "String": { "type": "string" } @@ -899,6 +990,7 @@ "cases": [ { "id": "FlattenedXmlMap", + "description": "Serializes flattened XML maps in requests", "given": { "name": "FlattenedXmlMap", "http": { @@ -912,7 +1004,6 @@ }, "documentation": "

Flattened maps

" }, - "description": "Serializes flattened XML maps in requests", "params": { "myMap": { "foo": "Foo", @@ -933,23 +1024,22 @@ { "description": "Test cases for FlattenedXmlMapWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "FlattenedXmlMapWithXmlNameRequest": { - "type": "structure", - "members": { - "myMap": { - "shape": "FlattenedXmlMapWithXmlNameInputOutputMap", - "flattened": true, - "locationName": "KVP" - } - } - }, "FlattenedXmlMapWithXmlNameInputOutputMap": { "type": "map", "key": { @@ -961,6 +1051,16 @@ "locationName": "V" } }, + "FlattenedXmlMapWithXmlNameRequest": { + "type": "structure", + "members": { + "myMap": { + "shape": "FlattenedXmlMapWithXmlNameInputOutputMap", + "flattened": true, + "locationName": "KVP" + } + } + }, "String": { "type": "string" } @@ -968,6 +1068,7 @@ "cases": [ { "id": "FlattenedXmlMapWithXmlName", + "description": "Serializes flattened XML maps in requests that have xmlName on members", "given": { "name": "FlattenedXmlMapWithXmlName", "http": { @@ -981,7 +1082,6 @@ }, "documentation": "

Flattened maps with @xmlName

" }, - "description": "Serializes flattened XML maps in requests that have xmlName on members", "params": { "myMap": { "a": "A", @@ -999,14 +1099,106 @@ } ] }, + { + "description": "Test cases for HttpEmptyPrefixHeaders operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", + "protocol": "rest-xml", + "protocols": [ + "rest-xml" + ], + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" + }, + "shapes": { + "HttpEmptyPrefixHeadersInput": { + "type": "structure", + "members": { + "prefixHeaders": { + "shape": "StringMap", + "location": "headers", + "locationName": "" + }, + "specificHeader": { + "shape": "String", + "location": "header", + "locationName": "hello" + } + } + }, + "String": { + "type": "string" + }, + "StringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "HttpEmptyPrefixHeadersRequestClient", + "description": "Serializes all request headers, using specific when present", + "given": { + "name": "HttpEmptyPrefixHeaders", + "http": { + "method": "GET", + "requestUri": "/HttpEmptyPrefixHeaders", + "responseCode": 200 + }, + "input": { + "shape": "HttpEmptyPrefixHeadersInput" + }, + "documentation": "

Clients that perform this test extract all headers from the response.

", + "readonly": true + }, + "params": { + "prefixHeaders": { + "x-foo": "Foo", + "hello": "Hello" + }, + "specificHeader": "There" + }, + "serialized": { + "method": "GET", + "uri": "/HttpEmptyPrefixHeaders", + "body": "", + "headers": { + "x-foo": "Foo", + "hello": "There" + } + } + } + ] + }, { "description": "Test cases for HttpEnumPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "EnumPayloadInput": { @@ -1056,13 +1248,25 @@ { "description": "Test cases for HttpPayloadTraits operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "HttpPayloadTraitsInputOutput": { "type": "structure", "members": { @@ -1079,14 +1283,12 @@ }, "String": { "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "HttpPayloadTraitsWithBlob", + "description": "Serializes a blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -1099,7 +1301,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no XML document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes a blob in the HTTP payload", "params": { "foo": "Foo", "blob": "blobby blob blob" @@ -1118,6 +1319,7 @@ }, { "id": "HttpPayloadTraitsWithNoBlobBody", + "description": "Serializes an empty blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -1130,7 +1332,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no XML document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes an empty blob in the HTTP payload", "params": { "foo": "Foo" }, @@ -1148,11 +1349,20 @@ { "description": "Test cases for HttpPayloadWithMemberXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithMemberXmlNameInputOutput": { @@ -1181,6 +1391,7 @@ "cases": [ { "id": "HttpPayloadWithMemberXmlName", + "description": "Serializes a structure in the payload using a wrapper name based on member xmlName", "given": { "name": "HttpPayloadWithMemberXmlName", "http": { @@ -1194,7 +1405,6 @@ "documentation": "

The following example serializes a payload that uses an XML name on the member, changing the wrapper name.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper name based on member xmlName", "params": { "nested": { "name": "Phreddy" @@ -1217,11 +1427,20 @@ { "description": "Test cases for HttpPayloadWithStructure operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithStructureInputOutput": { @@ -1252,6 +1471,7 @@ "cases": [ { "id": "HttpPayloadWithStructure", + "description": "Serializes a structure in the payload", "given": { "name": "HttpPayloadWithStructure", "http": { @@ -1265,7 +1485,6 @@ "documentation": "

This example serializes a structure in the payload.

Note that serializing a structure changes the wrapper element name to match the targeted structure.

", "idempotent": true }, - "description": "Serializes a structure in the payload", "params": { "nested": { "greeting": "hello", @@ -1289,11 +1508,20 @@ { "description": "Test cases for HttpPayloadWithUnion operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithUnionInputOutput": { @@ -1306,6 +1534,9 @@ }, "payload": "nested" }, + "String": { + "type": "string" + }, "UnionPayload": { "type": "structure", "members": { @@ -1314,14 +1545,12 @@ } }, "union": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestXmlHttpPayloadWithUnion", + "description": "Serializes a union in the payload.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -1335,7 +1564,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "Serializes a union in the payload.", "params": { "nested": { "greeting": "hello" @@ -1355,6 +1583,7 @@ }, { "id": "RestXmlHttpPayloadWithUnsetUnion", + "description": "No payload is sent if the union has no value.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -1368,7 +1597,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "No payload is sent if the union has no value.", "params": {}, "serialized": { "method": "PUT", @@ -1381,11 +1609,20 @@ { "description": "Test cases for HttpPayloadWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithXmlNameInputOutput": { @@ -1414,6 +1651,7 @@ "cases": [ { "id": "HttpPayloadWithXmlName", + "description": "Serializes a structure in the payload using a wrapper name based on xmlName", "given": { "name": "HttpPayloadWithXmlName", "http": { @@ -1427,7 +1665,6 @@ "documentation": "

The following example serializes a payload that uses an XML name, changing the wrapper name.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper name based on xmlName", "params": { "nested": { "name": "Phreddy" @@ -1450,11 +1687,20 @@ { "description": "Test cases for HttpPayloadWithXmlNamespace operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithXmlNamespaceInputOutput": { @@ -1483,6 +1729,7 @@ "cases": [ { "id": "HttpPayloadWithXmlNamespace", + "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "given": { "name": "HttpPayloadWithXmlNamespace", "http": { @@ -1496,7 +1743,6 @@ "documentation": "

The following example serializes a payload that uses an XML namespace.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "params": { "nested": { "name": "Phreddy" @@ -1519,11 +1765,20 @@ { "description": "Test cases for HttpPayloadWithXmlNamespaceAndPrefix operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithXmlNamespaceAndPrefixInputOutput": { @@ -1555,6 +1810,7 @@ "cases": [ { "id": "HttpPayloadWithXmlNamespaceAndPrefix", + "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "given": { "name": "HttpPayloadWithXmlNamespaceAndPrefix", "http": { @@ -1568,7 +1824,6 @@ "documentation": "

The following example serializes a payload that uses an XML namespace.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "params": { "nested": { "name": "Phreddy" @@ -1591,13 +1846,31 @@ { "description": "Test cases for HttpPrefixHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "FooPrefixHeaders": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + }, "HttpPrefixHeadersInputOutput": { "type": "structure", "members": { @@ -1615,20 +1888,12 @@ }, "String": { "type": "string" - }, - "FooPrefixHeaders": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "String" - } } }, "cases": [ { "id": "HttpPrefixHeadersArePresent", + "description": "Adds headers by prefix", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1639,9 +1904,9 @@ "input": { "shape": "HttpPrefixHeadersInputOutput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "Adds headers by prefix", "params": { "foo": "Foo", "fooMap": { @@ -1655,13 +1920,14 @@ "body": "", "headers": { "x-foo": "Foo", - "x-foo-abc": "Abc value", - "x-foo-def": "Def value" + "x-foo-def": "Def value", + "x-foo-abc": "Abc value" } } }, { "id": "HttpPrefixHeadersAreNotPresent", + "description": "No prefix headers are serialized because the value is not present", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1672,9 +1938,9 @@ "input": { "shape": "HttpPrefixHeadersInputOutput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "No prefix headers are serialized because the value is not present", "params": { "foo": "Foo", "fooMap": {} @@ -1690,6 +1956,7 @@ }, { "id": "HttpPrefixEmptyHeaders", + "description": "Serialize prefix headers were the value is present but empty", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1700,9 +1967,9 @@ "input": { "shape": "HttpPrefixHeadersInputOutput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "Serialize prefix headers were the value is present but empty", "params": { "fooMap": { "abc": "" @@ -1722,13 +1989,30 @@ { "description": "Test cases for HttpRequestWithFloatLabels operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "HttpRequestWithFloatLabelsInput": { "type": "structure", "required": [ @@ -1747,19 +2031,12 @@ "locationName": "double" } } - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "RestXmlSupportsNaNFloatLabels", + "description": "Supports handling NaN float label values.", "given": { "name": "HttpRequestWithFloatLabels", "http": { @@ -1769,9 +2046,9 @@ }, "input": { "shape": "HttpRequestWithFloatLabelsInput" - } + }, + "readonly": true }, - "description": "Supports handling NaN float label values.", "params": { "float": "NaN", "double": "NaN" @@ -1784,6 +2061,7 @@ }, { "id": "RestXmlSupportsInfinityFloatLabels", + "description": "Supports handling Infinity float label values.", "given": { "name": "HttpRequestWithFloatLabels", "http": { @@ -1793,9 +2071,9 @@ }, "input": { "shape": "HttpRequestWithFloatLabelsInput" - } + }, + "readonly": true }, - "description": "Supports handling Infinity float label values.", "params": { "float": "Infinity", "double": "Infinity" @@ -1808,6 +2086,7 @@ }, { "id": "RestXmlSupportsNegativeInfinityFloatLabels", + "description": "Supports handling -Infinity float label values.", "given": { "name": "HttpRequestWithFloatLabels", "http": { @@ -1817,9 +2096,9 @@ }, "input": { "shape": "HttpRequestWithFloatLabelsInput" - } + }, + "readonly": true }, - "description": "Supports handling -Infinity float label values.", "params": { "float": "-Infinity", "double": "-Infinity" @@ -1835,11 +2114,20 @@ { "description": "Test cases for HttpRequestWithGreedyLabelInPath operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpRequestWithGreedyLabelInPathInput": { @@ -1868,6 +2156,7 @@ "cases": [ { "id": "HttpRequestWithGreedyLabelInPath", + "description": "Serializes greedy labels and normal labels", "given": { "name": "HttpRequestWithGreedyLabelInPath", "http": { @@ -1877,9 +2166,9 @@ }, "input": { "shape": "HttpRequestWithGreedyLabelInPathInput" - } + }, + "readonly": true }, - "description": "Serializes greedy labels and normal labels", "params": { "foo": "hello", "baz": "there/guy" @@ -1895,13 +2184,34 @@ { "description": "Test cases for HttpRequestWithLabels operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "HttpRequestWithLabelsInput": { "type": "structure", "required": [ @@ -1959,9 +2269,6 @@ } } }, - "String": { - "type": "string" - }, "Integer": { "type": "integer", "box": true @@ -1970,17 +2277,8 @@ "type": "long", "box": true }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Boolean": { - "type": "boolean", - "box": true + "String": { + "type": "string" }, "Timestamp": { "type": "timestamp" @@ -1989,6 +2287,7 @@ "cases": [ { "id": "InputWithHeadersAndAllParams", + "description": "Sends a GET request that uses URI label bindings", "given": { "name": "HttpRequestWithLabels", "http": { @@ -1999,9 +2298,9 @@ "input": { "shape": "HttpRequestWithLabelsInput" }, - "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

" + "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

", + "readonly": true }, - "description": "Sends a GET request that uses URI label bindings", "params": { "string": "string", "short": 1, @@ -2020,6 +2319,7 @@ }, { "id": "HttpRequestLabelEscaping", + "description": "Sends a GET request that uses URI label bindings", "given": { "name": "HttpRequestWithLabels", "http": { @@ -2030,9 +2330,9 @@ "input": { "shape": "HttpRequestWithLabelsInput" }, - "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

" + "documentation": "

The example tests how requests are serialized when there's no input payload but there are HTTP labels.

", + "readonly": true }, - "description": "Sends a GET request that uses URI label bindings", "params": { "string": " %:/?#[]@!$&'()*+,;=😹", "short": 1, @@ -2054,13 +2354,34 @@ { "description": "Test cases for HttpRequestWithLabelsAndTimestampFormat operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, "HttpRequestWithLabelsAndTimestampFormatInput": { "type": "structure", "required": [ @@ -2110,37 +2431,26 @@ } } }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, "SyntheticTimestamp_date_time": { "type": "timestamp", "timestampFormat": "iso8601" }, - "Timestamp": { - "type": "timestamp" - }, - "EpochSeconds": { + "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "HttpDate": { + "SyntheticTimestamp_http_date": { "type": "timestamp", "timestampFormat": "rfc822" }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "HttpRequestWithLabelsAndTimestampFormat", + "description": "Serializes different timestamp formats in URI labels", "given": { "name": "HttpRequestWithLabelsAndTimestampFormat", "http": { @@ -2151,9 +2461,9 @@ "input": { "shape": "HttpRequestWithLabelsAndTimestampFormatInput" }, - "documentation": "

The example tests how requests serialize different timestamp formats in the URI path.

" + "documentation": "

The example tests how requests serialize different timestamp formats in the URI path.

", + "readonly": true }, - "description": "Serializes different timestamp formats in URI labels", "params": { "memberEpochSeconds": 1576540098, "memberHttpDate": 1576540098, @@ -2174,13 +2484,25 @@ { "description": "Test cases for HttpStringPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "StringPayloadInput": { "type": "structure", "members": { @@ -2189,9 +2511,6 @@ } }, "payload": "payload" - }, - "String": { - "type": "string" } }, "cases": [ @@ -2225,13 +2544,56 @@ { "description": "Test cases for InputAndOutputWithHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "InputAndOutputWithHeadersIO": { "type": "structure", "members": { @@ -2317,28 +2679,22 @@ } } }, - "String": { - "type": "string" - }, "Integer": { "type": "integer", "box": true }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, "Long": { "type": "long", "box": true }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Boolean": { - "type": "boolean", - "box": true + "String": { + "type": "string" }, "StringList": { "type": "list", @@ -2352,47 +2708,20 @@ "shape": "String" } }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Timestamp": { + "type": "timestamp" }, "TimestampList": { "type": "list", "member": { "shape": "Timestamp" } - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "FooEnumList": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, - "Timestamp": { - "type": "timestamp" } }, "cases": [ { "id": "InputAndOutputWithStringHeaders", + "description": "Tests requests with string header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2405,7 +2734,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with string header bindings", "params": { "headerString": "Hello", "headerStringList": [ @@ -2424,14 +2752,15 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-String": "Hello", "X-StringList": "a, b, c", + "X-String": "Hello", "X-StringSet": "a, b, c" } } }, { "id": "InputAndOutputWithNumericHeaders", + "description": "Tests requests with numeric header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2444,7 +2773,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with numeric header bindings", "params": { "headerByte": 1, "headerShort": 123, @@ -2463,18 +2791,19 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { + "X-Integer": "123", + "X-Short": "123", "X-Byte": "1", + "X-Long": "123", "X-Double": "1.1", "X-Float": "1.1", - "X-Integer": "123", - "X-IntegerList": "1, 2, 3", - "X-Long": "123", - "X-Short": "123" + "X-IntegerList": "1, 2, 3" } } }, { "id": "InputAndOutputWithBooleanHeaders", + "description": "Tests requests with boolean header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2487,7 +2816,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with boolean header bindings", "params": { "headerTrueBool": true, "headerFalseBool": false, @@ -2502,14 +2830,15 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { + "X-BooleanList": "true, false, true", "X-Boolean1": "true", - "X-Boolean2": "false", - "X-BooleanList": "true, false, true" + "X-Boolean2": "false" } } }, { "id": "InputAndOutputWithTimestampHeaders", + "description": "Tests requests with timestamp header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2522,7 +2851,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with timestamp header bindings", "params": { "headerTimestampList": [ 1576540098, @@ -2540,6 +2868,7 @@ }, { "id": "InputAndOutputWithEnumHeaders", + "description": "Tests requests with enum header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2552,7 +2881,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests requests with enum header bindings", "params": { "headerEnum": "Foo", "headerEnumList": [ @@ -2566,13 +2894,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Enum": "Foo", - "X-EnumList": "Foo, Bar, Baz" + "X-EnumList": "Foo, Bar, Baz", + "X-Enum": "Foo" } } }, { "id": "RestXmlSupportsNaNFloatHeaderInputs", + "description": "Supports handling NaN float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2585,7 +2914,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling NaN float header values.", "params": { "headerFloat": "NaN", "headerDouble": "NaN" @@ -2595,13 +2923,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Double": "NaN", - "X-Float": "NaN" + "X-Float": "NaN", + "X-Double": "NaN" } } }, { "id": "RestXmlSupportsInfinityFloatHeaderInputs", + "description": "Supports handling Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2614,7 +2943,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling Infinity float header values.", "params": { "headerFloat": "Infinity", "headerDouble": "Infinity" @@ -2624,13 +2952,14 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Double": "Infinity", - "X-Float": "Infinity" + "X-Float": "Infinity", + "X-Double": "Infinity" } } }, { "id": "RestXmlSupportsNegativeInfinityFloatHeaderInputs", + "description": "Supports handling -Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2643,7 +2972,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling -Infinity float header values.", "params": { "headerFloat": "-Infinity", "headerDouble": "-Infinity" @@ -2653,8 +2981,8 @@ "uri": "/InputAndOutputWithHeaders", "body": "", "headers": { - "X-Double": "-Infinity", - "X-Float": "-Infinity" + "X-Float": "-Infinity", + "X-Double": "-Infinity" } } } @@ -2663,52 +2991,61 @@ { "description": "Test cases for NestedXmlMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "NestedXmlMapsRequest": { - "type": "structure", - "members": { - "nestedMap": { - "shape": "NestedMap" - }, - "flatNestedMap": { - "shape": "NestedMap", - "flattened": true - } - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "NestedMap": { + "FooEnumMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "FooEnumMap" + "shape": "FooEnum" } }, - "FooEnumMap": { + "NestedMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "FooEnum" + "shape": "FooEnumMap" } }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] + "NestedXmlMapsRequest": { + "type": "structure", + "members": { + "nestedMap": { + "shape": "NestedMap" + }, + "flatNestedMap": { + "shape": "NestedMap", + "flattened": true + } + } }, "String": { "type": "string" @@ -2717,6 +3054,7 @@ "cases": [ { "id": "NestedXmlMapRequest", + "description": "Tests requests with nested maps.", "given": { "name": "NestedXmlMaps", "http": { @@ -2729,7 +3067,6 @@ "locationName": "NestedXmlMapsRequest" } }, - "description": "Tests requests with nested maps.", "params": { "nestedMap": { "foo": { @@ -2748,6 +3085,7 @@ }, { "id": "FlatNestedXmlMapRequest", + "description": "Tests requests with nested flat maps. Since maps can only be\nflattened when they're structure members, only the outer map is flat.", "given": { "name": "NestedXmlMaps", "http": { @@ -2760,7 +3098,6 @@ "locationName": "NestedXmlMapsRequest" } }, - "description": "Tests requests with nested flat maps. Since maps can only be\nflattened when they're structure members, only the outer map is flat.", "params": { "flatNestedMap": { "foo": { @@ -2782,40 +3119,49 @@ { "description": "Test cases for NestedXmlMapWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "NestedXmlMapWithXmlNameRequest": { - "type": "structure", - "members": { - "nestedXmlMapWithXmlNameMap": { - "shape": "NestedXmlMapWithXmlNameMap" - } - } - }, - "NestedXmlMapWithXmlNameMap": { + "NestedXmlMapWithXmlNameInnerMap": { "type": "map", "key": { "shape": "String", - "locationName": "OuterKey" + "locationName": "InnerKey" }, "value": { - "shape": "NestedXmlMapWithXmlNameInnerMap" + "shape": "String", + "locationName": "InnerValue" } }, - "NestedXmlMapWithXmlNameInnerMap": { + "NestedXmlMapWithXmlNameMap": { "type": "map", "key": { "shape": "String", - "locationName": "InnerKey" + "locationName": "OuterKey" }, "value": { - "shape": "String", - "locationName": "InnerValue" + "shape": "NestedXmlMapWithXmlNameInnerMap" + } + }, + "NestedXmlMapWithXmlNameRequest": { + "type": "structure", + "members": { + "nestedXmlMapWithXmlNameMap": { + "shape": "NestedXmlMapWithXmlNameMap" + } } }, "String": { @@ -2825,6 +3171,7 @@ "cases": [ { "id": "NestedXmlMapWithXmlNameSerializes", + "description": "Serializes nested XML Maps in requests that have xmlName on members", "given": { "name": "NestedXmlMapWithXmlName", "http": { @@ -2838,7 +3185,6 @@ }, "documentation": "

Nested Xml Maps with key/values with @xmlName

" }, - "description": "Serializes nested XML Maps in requests that have xmlName on members", "params": { "nestedXmlMapWithXmlNameMap": { "foo": { @@ -2865,16 +3211,26 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "NoInputAndNoOutput", + "description": "No input serializes no payload", "given": { "name": "NoInputAndNoOutput", "http": { @@ -2884,7 +3240,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "No input serializes no payload", "params": {}, "serialized": { "method": "POST", @@ -2897,16 +3252,26 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "NoInputAndOutput", + "description": "No input serializes no payload", "given": { "name": "NoInputAndOutput", "http": { @@ -2916,7 +3281,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "No input serializes no payload", "params": {}, "serialized": { "method": "POST", @@ -2929,11 +3293,20 @@ { "description": "Test cases for NullAndEmptyHeadersClient operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "NullAndEmptyHeadersIO": { @@ -2969,6 +3342,7 @@ "cases": [ { "id": "NullAndEmptyHeaders", + "description": "Do not send null values, but do send empty strings and empty lists over the wire in headers", "given": { "name": "NullAndEmptyHeadersClient", "http": { @@ -2979,9 +3353,9 @@ "input": { "shape": "NullAndEmptyHeadersIO" }, - "documentation": "

Null headers are not sent over the wire, empty headers are serialized to ""

" + "documentation": "

Null headers are not sent over the wire, empty headers are serialized to ""

", + "readonly": true }, - "description": "Do not send null values, but do send empty strings and empty lists over the wire in headers", "params": { "a": null, "b": "", @@ -3005,11 +3379,20 @@ { "description": "Test cases for OmitsNullSerializesEmptyString operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "OmitsNullSerializesEmptyStringInput": { @@ -3034,6 +3417,7 @@ "cases": [ { "id": "RestXmlOmitsNullQuery", + "description": "Omits null query values", "given": { "name": "OmitsNullSerializesEmptyString", "http": { @@ -3044,9 +3428,9 @@ "input": { "shape": "OmitsNullSerializesEmptyStringInput" }, - "documentation": "

Omits null, but serializes empty string value.

" + "documentation": "

Omits null, but serializes empty string value.

", + "readonly": true }, - "description": "Omits null query values", "params": { "nullValue": null }, @@ -3058,6 +3442,7 @@ }, { "id": "RestXmlSerializesEmptyString", + "description": "Serializes empty query strings", "given": { "name": "OmitsNullSerializesEmptyString", "http": { @@ -3068,9 +3453,9 @@ "input": { "shape": "OmitsNullSerializesEmptyStringInput" }, - "documentation": "

Omits null, but serializes empty string value.

" + "documentation": "

Omits null, but serializes empty string value.

", + "readonly": true }, - "description": "Serializes empty query strings", "params": { "emptyString": "" }, @@ -3085,11 +3470,20 @@ { "description": "Test cases for PutWithContentEncoding operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "PutWithContentEncodingInput": { @@ -3112,6 +3506,7 @@ "cases": [ { "id": "SDKAppliedContentEncoding_restXml", + "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "given": { "name": "PutWithContentEncoding", "http": { @@ -3129,7 +3524,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header.", "params": { "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" }, @@ -3143,6 +3537,7 @@ }, { "id": "SDKAppendedGzipAfterProvidedEncoding_restXml", + "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is in the Content-Encoding header before the\nrequest compression encoding from the HTTP binding.\n", "given": { "name": "PutWithContentEncoding", "http": { @@ -3160,7 +3555,6 @@ ] } }, - "description": "Compression algorithm encoding is appended to the Content-Encoding header, and the\nuser-provided content-encoding is in the Content-Encoding header before the\nrequest compression encoding from the HTTP binding.\n", "params": { "encoding": "custom", "data": "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n" @@ -3178,11 +3572,20 @@ { "description": "Test cases for QueryIdempotencyTokenAutoFill operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "QueryIdempotencyTokenAutoFillInput": { @@ -3203,6 +3606,7 @@ "cases": [ { "id": "QueryIdempotencyTokenAutoFill", + "description": "Automatically adds idempotency token when not set", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -3215,7 +3619,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Automatically adds idempotency token when not set", "params": {}, "serialized": { "method": "POST", @@ -3225,6 +3628,7 @@ }, { "id": "QueryIdempotencyTokenAutoFillIsSet", + "description": "Uses the given idempotency token as-is", "given": { "name": "QueryIdempotencyTokenAutoFill", "http": { @@ -3237,7 +3641,6 @@ }, "documentation": "

Automatically adds idempotency tokens.

" }, - "description": "Uses the given idempotency token as-is", "params": { "token": "00000000-0000-4000-8000-000000000000" }, @@ -3252,11 +3655,20 @@ { "description": "Test cases for QueryParamsAsStringListMap operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "QueryParamsAsStringListMapInput": { @@ -3276,6 +3688,12 @@ "String": { "type": "string" }, + "StringList": { + "type": "list", + "member": { + "shape": "String" + } + }, "StringListMap": { "type": "map", "key": { @@ -3284,17 +3702,12 @@ "value": { "shape": "StringList" } - }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } } }, "cases": [ { "id": "RestXmlQueryParamsStringListMap", + "description": "Serialize query params from map of list strings", "given": { "name": "QueryParamsAsStringListMap", "http": { @@ -3306,7 +3719,6 @@ "shape": "QueryParamsAsStringListMapInput" } }, - "description": "Serialize query params from map of list strings", "params": { "qux": "named", "foo": { @@ -3327,11 +3739,20 @@ { "description": "Test cases for QueryPrecedence operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "QueryPrecedenceInput": { @@ -3364,6 +3785,7 @@ "cases": [ { "id": "RestXmlQueryPrecedence", + "description": "Prefer named query parameters when serializing", "given": { "name": "QueryPrecedence", "http": { @@ -3375,7 +3797,6 @@ "shape": "QueryPrecedenceInput" } }, - "description": "Prefer named query parameters when serializing", "params": { "foo": "named", "baz": { @@ -3394,21 +3815,22 @@ { "description": "Test cases for RecursiveShapes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "RecursiveShapesRequest": { - "type": "structure", - "members": { - "nested": { - "shape": "RecursiveShapesInputOutputNested1" - } - } - }, "RecursiveShapesInputOutputNested1": { "type": "structure", "members": { @@ -3420,9 +3842,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveShapesInputOutputNested2": { "type": "structure", "members": { @@ -3433,11 +3852,23 @@ "shape": "RecursiveShapesInputOutputNested1" } } + }, + "RecursiveShapesRequest": { + "type": "structure", + "members": { + "nested": { + "shape": "RecursiveShapesInputOutputNested1" + } + } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveShapes", "http": { @@ -3452,7 +3883,6 @@ "documentation": "

Recursive shapes

", "idempotent": true }, - "description": "Serializes recursive structures", "params": { "nested": { "foo": "Foo1", @@ -3481,13 +3911,42 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarPropertiesRequest": { "type": "structure", "members": { @@ -3528,31 +3987,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "SimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarProperties", "http": { @@ -3566,7 +4006,6 @@ }, "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "foo": "Foo", "stringValue": "string", @@ -3584,13 +4023,14 @@ "uri": "/SimpleScalarProperties", "body": "\n string\n true\n false\n 1\n 2\n 3\n 4\n 5.5\n 6.5\n\n", "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" } } }, { "id": "SimpleScalarPropertiesWithEscapedCharacter", + "description": "Serializes string with escaping", "given": { "name": "SimpleScalarProperties", "http": { @@ -3604,7 +4044,6 @@ }, "idempotent": true }, - "description": "Serializes string with escaping", "params": { "foo": "Foo", "stringValue": "" @@ -3614,13 +4053,14 @@ "uri": "/SimpleScalarProperties", "body": "\n <string>\n\n", "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" } } }, { "id": "SimpleScalarPropertiesWithWhiteSpace", + "description": "Serializes string containing white space", "given": { "name": "SimpleScalarProperties", "http": { @@ -3634,7 +4074,6 @@ }, "idempotent": true }, - "description": "Serializes string containing white space", "params": { "foo": "Foo", "stringValue": " string with white space " @@ -3644,13 +4083,14 @@ "uri": "/SimpleScalarProperties", "body": "\n string with white space \n\n", "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" } } }, { "id": "SimpleScalarPropertiesPureWhiteSpace", + "description": "Serializes string containing exclusively whitespace", "given": { "name": "SimpleScalarProperties", "http": { @@ -3664,7 +4104,6 @@ }, "idempotent": true }, - "description": "Serializes string containing exclusively whitespace", "params": { "foo": "Foo", "stringValue": " " @@ -3674,13 +4113,14 @@ "uri": "/SimpleScalarProperties", "body": "\n \n\n", "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" } } }, { "id": "RestXmlSupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -3694,7 +4134,6 @@ }, "idempotent": true }, - "description": "Supports handling NaN float values.", "params": { "floatValue": "NaN", "doubleValue": "NaN" @@ -3710,6 +4149,7 @@ }, { "id": "RestXmlSupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -3723,7 +4163,6 @@ }, "idempotent": true }, - "description": "Supports handling Infinity float values.", "params": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -3739,6 +4178,7 @@ }, { "id": "RestXmlSupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -3752,7 +4192,6 @@ }, "idempotent": true }, - "description": "Supports handling -Infinity float values.", "params": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -3771,58 +4210,31 @@ { "description": "Test cases for TimestampFormatHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "TimestampFormatHeadersIO": { - "type": "structure", - "members": { - "memberEpochSeconds": { - "shape": "SyntheticTimestamp_epoch_seconds", - "location": "header", - "locationName": "X-memberEpochSeconds" - }, - "memberHttpDate": { - "shape": "SyntheticTimestamp_http_date", - "location": "header", - "locationName": "X-memberHttpDate" - }, - "memberDateTime": { - "shape": "SyntheticTimestamp_date_time", - "location": "header", - "locationName": "X-memberDateTime" - }, - "defaultFormat": { - "shape": "Timestamp", - "location": "header", - "locationName": "X-defaultFormat" - }, - "targetEpochSeconds": { - "shape": "EpochSeconds", - "location": "header", - "locationName": "X-targetEpochSeconds" - }, - "targetHttpDate": { - "shape": "HttpDate", - "location": "header", - "locationName": "X-targetHttpDate" - }, - "targetDateTime": { - "shape": "DateTime", - "location": "header", - "locationName": "X-targetDateTime" - } - } + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" }, - "SyntheticTimestamp_epoch_seconds": { + "EpochSeconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "SyntheticTimestamp_http_date": { + "HttpDate": { "type": "timestamp", "timestampFormat": "rfc822" }, @@ -3830,25 +4242,62 @@ "type": "timestamp", "timestampFormat": "iso8601" }, - "Timestamp": { - "type": "timestamp" - }, - "EpochSeconds": { + "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "HttpDate": { + "SyntheticTimestamp_http_date": { "type": "timestamp", "timestampFormat": "rfc822" }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" + "Timestamp": { + "type": "timestamp" + }, + "TimestampFormatHeadersIO": { + "type": "structure", + "members": { + "memberEpochSeconds": { + "shape": "SyntheticTimestamp_epoch_seconds", + "location": "header", + "locationName": "X-memberEpochSeconds" + }, + "memberHttpDate": { + "shape": "SyntheticTimestamp_http_date", + "location": "header", + "locationName": "X-memberHttpDate" + }, + "memberDateTime": { + "shape": "SyntheticTimestamp_date_time", + "location": "header", + "locationName": "X-memberDateTime" + }, + "defaultFormat": { + "shape": "Timestamp", + "location": "header", + "locationName": "X-defaultFormat" + }, + "targetEpochSeconds": { + "shape": "EpochSeconds", + "location": "header", + "locationName": "X-targetEpochSeconds" + }, + "targetHttpDate": { + "shape": "HttpDate", + "location": "header", + "locationName": "X-targetHttpDate" + }, + "targetDateTime": { + "shape": "DateTime", + "location": "header", + "locationName": "X-targetDateTime" + } + } } }, "cases": [ { "id": "TimestampFormatHeaders", + "description": "Tests how timestamp request headers are serialized", "given": { "name": "TimestampFormatHeaders", "http": { @@ -3861,7 +4310,6 @@ }, "documentation": "

The example tests how timestamp request and response headers are serialized.

" }, - "description": "Tests how timestamp request headers are serialized", "params": { "memberEpochSeconds": 1576540098, "memberHttpDate": 1576540098, @@ -3876,13 +4324,13 @@ "uri": "/TimestampFormatHeaders", "body": "", "headers": { - "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberDateTime": "2019-12-16T23:48:18Z", - "X-memberEpochSeconds": "1576540098", + "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-targetDateTime": "2019-12-16T23:48:18Z", "X-targetEpochSeconds": "1576540098", - "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT" + "X-memberEpochSeconds": "1576540098", + "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT" } } } @@ -3891,13 +4339,25 @@ { "description": "Test cases for XmlAttributes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "XmlAttributesRequest": { "type": "structure", "members": { @@ -3910,14 +4370,12 @@ "xmlAttribute": true } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlAttributes", + "description": "Serializes XML attributes on the synthesized document", "given": { "name": "XmlAttributes", "http": { @@ -3932,7 +4390,6 @@ "documentation": "

This example serializes an XML attributes on synthesized document.

", "idempotent": true }, - "description": "Serializes XML attributes on the synthesized document", "params": { "foo": "hi", "attr": "test" @@ -3948,6 +4405,7 @@ }, { "id": "XmlAttributesWithEscaping", + "description": "Serializes XML attributes with escaped characters on the synthesized document", "given": { "name": "XmlAttributes", "http": { @@ -3962,7 +4420,6 @@ "documentation": "

This example serializes an XML attributes on synthesized document.

", "idempotent": true }, - "description": "Serializes XML attributes with escaped characters on the synthesized document", "params": { "foo": "hi", "attr": "" @@ -3978,16 +4435,112 @@ } ] }, + { + "description": "Test cases for XmlAttributesInMiddle operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", + "protocol": "rest-xml", + "protocols": [ + "rest-xml" + ], + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" + }, + "shapes": { + "String": { + "type": "string" + }, + "XmlAttributesInMiddlePayloadRequest": { + "type": "structure", + "members": { + "foo": { + "shape": "String" + }, + "attr": { + "shape": "String", + "locationName": "test", + "xmlAttribute": true + }, + "baz": { + "shape": "String" + } + } + }, + "XmlAttributesInMiddleRequest": { + "type": "structure", + "members": { + "payload": { + "shape": "XmlAttributesInMiddlePayloadRequest", + "locationName": "payload" + } + }, + "payload": "payload" + } + }, + "cases": [ + { + "id": "XmlAttributesInMiddle", + "description": "Serializes XML attributes on a payload when the xmlAttribute trait targets a member in the middle of the member list", + "given": { + "name": "XmlAttributesInMiddle", + "http": { + "method": "PUT", + "requestUri": "/XmlAttributesInMiddle", + "responseCode": 200 + }, + "input": { + "shape": "XmlAttributesInMiddleRequest" + }, + "documentation": "

This example serializes an XML attribute on a payload when it's defined in the middle of the member list. This tests that implementations correctly write attributes immediately after the element start tag, which is critical for languages like C# where attribute writing must happen before child elements.

", + "idempotent": true + }, + "params": { + "payload": { + "foo": "Foo", + "attr": "attributeValue", + "baz": "Baz" + } + }, + "serialized": { + "method": "PUT", + "uri": "/XmlAttributesInMiddle", + "body": "\n Foo\n Baz\n\n", + "headers": { + "Content-Type": "application/xml" + } + } + } + ] + }, { "description": "Test cases for XmlAttributesOnPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "XmlAttributesOnPayloadRequest": { "type": "structure", "members": { @@ -4010,14 +4563,12 @@ "xmlAttribute": true } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlAttributesOnPayload", + "description": "Serializes XML attributes on the synthesized document", "given": { "name": "XmlAttributesOnPayload", "http": { @@ -4031,7 +4582,6 @@ "documentation": "

This example serializes an XML attributes on a document targeted by httpPayload.

", "idempotent": true }, - "description": "Serializes XML attributes on the synthesized document", "params": { "payload": { "foo": "hi", @@ -4052,13 +4602,25 @@ { "description": "Test cases for XmlBlobs operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlBlobsRequest": { "type": "structure", "members": { @@ -4066,14 +4628,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "XmlBlobs", + "description": "Blobs are base64 encoded", "given": { "name": "XmlBlobs", "http": { @@ -4087,7 +4647,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Blobs are base64 encoded", "params": { "data": "value" }, @@ -4105,112 +4664,82 @@ { "description": "Test cases for XmlEmptyLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlEmptyListsRequest": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - }, - "flattenedStructureList": { - "shape": "StructureList", - "flattened": true - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Integer": { + "type": "integer", + "box": true }, - "TimestampList": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "IntegerEnum" } }, - "FooEnumList": { + "IntegerList": { "type": "list", "member": { - "shape": "FooEnum" + "shape": "Integer" } }, - "IntegerEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" + }, + "ListWithNamespace": { + "type": "list", + "member": { + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -4226,20 +4755,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -4261,38 +4790,78 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlEmptyListsRequest": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + }, + "flattenedStructureList": { + "shape": "StructureList", + "flattened": true + } + } } }, "cases": [ { "id": "XmlEmptyLists", + "description": "Serializes Empty XML lists", "given": { "name": "XmlEmptyLists", "http": { @@ -4306,7 +4875,6 @@ }, "idempotent": true }, - "description": "Serializes Empty XML lists", "params": { "stringList": [], "stringSet": [] @@ -4325,13 +4893,33 @@ { "description": "Test cases for XmlEmptyMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "String": { + "type": "string" + }, "XmlEmptyMapsRequest": { "type": "structure", "members": { @@ -4348,22 +4936,12 @@ "value": { "shape": "GreetingStruct" } - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlEmptyMaps", + "description": "Serializes Empty XML maps", "given": { "name": "XmlEmptyMaps", "http": { @@ -4376,7 +4954,6 @@ "locationName": "XmlEmptyMapsRequest" } }, - "description": "Serializes Empty XML maps", "params": { "myMap": {} }, @@ -4394,13 +4971,25 @@ { "description": "Test cases for XmlEmptyStrings operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "XmlEmptyStringsRequest": { "type": "structure", "members": { @@ -4408,14 +4997,12 @@ "shape": "String" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlEmptyStrings", + "description": "Serializes xml empty strings", "given": { "name": "XmlEmptyStrings", "http": { @@ -4429,7 +5016,6 @@ }, "idempotent": true }, - "description": "Serializes xml empty strings", "params": { "emptyString": "" }, @@ -4447,36 +5033,22 @@ { "description": "Test cases for XmlEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlEnumsRequest": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -4493,12 +5065,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -4508,13 +5074,43 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "String": { "type": "string" + }, + "XmlEnumsRequest": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } } }, "cases": [ { "id": "XmlEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlEnums", "http": { @@ -4529,7 +5125,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -4561,13 +5156,50 @@ { "description": "Test cases for XmlIntEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "String": { + "type": "string" + }, "XmlIntEnumsRequest": { "type": "structure", "members": { @@ -4590,39 +5222,12 @@ "shape": "IntegerEnumMap" } } - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlIntEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlIntEnums", "http": { @@ -4637,7 +5242,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "params": { "intEnum1": 1, "intEnum2": 2, @@ -4669,112 +5273,82 @@ { "description": "Test cases for XmlLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlListsRequest": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - }, - "flattenedStructureList": { - "shape": "StructureList", - "flattened": true - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Boolean" + "shape": "IntegerEnum" } }, - "TimestampList": { + "IntegerList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "Integer" } }, - "FooEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "FooEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" }, - "IntegerEnumList": { + "ListWithNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -4790,20 +5364,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -4825,38 +5399,78 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlListsRequest": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + }, + "flattenedStructureList": { + "shape": "StructureList", + "flattened": true + } + } } }, "cases": [ { "id": "XmlLists", + "description": "Tests for XML list serialization", "given": { "name": "XmlLists", "http": { @@ -4871,7 +5485,6 @@ "documentation": "

This test case serializes XML lists for the following cases for both input and output:

  1. Normal XML lists.
  2. Normal XML sets.
  3. XML lists of lists.
  4. XML lists with @xmlName on its members
  5. Flattened XML lists.
  6. Flattened XML lists with @xmlName.
  7. Flattened XML lists with @xmlNamespace.
  8. Lists of structures.
  9. Flattened XML list of structures
", "idempotent": true }, - "description": "Tests for XML list serialization", "params": { "stringList": [ "foo", @@ -4958,21 +5571,33 @@ { "description": "Test cases for XmlMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlMapsRequest": { + "GreetingStruct": { "type": "structure", "members": { - "myMap": { - "shape": "XmlMapsInputOutputMap" + "hi": { + "shape": "String" } } }, + "String": { + "type": "string" + }, "XmlMapsInputOutputMap": { "type": "map", "key": { @@ -4982,21 +5607,19 @@ "shape": "GreetingStruct" } }, - "GreetingStruct": { + "XmlMapsRequest": { "type": "structure", "members": { - "hi": { - "shape": "String" + "myMap": { + "shape": "XmlMapsInputOutputMap" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlMaps", + "description": "Tests for XML map serialization", "given": { "name": "XmlMaps", "http": { @@ -5010,7 +5633,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Tests for XML map serialization", "params": { "myMap": { "foo": { @@ -5035,21 +5657,33 @@ { "description": "Test cases for XmlMapsXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlMapsXmlNameRequest": { + "GreetingStruct": { "type": "structure", "members": { - "myMap": { - "shape": "XmlMapsXmlNameInputOutputMap" + "hi": { + "shape": "String" } } }, + "String": { + "type": "string" + }, "XmlMapsXmlNameInputOutputMap": { "type": "map", "key": { @@ -5061,21 +5695,19 @@ "locationName": "Setting" } }, - "GreetingStruct": { + "XmlMapsXmlNameRequest": { "type": "structure", "members": { - "hi": { - "shape": "String" + "myMap": { + "shape": "XmlMapsXmlNameInputOutputMap" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlMapsXmlName", + "description": "Serializes XML maps that have xmlName on members", "given": { "name": "XmlMapsXmlName", "http": { @@ -5088,7 +5720,6 @@ "locationName": "XmlMapsXmlNameRequest" } }, - "description": "Serializes XML maps that have xmlName on members", "params": { "myMap": { "foo": { @@ -5113,22 +5744,24 @@ { "description": "Test cases for XmlMapWithXmlNamespace operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlMapWithXmlNamespaceRequest": { - "type": "structure", - "members": { - "myMap": { - "shape": "XmlMapWithXmlNamespaceInputOutputMap", - "locationName": "KVP", - "xmlNamespace": "https://the-member.example.com" - } - } + "String": { + "type": "string" }, "XmlMapWithXmlNamespaceInputOutputMap": { "type": "map", @@ -5143,13 +5776,21 @@ "xmlNamespace": "https://the-value.example.com" } }, - "String": { - "type": "string" + "XmlMapWithXmlNamespaceRequest": { + "type": "structure", + "members": { + "myMap": { + "shape": "XmlMapWithXmlNamespaceInputOutputMap", + "locationName": "KVP", + "xmlNamespace": "https://the-member.example.com" + } + } } }, "cases": [ { "id": "RestXmlXmlMapWithXmlNamespace", + "description": "Serializes XML maps in requests that have xmlNamespace and xmlName on members", "given": { "name": "XmlMapWithXmlNamespace", "http": { @@ -5163,7 +5804,6 @@ }, "documentation": "

Maps with @xmlNamespace and @xmlName

" }, - "description": "Serializes XML maps in requests that have xmlNamespace and xmlName on members", "params": { "myMap": { "a": "A", @@ -5184,21 +5824,24 @@ { "description": "Test cases for XmlNamespaces operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlNamespacesRequest": { - "type": "structure", - "members": { - "nested": { - "shape": "XmlNamespaceNested" - } - }, - "xmlNamespace": "http://foo.com" + "String": { + "type": "string" }, "XmlNamespaceNested": { "type": "structure", @@ -5217,20 +5860,27 @@ }, "xmlNamespace": "http://foo.com" }, - "String": { - "type": "string" - }, "XmlNamespacedList": { "type": "list", "member": { "shape": "String", "xmlNamespace": "http://bux.com" } + }, + "XmlNamespacesRequest": { + "type": "structure", + "members": { + "nested": { + "shape": "XmlNamespaceNested" + } + }, + "xmlNamespace": "http://foo.com" } }, "cases": [ { "id": "XmlNamespaces", + "description": "Serializes XML namespaces", "given": { "name": "XmlNamespaces", "http": { @@ -5243,7 +5893,6 @@ "locationName": "XmlNamespacesRequest" } }, - "description": "Serializes XML namespaces", "params": { "nested": { "foo": "Foo", @@ -5267,13 +5916,49 @@ { "description": "Test cases for XmlTimestamps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "XmlTimestampsRequest": { "type": "structure", "members": { @@ -5299,38 +5984,12 @@ "shape": "HttpDate" } } - }, - "Timestamp": { - "type": "timestamp" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" } }, "cases": [ { "id": "XmlTimestamps", + "description": "Tests how normal timestamps are serialized", "given": { "name": "XmlTimestamps", "http": { @@ -5344,7 +6003,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Tests how normal timestamps are serialized", "params": { "normal": 1398796238 }, @@ -5359,6 +6017,7 @@ }, { "id": "XmlTimestampsWithDateTimeFormat", + "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -5372,7 +6031,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "params": { "dateTime": 1398796238 }, @@ -5387,6 +6045,7 @@ }, { "id": "XmlTimestampsWithDateTimeOnTargetFormat", + "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -5400,7 +6059,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "params": { "dateTimeOnTarget": 1398796238 }, @@ -5415,6 +6073,7 @@ }, { "id": "XmlTimestampsWithEpochSecondsFormat", + "description": "Ensures that the timestampFormat of epoch-seconds works", "given": { "name": "XmlTimestamps", "http": { @@ -5428,7 +6087,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds works", "params": { "epochSeconds": 1398796238 }, @@ -5443,6 +6101,7 @@ }, { "id": "XmlTimestampsWithEpochSecondsOnTargetFormat", + "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -5456,7 +6115,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "params": { "epochSecondsOnTarget": 1398796238 }, @@ -5471,6 +6129,7 @@ }, { "id": "XmlTimestampsWithHttpDateFormat", + "description": "Ensures that the timestampFormat of http-date works", "given": { "name": "XmlTimestamps", "http": { @@ -5484,7 +6143,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date works", "params": { "httpDate": 1398796238 }, @@ -5499,6 +6157,7 @@ }, { "id": "XmlTimestampsWithHttpDateOnTargetFormat", + "description": "Ensures that the timestampFormat of http-date on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -5512,7 +6171,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date on the target shape works", "params": { "httpDateOnTarget": 1398796238 }, @@ -5530,22 +6188,46 @@ { "description": "Test cases for XmlUnions operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlUnionsRequest": { - "type": "structure", - "members": { - "unionValue": { - "shape": "XmlUnionShape" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "XmlUnionShape": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, + "String": { + "type": "string" + }, + "XmlNestedUnionStruct": { "type": "structure", "members": { "stringValue": { @@ -5571,40 +6253,10 @@ }, "doubleValue": { "shape": "Double" - }, - "unionValue": { - "shape": "XmlUnionShape" - }, - "structValue": { - "shape": "XmlNestedUnionStruct" } - }, - "union": true - }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true + } }, - "XmlNestedUnionStruct": { + "XmlUnionShape": { "type": "structure", "members": { "stringValue": { @@ -5630,6 +6282,21 @@ }, "doubleValue": { "shape": "Double" + }, + "unionValue": { + "shape": "XmlUnionShape" + }, + "structValue": { + "shape": "XmlNestedUnionStruct" + } + }, + "union": true + }, + "XmlUnionsRequest": { + "type": "structure", + "members": { + "unionValue": { + "shape": "XmlUnionShape" } } } @@ -5637,6 +6304,7 @@ "cases": [ { "id": "XmlUnionsWithStructMember", + "description": "Serializes union struct member", "given": { "name": "XmlUnions", "http": { @@ -5650,7 +6318,6 @@ }, "idempotent": true }, - "description": "Serializes union struct member", "params": { "unionValue": { "structValue": { @@ -5676,6 +6343,7 @@ }, { "id": "XmlUnionsWithStringMember", + "description": "serialize union string member", "given": { "name": "XmlUnions", "http": { @@ -5689,7 +6357,6 @@ }, "idempotent": true }, - "description": "serialize union string member", "params": { "unionValue": { "stringValue": "some string" @@ -5706,6 +6373,7 @@ }, { "id": "XmlUnionsWithBooleanMember", + "description": "Serializes union boolean member", "given": { "name": "XmlUnions", "http": { @@ -5719,7 +6387,6 @@ }, "idempotent": true }, - "description": "Serializes union boolean member", "params": { "unionValue": { "booleanValue": true @@ -5736,6 +6403,7 @@ }, { "id": "XmlUnionsWithUnionMember", + "description": "Serializes union member", "given": { "name": "XmlUnions", "http": { @@ -5749,7 +6417,6 @@ }, "idempotent": true }, - "description": "Serializes union member", "params": { "unionValue": { "unionValue": { diff --git a/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-non-query-compatible.json b/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-non-query-compatible.json index 2365870ffd42..1f278fc05801 100644 --- a/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-non-query-compatible.json +++ b/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-non-query-compatible.json @@ -22,6 +22,7 @@ "cases": [ { "id": "NonQueryCompatibleRpcV2CborForbidsQueryModeHeader", + "description": "The query mode header MUST NOT be set on non-query-compatible services.", "given": { "name": "NonQueryCompatibleOperation", "http": { @@ -30,7 +31,6 @@ }, "idempotent": true }, - "description": "The query mode header MUST NOT be set on non-query-compatible services.", "params": {}, "serialized": { "method": "POST", diff --git a/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-query-compatible.json b/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-query-compatible.json index 717ec72acd06..25f5bc3fa597 100644 --- a/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-query-compatible.json +++ b/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor-query-compatible.json @@ -23,6 +23,7 @@ "cases": [ { "id": "QueryCompatibleRpcV2CborSendsQueryModeHeader", + "description": "Clients for query-compatible services MUST send the x-amzn-query-mode header.", "given": { "name": "QueryCompatibleOperation", "http": { @@ -31,15 +32,14 @@ }, "idempotent": true }, - "description": "Clients for query-compatible services MUST send the x-amzn-query-mode header.", "params": {}, "serialized": { "method": "POST", "uri": "/service/QueryCompatibleRpcV2Protocol/operation/QueryCompatibleOperation", "body": "", "headers": { - "Accept": "application/cbor", "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", "x-amzn-query-mode": "true" }, "forbidHeaders": [ diff --git a/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor.json b/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor.json index f790704fd343..151c34c39183 100644 --- a/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor.json +++ b/tests/unit/botocore/protocols/input/smithy-rpc-v2-cbor.json @@ -2,12 +2,21 @@ { "description": "Test cases for EmptyInputOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "EmptyStructure": { @@ -18,6 +27,7 @@ "cases": [ { "id": "empty_input", + "description": "When Input structure is empty we write CBOR equivalent of {}", "given": { "name": "EmptyInputOutput", "http": { @@ -28,16 +38,15 @@ "shape": "EmptyStructure" } }, - "description": "When Input structure is empty we write CBOR equivalent of {}", "params": {}, "serialized": { "method": "POST", "uri": "/service/RpcV2Protocol/operation/EmptyInputOutput", "body": "v/8=", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "forbidHeaders": [ "X-Amz-Target" @@ -52,17 +61,27 @@ { "description": "Test cases for NoInputOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": {}, "cases": [ { "id": "no_input", + "description": "Body is empty and no Content-Type header if no input", "given": { "name": "NoInputOutput", "http": { @@ -70,7 +89,6 @@ "requestUri": "/" } }, - "description": "Body is empty and no Content-Type header if no input", "params": {}, "serialized": { "method": "POST", @@ -91,12 +109,21 @@ { "description": "Test cases for OptionalInputOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "SimpleStructure": { @@ -114,6 +141,7 @@ "cases": [ { "id": "optional_input", + "description": "When input is empty we write CBOR equivalent of {}", "given": { "name": "OptionalInputOutput", "http": { @@ -124,16 +152,15 @@ "shape": "SimpleStructure" } }, - "description": "When input is empty we write CBOR equivalent of {}", "params": {}, "serialized": { "method": "POST", "uri": "/service/RpcV2Protocol/operation/OptionalInputOutput", "body": "v/8=", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "forbidHeaders": [ "X-Amz-Target" @@ -145,12 +172,21 @@ { "description": "Test cases for RecursiveShapes operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "RecursiveShapesInputOutput": { @@ -172,9 +208,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveShapesInputOutputNested2": { "type": "structure", "members": { @@ -185,11 +218,15 @@ "shape": "RecursiveShapesInputOutputNested1" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RpcV2CborRecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveShapes", "http": { @@ -200,7 +237,6 @@ "shape": "RecursiveShapesInputOutput" } }, - "description": "Serializes recursive structures", "params": { "nested": { "foo": "Foo1", @@ -220,9 +256,9 @@ "uri": "/service/RpcV2Protocol/operation/RecursiveShapes", "body": "v2ZuZXN0ZWS/Y2Zvb2RGb28xZm5lc3RlZL9jYmFyZEJhcjFvcmVjdXJzaXZlTWVtYmVyv2Nmb29kRm9vMmZuZXN0ZWS/Y2JhcmRCYXIy//////8=", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -234,41 +270,34 @@ { "description": "Test cases for RpcV2CborDenseMaps operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { - "RpcV2CborDenseMapsInputOutput": { - "type": "structure", - "members": { - "denseStructMap": { - "shape": "DenseStructMap" - }, - "denseNumberMap": { - "shape": "DenseNumberMap" - }, - "denseBooleanMap": { - "shape": "DenseBooleanMap" - }, - "denseStringMap": { - "shape": "DenseStringMap" - }, - "denseSetMap": { - "shape": "DenseSetMap" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "DenseStructMap": { + "DenseBooleanMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "GreetingStruct" + "shape": "Boolean" } }, "DenseNumberMap": { @@ -280,13 +309,13 @@ "shape": "Integer" } }, - "DenseBooleanMap": { + "DenseSetMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "Boolean" + "shape": "StringSet" } }, "DenseStringMap": { @@ -298,44 +327,61 @@ "shape": "String" } }, - "DenseSetMap": { + "DenseStructMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "StringSet" + "shape": "GreetingStruct" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } } }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, "Integer": { "type": "integer", "box": true }, - "GreetingStruct": { + "RpcV2CborDenseMapsInputOutput": { "type": "structure", "members": { - "hi": { - "shape": "String" + "denseStructMap": { + "shape": "DenseStructMap" + }, + "denseNumberMap": { + "shape": "DenseNumberMap" + }, + "denseBooleanMap": { + "shape": "DenseBooleanMap" + }, + "denseStringMap": { + "shape": "DenseStringMap" + }, + "denseSetMap": { + "shape": "DenseSetMap" } } + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } } }, "cases": [ { "id": "RpcV2CborMaps", + "description": "Serializes maps", "given": { "name": "RpcV2CborDenseMaps", "http": { @@ -347,7 +393,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Serializes maps", "params": { "denseStructMap": { "foo": { @@ -363,9 +408,9 @@ "uri": "/service/RpcV2Protocol/operation/RpcV2CborDenseMaps", "body": "oW5kZW5zZVN0cnVjdE1hcKJjZm9voWJoaWV0aGVyZWNiYXqhYmhpY2J5ZQ==", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -374,6 +419,7 @@ }, { "id": "RpcV2CborSerializesZeroValuesInMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "given": { "name": "RpcV2CborDenseMaps", "http": { @@ -385,7 +431,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "params": { "denseNumberMap": { "x": 0 @@ -399,9 +444,9 @@ "uri": "/service/RpcV2Protocol/operation/RpcV2CborDenseMaps", "body": "om5kZW5zZU51bWJlck1hcKFheABvZGVuc2VCb29sZWFuTWFwoWF49A==", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -410,6 +455,7 @@ }, { "id": "RpcV2CborSerializesDenseSetMap", + "description": "A request that contains a dense map of sets.", "given": { "name": "RpcV2CborDenseMaps", "http": { @@ -421,7 +467,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "A request that contains a dense map of sets.", "params": { "denseSetMap": { "x": [], @@ -436,9 +481,9 @@ "uri": "/service/RpcV2Protocol/operation/RpcV2CborDenseMaps", "body": "oWtkZW5zZVNldE1hcKJheIBheYJhYWFi", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -450,14 +495,85 @@ { "description": "Test cases for RpcV2CborLists operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { + "Blob": { + "type": "blob" + }, + "BlobList": { + "type": "list", + "member": { + "shape": "Blob" + } + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, + "NestedStringList": { + "type": "list", + "member": { + "shape": "StringList" + }, + "documentation": "

A list of lists of strings.

" + }, "RpcV2CborListInputOutput": { "type": "structure", "members": { @@ -493,6 +609,9 @@ } } }, + "String": { + "type": "string" + }, "StringList": { "type": "list", "member": { @@ -505,58 +624,12 @@ "shape": "String" } }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } - }, - "TimestampList": { - "type": "list", - "member": { - "shape": "Timestamp" - } - }, - "FooEnumList": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "NestedStringList": { - "type": "list", - "member": { - "shape": "StringList" - }, - "documentation": "

A list of lists of strings.

" - }, "StructureList": { "type": "list", "member": { "shape": "StructureListMember" } }, - "BlobList": { - "type": "list", - "member": { - "shape": "Blob" - } - }, - "Blob": { - "type": "blob" - }, "StructureListMember": { "type": "structure", "members": { @@ -568,38 +641,20 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } } }, "cases": [ { "id": "RpcV2CborLists", + "description": "Serializes RpcV2 Cbor lists", "given": { "name": "RpcV2CborLists", "http": { @@ -612,7 +667,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes RpcV2 Cbor lists", "params": { "stringList": [ "foo", @@ -672,9 +726,9 @@ "uri": "/service/RpcV2Protocol/operation/RpcV2CborLists", "body": "v2pzdHJpbmdMaXN0gmNmb29jYmFyaXN0cmluZ1NldIJjZm9vY2JhcmtpbnRlZ2VyTGlzdIIBAmtib29sZWFuTGlzdIL19G10aW1lc3RhbXBMaXN0gsH7QdTX+/OAAADB+0HU1/vzgAAAaGVudW1MaXN0gmNGb29hMGtpbnRFbnVtTGlzdIIBAnBuZXN0ZWRTdHJpbmdMaXN0goJjZm9vY2JhcoJjYmF6Y3F1eG1zdHJ1Y3R1cmVMaXN0gqJhYWExYWJhMqJhYWEzYWJhNGhibG9iTGlzdIJDZm9vQ2Jhcv8=", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -683,6 +737,7 @@ }, { "id": "RpcV2CborListsEmpty", + "description": "Serializes empty JSON lists", "given": { "name": "RpcV2CborLists", "http": { @@ -695,7 +750,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes empty JSON lists", "params": { "stringList": [] }, @@ -704,9 +758,9 @@ "uri": "/service/RpcV2Protocol/operation/RpcV2CborLists", "body": "v2pzdHJpbmdMaXN0n///", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -715,6 +769,7 @@ }, { "id": "RpcV2CborListsEmptyUsingDefiniteLength", + "description": "Serializes empty JSON definite length lists", "given": { "name": "RpcV2CborLists", "http": { @@ -727,7 +782,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes empty JSON definite length lists", "params": { "stringList": [] }, @@ -736,9 +790,9 @@ "uri": "/service/RpcV2Protocol/operation/RpcV2CborLists", "body": "oWpzdHJpbmdMaXN0gA==", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -748,16 +802,353 @@ ] }, { - "description": "Test cases for SimpleScalarProperties operation", + "description": "Test cases for RpcV2CborSparseMaps operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" + }, + "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "RpcV2CborSparseMapsInputOutput": { + "type": "structure", + "members": { + "sparseStructMap": { + "shape": "SparseStructMap" + }, + "sparseNumberMap": { + "shape": "SparseNumberMap" + }, + "sparseBooleanMap": { + "shape": "SparseBooleanMap" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + }, + "sparseSetMap": { + "shape": "SparseSetMap" + } + } + }, + "SparseBooleanMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Boolean" + }, + "sparse": true + }, + "SparseNumberMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Integer" + }, + "sparse": true + }, + "SparseSetMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "StringSet" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "SparseStructMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "GreetingStruct" + }, + "sparse": true + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "RpcV2CborSparseMaps", + "description": "Serializes sparse maps", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "params": { + "sparseStructMap": { + "foo": { + "hi": "there" + }, + "baz": { + "hi": "bye" + } + } + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", + "body": "v29zcGFyc2VTdHJ1Y3RNYXC/Y2Zvb79iaGlldGhlcmX/Y2Jher9iaGljYnll////", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + }, + { + "id": "RpcV2CborSerializesNullMapValues", + "description": "Serializes null map values in sparse maps", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "params": { + "sparseBooleanMap": { + "x": null + }, + "sparseNumberMap": { + "x": null + }, + "sparseStringMap": { + "x": null + }, + "sparseStructMap": { + "x": null + } + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", + "body": "v3BzcGFyc2VCb29sZWFuTWFwv2F49v9vc3BhcnNlTnVtYmVyTWFwv2F49v9vc3BhcnNlU3RyaW5nTWFwv2F49v9vc3BhcnNlU3RydWN0TWFwv2F49v//", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + }, + { + "id": "RpcV2CborSerializesSparseSetMap", + "description": "A request that contains a sparse map of sets", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "params": { + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ] + } + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", + "body": "v2xzcGFyc2VTZXRNYXC/YXif/2F5n2FhYWL///8=", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + }, + { + "id": "RpcV2CborSerializesSparseSetMapAndRetainsNull", + "description": "A request that contains a sparse map of sets.", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "params": { + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ], + "z": null + } + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", + "body": "v2xzcGFyc2VTZXRNYXC/YXif/2F5n2FhYWL/YXr2//8=", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + }, + { + "id": "RpcV2CborSerializesZeroValuesInSparseMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "params": { + "sparseNumberMap": { + "x": 0 + }, + "sparseBooleanMap": { + "x": false + } + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", + "body": "v29zcGFyc2VOdW1iZXJNYXC/YXgA/3BzcGFyc2VCb29sZWFuTWFwv2F49P//", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + } + ] + }, + { + "description": "Test cases for SimpleScalarProperties operation", + "metadata": { "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", + "protocol": "smithy-rpc-v2-cbor", + "protocols": [ + "smithy-rpc-v2-cbor" + ], + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarStructure": { "type": "structure", "members": { @@ -793,36 +1184,14 @@ } } }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, "String": { "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RpcV2CborSimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarProperties", "http": { @@ -833,7 +1202,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Serializes simple scalar properties", "params": { "byteValue": 5, "doubleValue": 1.889, @@ -851,9 +1219,9 @@ "uri": "/service/RpcV2Protocol/operation/SimpleScalarProperties", "body": "v2lieXRlVmFsdWUFa2RvdWJsZVZhbHVl+z/+OVgQYk3TcWZhbHNlQm9vbGVhblZhbHVl9GpmbG9hdFZhbHVl+kD0AABsaW50ZWdlclZhbHVlGQEAaWxvbmdWYWx1ZRkmkWpzaG9ydFZhbHVlGSaqa3N0cmluZ1ZhbHVlZnNpbXBsZXB0cnVlQm9vbGVhblZhbHVl9WlibG9iVmFsdWVDZm9v/w==", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -862,6 +1230,7 @@ }, { "id": "RpcV2CborClientDoesntSerializeNullStructureValues", + "description": "RpcV2 Cbor should not serialize null structure values", "given": { "name": "SimpleScalarProperties", "http": { @@ -872,7 +1241,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "RpcV2 Cbor should not serialize null structure values", "params": { "stringValue": null }, @@ -881,9 +1249,9 @@ "uri": "/service/RpcV2Protocol/operation/SimpleScalarProperties", "body": "v/8=", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -892,6 +1260,7 @@ }, { "id": "RpcV2CborSupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -902,7 +1271,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports handling NaN float values.", "params": { "doubleValue": "NaN", "floatValue": "NaN" @@ -912,9 +1280,9 @@ "uri": "/service/RpcV2Protocol/operation/SimpleScalarProperties", "body": "v2tkb3VibGVWYWx1Zft/+AAAAAAAAGpmbG9hdFZhbHVl+n/AAAD/", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -923,6 +1291,7 @@ }, { "id": "RpcV2CborSupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -933,7 +1302,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports handling Infinity float values.", "params": { "doubleValue": "Infinity", "floatValue": "Infinity" @@ -943,9 +1311,9 @@ "uri": "/service/RpcV2Protocol/operation/SimpleScalarProperties", "body": "v2tkb3VibGVWYWx1Zft/8AAAAAAAAGpmbG9hdFZhbHVl+n+AAAD/", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" @@ -954,6 +1322,7 @@ }, { "id": "RpcV2CborSupportsNegativeInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -964,7 +1333,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports handling Infinity float values.", "params": { "doubleValue": "-Infinity", "floatValue": "-Infinity" @@ -974,9 +1342,128 @@ "uri": "/service/RpcV2Protocol/operation/SimpleScalarProperties", "body": "v2tkb3VibGVWYWx1Zfv/8AAAAAAAAGpmbG9hdFZhbHVl+v+AAAD/", "headers": { + "smithy-protocol": "rpc-v2-cbor", "Accept": "application/cbor", - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + } + ] + }, + { + "description": "Test cases for SparseNullsOperation operation", + "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", + "protocol": "smithy-rpc-v2-cbor", + "protocols": [ + "smithy-rpc-v2-cbor" + ], + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" + }, + "shapes": { + "SparseNullsOperationInputOutput": { + "type": "structure", + "members": { + "sparseStringList": { + "shape": "SparseStringList" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + } + } + }, + "SparseStringList": { + "type": "list", + "member": { + "shape": "String" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "RpcV2CborSparseMapsSerializeNullValues", + "description": "Serializes null values in maps", + "given": { + "name": "SparseNullsOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "SparseNullsOperationInputOutput" + } + }, + "params": { + "sparseStringMap": { + "foo": null + } + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/SparseNullsOperation", + "body": "v29zcGFyc2VTdHJpbmdNYXC/Y2Zvb/b//w==", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" + }, + "requireHeaders": [ + "Content-Length" + ] + } + }, + { + "id": "RpcV2CborSparseListsSerializeNull", + "description": "Serializes null values in lists", + "given": { + "name": "SparseNullsOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "input": { + "shape": "SparseNullsOperationInputOutput" + } + }, + "params": { + "sparseStringList": [ + null + ] + }, + "serialized": { + "method": "POST", + "uri": "/service/RpcV2Protocol/operation/SparseNullsOperation", + "body": "v3BzcGFyc2VTdHJpbmdMaXN0n/b//w==", + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Accept": "application/cbor", + "Content-Type": "application/cbor" }, "requireHeaders": [ "Content-Length" diff --git a/tests/unit/botocore/protocols/output/ec2.json b/tests/unit/botocore/protocols/output/ec2.json index 0a52651d0815..e33500a23a48 100644 --- a/tests/unit/botocore/protocols/output/ec2.json +++ b/tests/unit/botocore/protocols/output/ec2.json @@ -2,13 +2,26 @@ { "description": "Test cases for DatetimeOffsets operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "DatetimeOffsetsOutput": { "type": "structure", "members": { @@ -16,15 +29,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "Ec2QueryDateTimeWithNegativeOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -35,7 +45,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -49,6 +58,7 @@ }, { "id": "Ec2QueryDateTimeWithPositiveOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -59,7 +69,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -76,11 +85,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "EmptyInputAndEmptyOutputOutput": { @@ -91,6 +109,7 @@ "cases": [ { "id": "Ec2QueryEmptyInputAndEmptyOutput", + "description": "Empty output", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -102,7 +121,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response members.

While this should be rare, code generators must support this.

" }, - "description": "Empty output", "result": {}, "response": { "status_code": 200, @@ -117,13 +135,26 @@ { "description": "Test cases for FractionalSeconds operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "FractionalSecondsOutput": { "type": "structure", "members": { @@ -131,15 +162,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "Ec2QueryDateTimeWithFractionalSeconds", + "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "given": { "name": "FractionalSeconds", "http": { @@ -150,7 +178,6 @@ "shape": "FractionalSecondsOutput" } }, - "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "result": { "datetime": 9.46845296123E8 }, @@ -167,11 +194,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "GreetingWithErrorsOutput": { @@ -189,6 +225,7 @@ "cases": [ { "id": "Ec2GreetingWithErrors", + "description": "Ensures that operations with errors successfully know how to deserialize the successful response", "given": { "name": "GreetingWithErrors", "http": { @@ -200,7 +237,6 @@ }, "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
" }, - "description": "Ensures that operations with errors successfully know how to deserialize the successful response", "result": { "greeting": "Hello" }, @@ -217,11 +253,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "InvalidGreeting": { @@ -241,6 +286,7 @@ "cases": [ { "id": "Ec2InvalidGreetingError", + "description": "Parses simple XML errors", "given": { "name": "GreetingWithErrors", "http": { @@ -254,7 +300,6 @@ } ] }, - "description": "Parses simple XML errors", "errorCode": "InvalidGreeting", "errorMessage": "Hi", "error": { @@ -273,11 +318,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "ComplexError": { @@ -293,9 +347,6 @@ "documentation": "

This error is thrown when a request is invalid.

", "exception": true }, - "String": { - "type": "string" - }, "ComplexNestedErrorData": { "type": "structure", "members": { @@ -303,6 +354,9 @@ "shape": "String" } } + }, + "String": { + "type": "string" } }, "cases": [ @@ -341,11 +395,20 @@ { "description": "Test cases for IgnoresWrappingXmlName operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "IgnoresWrappingXmlNameOutput": { @@ -364,6 +427,7 @@ "cases": [ { "id": "Ec2IgnoresWrappingXmlName", + "description": "The xmlName trait on the output structure is ignored in the ec2 protocol", "given": { "name": "IgnoresWrappingXmlName", "http": { @@ -375,7 +439,6 @@ }, "documentation": "

The xmlName trait on the output structure is ignored in AWS Query.

The wrapping element is always operation name + "Response".

" }, - "description": "The xmlName trait on the output structure is ignored in the ec2 protocol", "result": { "foo": "bar" }, @@ -392,11 +455,20 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "NoInputAndOutputOutput": { @@ -407,6 +479,7 @@ "cases": [ { "id": "Ec2QueryNoInputAndOutput", + "description": "Empty output", "given": { "name": "NoInputAndOutput", "http": { @@ -418,7 +491,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request payload or response members.

While this should be rare, code generators must support this.

" }, - "description": "Empty output", "result": {}, "response": { "status_code": 200, @@ -433,11 +505,20 @@ { "description": "Test cases for RecursiveXmlShapes operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { "RecursiveXmlShapesOutput": { @@ -459,9 +540,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveXmlShapesOutputNested2": { "type": "structure", "members": { @@ -472,11 +550,15 @@ "shape": "RecursiveXmlShapesOutputNested1" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "Ec2RecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveXmlShapes", "http": { @@ -488,7 +570,6 @@ }, "documentation": "

Recursive shapes

" }, - "description": "Serializes recursive structures", "result": { "nested": { "foo": "Foo1", @@ -516,13 +597,42 @@ { "description": "Test cases for SimpleScalarXmlProperties operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarXmlPropertiesOutput": { "type": "structure", "members": { @@ -561,31 +671,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "Ec2SimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -596,7 +687,6 @@ "shape": "SimpleScalarXmlPropertiesOutput" } }, - "description": "Serializes simple scalar properties", "result": { "stringValue": "string", "emptyStringValue": "", @@ -619,6 +709,7 @@ }, { "id": "Ec2QuerySupportsNaNFloatOutputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -629,7 +720,6 @@ "shape": "SimpleScalarXmlPropertiesOutput" } }, - "description": "Supports handling NaN float values.", "result": { "floatValue": "NaN", "doubleValue": "NaN" @@ -644,6 +734,7 @@ }, { "id": "Ec2QuerySupportsInfinityFloatOutputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -654,7 +745,6 @@ "shape": "SimpleScalarXmlPropertiesOutput" } }, - "description": "Supports handling Infinity float values.", "result": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -669,6 +759,7 @@ }, { "id": "Ec2QuerySupportsNegativeInfinityFloatOutputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -679,7 +770,6 @@ "shape": "SimpleScalarXmlPropertiesOutput" } }, - "description": "Supports handling -Infinity float values.", "result": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -697,13 +787,25 @@ { "description": "Test cases for XmlBlobs operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlBlobsOutput": { "type": "structure", "members": { @@ -711,14 +813,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "Ec2XmlBlobs", + "description": "Blobs are base64 encoded", "given": { "name": "XmlBlobs", "http": { @@ -730,7 +830,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Blobs are base64 encoded", "result": { "data": "value" }, @@ -747,13 +846,25 @@ { "description": "Test cases for XmlEmptyBlobs operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlBlobsOutput": { "type": "structure", "members": { @@ -761,14 +872,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "Ec2XmlEmptyBlobs", + "description": "Empty blobs are deserialized as empty string", "given": { "name": "XmlEmptyBlobs", "http": { @@ -779,7 +888,6 @@ "shape": "XmlBlobsOutput" } }, - "description": "Empty blobs are deserialized as empty string", "result": { "data": "" }, @@ -793,6 +901,7 @@ }, { "id": "Ec2XmlEmptySelfClosedBlobs", + "description": "Empty self closed blobs are deserialized as empty string", "given": { "name": "XmlEmptyBlobs", "http": { @@ -803,7 +912,6 @@ "shape": "XmlBlobsOutput" } }, - "description": "Empty self closed blobs are deserialized as empty string", "result": { "data": "" }, @@ -820,108 +928,82 @@ { "description": "Test cases for XmlEmptyLists operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { - "XmlListsOutput": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Boolean" + "shape": "IntegerEnum" } }, - "TimestampList": { + "IntegerList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "Integer" } }, - "FooEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "FooEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" }, - "IntegerEnumList": { + "ListWithNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -937,20 +1019,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -972,38 +1054,74 @@ } } }, - "String": { - "type": "string" + "Timestamp": { + "type": "timestamp" }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "Timestamp": { - "type": "timestamp" - }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlListsOutput": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + } + } } }, "cases": [ { "id": "Ec2XmlEmptyLists", + "description": "Deserializes empty XML lists", "given": { "name": "XmlEmptyLists", "http": { @@ -1014,7 +1132,6 @@ "shape": "XmlListsOutput" } }, - "description": "Deserializes empty XML lists", "result": { "stringList": [], "stringSet": [] @@ -1032,36 +1149,22 @@ { "description": "Test cases for XmlEnums operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { - "XmlEnumsOutput": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -1078,12 +1181,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -1093,13 +1190,43 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "String": { "type": "string" + }, + "XmlEnumsOutput": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } } }, "cases": [ { "id": "Ec2XmlEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlEnums", "http": { @@ -1111,7 +1238,6 @@ }, "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

" }, - "description": "Serializes simple scalar properties", "result": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -1142,13 +1268,50 @@ { "description": "Test cases for XmlIntEnums operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "String": { + "type": "string" + }, "XmlIntEnumsOutput": { "type": "structure", "members": { @@ -1171,39 +1334,12 @@ "shape": "IntegerEnumMap" } } - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "Ec2XmlIntEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlIntEnums", "http": { @@ -1215,7 +1351,6 @@ }, "documentation": "

This example serializes intEnums as top level properties, in lists, sets, and maps.

" }, - "description": "Serializes simple scalar properties", "result": { "intEnum1": 1, "intEnum2": 2, @@ -1246,108 +1381,82 @@ { "description": "Test cases for XmlLists operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { - "XmlListsOutput": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Boolean" + "shape": "IntegerEnum" } }, - "TimestampList": { + "IntegerList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "Integer" } }, - "FooEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "FooEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" }, - "IntegerEnumList": { + "ListWithNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -1363,20 +1472,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -1398,38 +1507,74 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlListsOutput": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + } + } } }, "cases": [ { "id": "Ec2XmlLists", + "description": "Tests for XML list serialization", "given": { "name": "XmlLists", "http": { @@ -1441,7 +1586,6 @@ }, "documentation": "

This test case serializes XML lists for the following cases for both input and output:

  1. Normal XML lists.
  2. Normal XML sets.
  3. XML lists of lists.
  4. XML lists with @xmlName on its members
  5. Flattened XML lists.
  6. Flattened XML lists with @xmlName.
  7. Flattened XML lists with @xmlNamespace.
  8. Lists of structures.
" }, - "description": "Tests for XML list serialization", "result": { "stringList": [ "foo", @@ -1525,21 +1669,24 @@ { "description": "Test cases for XmlNamespaces operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { - "XmlNamespacesOutput": { - "type": "structure", - "members": { - "nested": { - "shape": "XmlNamespaceNested" - } - }, - "xmlNamespace": "http://foo.com" + "String": { + "type": "string" }, "XmlNamespaceNested": { "type": "structure", @@ -1558,20 +1705,27 @@ }, "xmlNamespace": "http://foo.com" }, - "String": { - "type": "string" - }, "XmlNamespacedList": { "type": "list", "member": { "shape": "String", "xmlNamespace": "http://bux.com" } + }, + "XmlNamespacesOutput": { + "type": "structure", + "members": { + "nested": { + "shape": "XmlNamespaceNested" + } + }, + "xmlNamespace": "http://foo.com" } }, "cases": [ { "id": "Ec2XmlNamespaces", + "description": "Serializes XML namespaces", "given": { "name": "XmlNamespaces", "http": { @@ -1582,7 +1736,6 @@ "shape": "XmlNamespacesOutput" } }, - "description": "Serializes XML namespaces", "result": { "nested": { "foo": "Foo", @@ -1605,13 +1758,49 @@ { "description": "Test cases for XmlTimestamps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsec2", "protocol": "ec2", "protocols": [ "ec2" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsEc2", + "serviceId": "EC2 Protocol", + "signatureVersion": "v4", + "signingName": "AwsEc2", + "uid": "ec2-protocol-2020-01-08" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "XmlTimestampsOutput": { "type": "structure", "members": { @@ -1637,38 +1826,12 @@ "shape": "HttpDate" } } - }, - "Timestamp": { - "type": "timestamp" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" } }, "cases": [ { "id": "Ec2XmlTimestamps", + "description": "Tests how normal timestamps are serialized", "given": { "name": "XmlTimestamps", "http": { @@ -1680,7 +1843,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Tests how normal timestamps are serialized", "result": { "normal": 1398796238 }, @@ -1694,6 +1856,7 @@ }, { "id": "Ec2XmlTimestampsWithDateTimeFormat", + "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -1705,7 +1868,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "result": { "dateTime": 1398796238 }, @@ -1719,6 +1881,7 @@ }, { "id": "Ec2XmlTimestampsWithDateTimeOnTargetFormat", + "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -1730,7 +1893,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "result": { "dateTimeOnTarget": 1398796238 }, @@ -1744,6 +1906,7 @@ }, { "id": "Ec2XmlTimestampsWithEpochSecondsFormat", + "description": "Ensures that the timestampFormat of epoch-seconds works", "given": { "name": "XmlTimestamps", "http": { @@ -1755,7 +1918,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds works", "result": { "epochSeconds": 1398796238 }, @@ -1769,6 +1931,7 @@ }, { "id": "Ec2XmlTimestampsWithEpochSecondsOnTargetFormat", + "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -1780,7 +1943,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "result": { "epochSecondsOnTarget": 1398796238 }, @@ -1794,6 +1956,7 @@ }, { "id": "Ec2XmlTimestampsWithHttpDateFormat", + "description": "Ensures that the timestampFormat of http-date works", "given": { "name": "XmlTimestamps", "http": { @@ -1805,7 +1968,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date works", "result": { "httpDate": 1398796238 }, @@ -1819,6 +1981,7 @@ }, { "id": "Ec2XmlTimestampsWithHttpDateOnTargetFormat", + "description": "Ensures that the timestampFormat of http-date on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -1830,7 +1993,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date on the target shape works", "result": { "httpDateOnTarget": 1398796238 }, diff --git a/tests/unit/botocore/protocols/output/json.json b/tests/unit/botocore/protocols/output/json.json index 158b3747f402..c5ffd0062e18 100644 --- a/tests/unit/botocore/protocols/output/json.json +++ b/tests/unit/botocore/protocols/output/json.json @@ -2,15 +2,28 @@ { "description": "Test cases for DatetimeOffsets operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "DatetimeOffsetsOutput": { "type": "structure", "members": { @@ -18,15 +31,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "AwsJson11DateTimeWithNegativeOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -37,7 +47,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -51,6 +60,7 @@ }, { "id": "AwsJson11DateTimeWithPositiveOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -61,7 +71,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -78,18 +87,28 @@ { "description": "Test cases for EmptyOperation operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": {}, "cases": [ { "id": "handles_empty_output_shape", + "description": "When no output is defined, the service is expected to return\nan empty payload, however, client must ignore a JSON payload\nif one is returned. This ensures that if output is added later,\nthen it will not break the client.", "given": { "name": "EmptyOperation", "http": { @@ -97,7 +116,6 @@ "requestUri": "/" } }, - "description": "When no output is defined, the service is expected to return\nan empty payload, however, client must ignore a JSON payload\nif one is returned. This ensures that if output is added later,\nthen it will not break the client.", "result": {}, "response": { "status_code": 200, @@ -109,6 +127,7 @@ }, { "id": "handles_unexpected_json_output", + "description": "This client-only test builds on handles_empty_output_shape,\nby including unexpected fields in the JSON. A client\nneeds to ignore JSON output that is empty or that contains\nJSON object data.", "given": { "name": "EmptyOperation", "http": { @@ -116,7 +135,6 @@ "requestUri": "/" } }, - "description": "This client-only test builds on handles_empty_output_shape,\nby including unexpected fields in the JSON. A client\nneeds to ignore JSON output that is empty or that contains\nJSON object data.", "result": {}, "response": { "status_code": 200, @@ -128,6 +146,7 @@ }, { "id": "json_1_1_service_responds_with_no_payload", + "description": "When no output is defined, the service is expected to return\nan empty payload. Despite the lack of a payload, the service\nis expected to always send a Content-Type header. Clients must\nhandle cases where a service returns a JSON object and where\na service returns no JSON at all.", "given": { "name": "EmptyOperation", "http": { @@ -135,7 +154,6 @@ "requestUri": "/" } }, - "description": "When no output is defined, the service is expected to return\nan empty payload. Despite the lack of a payload, the service\nis expected to always send a Content-Type header. Clients must\nhandle cases where a service returns a JSON object and where\na service returns no JSON at all.", "result": {}, "response": { "status_code": 200, @@ -150,15 +168,28 @@ { "description": "Test cases for FractionalSeconds operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "FractionalSecondsOutput": { "type": "structure", "members": { @@ -166,15 +197,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "AwsJson11DateTimeWithFractionalSeconds", + "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "given": { "name": "FractionalSeconds", "http": { @@ -185,7 +213,6 @@ "shape": "FractionalSecondsOutput" } }, - "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "result": { "datetime": 9.46845296123E8 }, @@ -202,13 +229,22 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "InvalidGreeting": { @@ -228,6 +264,7 @@ "cases": [ { "id": "AwsJson11InvalidGreetingError", + "description": "Parses simple JSON errors", "given": { "name": "GreetingWithErrors", "http": { @@ -242,7 +279,6 @@ } ] }, - "description": "Parses simple JSON errors", "errorCode": "InvalidGreeting", "errorMessage": "Hi", "error": { @@ -261,13 +297,22 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "ComplexError": { @@ -283,9 +328,6 @@ "documentation": "

This error is thrown when a request is invalid.

", "exception": true }, - "String": { - "type": "string" - }, "ComplexNestedErrorData": { "type": "structure", "members": { @@ -293,11 +335,15 @@ "shape": "String" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "AwsJson11ComplexError", + "description": "Parses a complex error with no message member", "given": { "name": "GreetingWithErrors", "http": { @@ -312,7 +358,6 @@ } ] }, - "description": "Parses a complex error with no message member", "errorCode": "ComplexError", "error": { "TopLevel": "Top level", @@ -359,13 +404,22 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "FooError": { @@ -379,6 +433,7 @@ "cases": [ { "id": "AwsJson11FooErrorUsingXAmznErrorType", + "description": "Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.", "given": { "name": "GreetingWithErrors", "http": { @@ -393,7 +448,6 @@ } ] }, - "description": "Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.", "errorCode": "FooError", "error": {}, "response": { @@ -405,6 +459,7 @@ }, { "id": "AwsJson11FooErrorUsingXAmznErrorTypeWithUri", + "description": "Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'\nis to be interpreted as 'ValidationException'.\n\nFor an example service see Amazon Polly.", "given": { "name": "GreetingWithErrors", "http": { @@ -419,7 +474,6 @@ } ] }, - "description": "Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'\nis to be interpreted as 'ValidationException'.\n\nFor an example service see Amazon Polly.", "errorCode": "FooError", "error": {}, "response": { @@ -431,6 +485,7 @@ }, { "id": "AwsJson11FooErrorUsingXAmznErrorTypeWithUriAndNamespace", + "description": "X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -445,7 +500,6 @@ } ] }, - "description": "X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -457,6 +511,7 @@ }, { "id": "AwsJson11FooErrorUsingCode", + "description": "This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.\n\nFor example service see Amazon S3 Glacier.", "given": { "name": "GreetingWithErrors", "http": { @@ -471,7 +526,6 @@ } ] }, - "description": "This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.\n\nFor example service see Amazon S3 Glacier.", "errorCode": "FooError", "error": {}, "response": { @@ -484,6 +538,7 @@ }, { "id": "AwsJson11FooErrorUsingCodeAndNamespace", + "description": "Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "given": { "name": "GreetingWithErrors", "http": { @@ -498,7 +553,6 @@ } ] }, - "description": "Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "errorCode": "FooError", "error": {}, "response": { @@ -511,6 +565,7 @@ }, { "id": "AwsJson11FooErrorUsingCodeUriAndNamespace", + "description": "Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -525,7 +580,6 @@ } ] }, - "description": "Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -538,6 +592,7 @@ }, { "id": "AwsJson11FooErrorWithDunderType", + "description": "Some services serialize errors using __type.", "given": { "name": "GreetingWithErrors", "http": { @@ -552,7 +607,6 @@ } ] }, - "description": "Some services serialize errors using __type.", "errorCode": "FooError", "error": {}, "response": { @@ -565,6 +619,7 @@ }, { "id": "AwsJson11FooErrorWithDunderTypeAndNamespace", + "description": "Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "given": { "name": "GreetingWithErrors", "http": { @@ -579,7 +634,6 @@ } ] }, - "description": "Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "errorCode": "FooError", "error": {}, "response": { @@ -592,6 +646,7 @@ }, { "id": "AwsJson11FooErrorWithDunderTypeUriAndNamespace", + "description": "Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -606,7 +661,6 @@ } ] }, - "description": "Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -616,44 +670,57 @@ }, "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}" } + }, + { + "id": "AwsJson11FooErrorWithNestedTypeProperty", + "description": "Some services serialize errors using __type, and if the response includes additional shapes that belong to a different namespace there'll be a nested __type property that must not be considered when determining which error to be surfaced.\n\nFor an example service see Amazon DynamoDB.", + "given": { + "name": "GreetingWithErrors", + "http": { + "method": "POST", + "requestUri": "/" + }, + "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A ComplexError error.

Implementations must be able to successfully take a response and properly deserialize successful and error responses.

", + "idempotent": true, + "errors": [ + { + "shape": "FooError" + } + ] + }, + "errorCode": "FooError", + "error": {}, + "response": { + "status_code": 500, + "headers": { + "Content-Type": "application/x-amz-json-1.1" + }, + "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError\",\n \"ErrorDetails\": [\n {\n \"__type\": \"com.amazon.internal#ErrorDetails\",\n \"reason\": \"Some reason\"\n }\n ]\n}" + } } ] }, { "description": "Test cases for JsonEnums operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { - "JsonEnumsInputOutput": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -670,12 +737,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -685,6 +746,35 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "JsonEnumsInputOutput": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } + }, "String": { "type": "string" } @@ -692,6 +782,7 @@ "cases": [ { "id": "AwsJson11Enums", + "description": "Serializes simple scalar properties", "given": { "name": "JsonEnums", "http": { @@ -704,7 +795,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -735,15 +825,49 @@ { "description": "Test cases for JsonIntEnums operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, "JsonIntEnumsInputOutput": { "type": "structure", "members": { @@ -767,31 +891,6 @@ } } }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, "String": { "type": "string" } @@ -799,6 +898,7 @@ "cases": [ { "id": "AwsJson11IntEnums", + "description": "Serializes simple scalar properties", "given": { "name": "JsonIntEnums", "http": { @@ -811,7 +911,6 @@ "documentation": "

This example serializes intEnums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "intEnum1": 1, "intEnum2": 2, @@ -832,8 +931,8 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "JsonProtocol.JsonIntEnums" + "X-Amz-Target": "JsonProtocol.JsonIntEnums", + "Content-Type": "application/x-amz-json-1.1" }, "body": "{\n \"intEnum1\": 1,\n \"intEnum2\": 2,\n \"intEnum3\": 3,\n \"intEnumList\": [\n 1,\n 2\n ],\n \"intEnumSet\": [\n 1,\n 2\n ],\n \"intEnumMap\": {\n \"a\": 1,\n \"b\": 2\n }\n}" } @@ -843,23 +942,52 @@ { "description": "Test cases for JsonUnions operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { - "UnionInputOutput": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "GreetingStruct": { "type": "structure", "members": { - "contents": { - "shape": "MyUnion" + "hi": { + "shape": "String" } - }, - "documentation": "

A shared structure that contains a single union member.

" + } + }, + "Integer": { + "type": "integer", + "box": true }, "MyUnion": { "type": "structure", @@ -898,30 +1026,6 @@ "String": { "type": "string" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Blob": { - "type": "blob" - }, - "Timestamp": { - "type": "timestamp" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "StringList": { "type": "list", "member": { @@ -937,18 +1041,23 @@ "shape": "String" } }, - "GreetingStruct": { + "Timestamp": { + "type": "timestamp" + }, + "UnionInputOutput": { "type": "structure", "members": { - "hi": { - "shape": "String" + "contents": { + "shape": "MyUnion" } - } + }, + "documentation": "

A shared structure that contains a single union member.

" } }, "cases": [ { "id": "AwsJson11DeserializeStringUnionValue", + "description": "Deserializes a string union value", "given": { "name": "JsonUnions", "http": { @@ -961,7 +1070,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a string union value", "result": { "contents": { "stringValue": "foo" @@ -977,6 +1085,7 @@ }, { "id": "AwsJson11DeserializeBooleanUnionValue", + "description": "Deserializes a boolean union value", "given": { "name": "JsonUnions", "http": { @@ -989,7 +1098,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a boolean union value", "result": { "contents": { "booleanValue": true @@ -1005,6 +1113,7 @@ }, { "id": "AwsJson11DeserializeNumberUnionValue", + "description": "Deserializes a number union value", "given": { "name": "JsonUnions", "http": { @@ -1017,7 +1126,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a number union value", "result": { "contents": { "numberValue": 1 @@ -1033,6 +1141,7 @@ }, { "id": "AwsJson11DeserializeBlobUnionValue", + "description": "Deserializes a blob union value", "given": { "name": "JsonUnions", "http": { @@ -1045,7 +1154,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a blob union value", "result": { "contents": { "blobValue": "foo" @@ -1061,6 +1169,7 @@ }, { "id": "AwsJson11DeserializeTimestampUnionValue", + "description": "Deserializes a timestamp union value", "given": { "name": "JsonUnions", "http": { @@ -1073,7 +1182,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a timestamp union value", "result": { "contents": { "timestampValue": 1398796238 @@ -1089,6 +1197,7 @@ }, { "id": "AwsJson11DeserializeEnumUnionValue", + "description": "Deserializes an enum union value", "given": { "name": "JsonUnions", "http": { @@ -1101,7 +1210,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes an enum union value", "result": { "contents": { "enumValue": "Foo" @@ -1117,6 +1225,7 @@ }, { "id": "AwsJson11DeserializeListUnionValue", + "description": "Deserializes a list union value", "given": { "name": "JsonUnions", "http": { @@ -1129,7 +1238,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a list union value", "result": { "contents": { "listValue": [ @@ -1148,6 +1256,7 @@ }, { "id": "AwsJson11DeserializeMapUnionValue", + "description": "Deserializes a map union value", "given": { "name": "JsonUnions", "http": { @@ -1160,7 +1269,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a map union value", "result": { "contents": { "mapValue": { @@ -1179,6 +1287,7 @@ }, { "id": "AwsJson11DeserializeStructureUnionValue", + "description": "Deserializes a structure union value", "given": { "name": "JsonUnions", "http": { @@ -1191,7 +1300,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a structure union value", "result": { "contents": { "structureValue": { @@ -1209,6 +1317,7 @@ }, { "id": "AwsJson11DeserializeIgnoreType", + "description": "Ignores an unrecognized __type property", "given": { "name": "JsonUnions", "http": { @@ -1221,7 +1330,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Ignores an unrecognized __type property", "result": { "contents": { "structureValue": { @@ -1242,15 +1350,50 @@ { "description": "Test cases for KitchenSinkOperation operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "EmptyStruct": { + "type": "structure", + "members": {} + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "JsonValue": { + "type": "string" + }, "KitchenSink": { "type": "structure", "members": { @@ -1335,39 +1478,11 @@ } } }, - "Blob": { - "type": "blob" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "EmptyStruct": { - "type": "structure", - "members": {} - }, - "Float": { - "type": "float", - "box": true - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "Integer": { - "type": "integer", - "box": true - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "JsonValue": { - "type": "string" + "ListOfKitchenSinks": { + "type": "list", + "member": { + "shape": "KitchenSink" + } }, "ListOfListOfStrings": { "type": "list", @@ -1397,6 +1512,15 @@ "type": "long", "box": true }, + "MapOfKitchenSinks": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "KitchenSink" + } + }, "MapOfListsOfStrings": { "type": "map", "key": { @@ -1433,21 +1557,6 @@ "shape": "SimpleStruct" } }, - "ListOfKitchenSinks": { - "type": "list", - "member": { - "shape": "KitchenSink" - } - }, - "MapOfKitchenSinks": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "KitchenSink" - } - }, "SimpleStruct": { "type": "structure", "members": { @@ -1467,17 +1576,26 @@ } } }, - "Timestamp": { - "type": "timestamp" + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" }, "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "parses_operations_with_empty_json_bodies", + "description": "Parses operations with empty JSON bodies", "given": { "name": "KitchenSinkOperation", "http": { @@ -1488,7 +1606,6 @@ "shape": "KitchenSink" } }, - "description": "Parses operations with empty JSON bodies", "result": {}, "response": { "status_code": 200, @@ -1500,6 +1617,7 @@ }, { "id": "parses_string_shapes", + "description": "Parses string shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1510,7 +1628,6 @@ "shape": "KitchenSink" } }, - "description": "Parses string shapes", "result": { "String": "string-value" }, @@ -1524,6 +1641,7 @@ }, { "id": "parses_integer_shapes", + "description": "Parses integer shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1534,7 +1652,6 @@ "shape": "KitchenSink" } }, - "description": "Parses integer shapes", "result": { "Integer": 1234 }, @@ -1548,6 +1665,7 @@ }, { "id": "parses_long_shapes", + "description": "Parses long shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1558,7 +1676,6 @@ "shape": "KitchenSink" } }, - "description": "Parses long shapes", "result": { "Long": 1234567890123456789 }, @@ -1572,6 +1689,7 @@ }, { "id": "parses_float_shapes", + "description": "Parses float shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1582,7 +1700,6 @@ "shape": "KitchenSink" } }, - "description": "Parses float shapes", "result": { "Float": 1234.5 }, @@ -1596,6 +1713,7 @@ }, { "id": "parses_double_shapes", + "description": "Parses double shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1606,7 +1724,6 @@ "shape": "KitchenSink" } }, - "description": "Parses double shapes", "result": { "Double": 1.2345678912345679E8 }, @@ -1620,6 +1737,7 @@ }, { "id": "parses_boolean_shapes_true", + "description": "Parses boolean shapes (true)", "given": { "name": "KitchenSinkOperation", "http": { @@ -1630,7 +1748,6 @@ "shape": "KitchenSink" } }, - "description": "Parses boolean shapes (true)", "result": { "Boolean": true }, @@ -1644,6 +1761,7 @@ }, { "id": "parses_boolean_false", + "description": "Parses boolean (false)", "given": { "name": "KitchenSinkOperation", "http": { @@ -1654,7 +1772,6 @@ "shape": "KitchenSink" } }, - "description": "Parses boolean (false)", "result": { "Boolean": false }, @@ -1668,6 +1785,7 @@ }, { "id": "parses_blob_shapes", + "description": "Parses blob shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1678,7 +1796,6 @@ "shape": "KitchenSink" } }, - "description": "Parses blob shapes", "result": { "Blob": "binary-value" }, @@ -1692,6 +1809,7 @@ }, { "id": "parses_timestamp_shapes", + "description": "Parses timestamp shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1702,7 +1820,6 @@ "shape": "KitchenSink" } }, - "description": "Parses timestamp shapes", "result": { "Timestamp": 946845296 }, @@ -1716,6 +1833,7 @@ }, { "id": "parses_iso8601_timestamps", + "description": "Parses iso8601 timestamps", "given": { "name": "KitchenSinkOperation", "http": { @@ -1726,7 +1844,6 @@ "shape": "KitchenSink" } }, - "description": "Parses iso8601 timestamps", "result": { "Iso8601Timestamp": 946845296 }, @@ -1740,6 +1857,7 @@ }, { "id": "parses_httpdate_timestamps", + "description": "Parses httpdate timestamps", "given": { "name": "KitchenSinkOperation", "http": { @@ -1750,7 +1868,6 @@ "shape": "KitchenSink" } }, - "description": "Parses httpdate timestamps", "result": { "HttpdateTimestamp": 946845296 }, @@ -1764,6 +1881,7 @@ }, { "id": "parses_list_shapes", + "description": "Parses list shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1774,7 +1892,6 @@ "shape": "KitchenSink" } }, - "description": "Parses list shapes", "result": { "ListOfStrings": [ "abc", @@ -1792,6 +1909,7 @@ }, { "id": "parses_list_of_map_shapes", + "description": "Parses list of map shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1802,7 +1920,6 @@ "shape": "KitchenSink" } }, - "description": "Parses list of map shapes", "result": { "ListOfMapsOfStrings": [ { @@ -1823,6 +1940,7 @@ }, { "id": "parses_list_of_list_shapes", + "description": "Parses list of list shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1833,7 +1951,6 @@ "shape": "KitchenSink" } }, - "description": "Parses list of list shapes", "result": { "ListOfLists": [ [ @@ -1858,6 +1975,7 @@ }, { "id": "parses_list_of_structure_shapes", + "description": "Parses list of structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1868,7 +1986,6 @@ "shape": "KitchenSink" } }, - "description": "Parses list of structure shapes", "result": { "ListOfStructs": [ { @@ -1889,6 +2006,7 @@ }, { "id": "parses_list_of_recursive_structure_shapes", + "description": "Parses list of recursive structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1899,7 +2017,6 @@ "shape": "KitchenSink" } }, - "description": "Parses list of recursive structure shapes", "result": { "RecursiveList": [ { @@ -1925,6 +2042,7 @@ }, { "id": "parses_map_shapes", + "description": "Parses map shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1935,7 +2053,6 @@ "shape": "KitchenSink" } }, - "description": "Parses map shapes", "result": { "MapOfStrings": { "size": "large", @@ -1952,6 +2069,7 @@ }, { "id": "parses_map_of_list_shapes", + "description": "Parses map of list shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1962,7 +2080,6 @@ "shape": "KitchenSink" } }, - "description": "Parses map of list shapes", "result": { "MapOfListsOfStrings": { "sizes": [ @@ -1985,6 +2102,7 @@ }, { "id": "parses_map_of_map_shapes", + "description": "Parses map of map shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -1995,7 +2113,6 @@ "shape": "KitchenSink" } }, - "description": "Parses map of map shapes", "result": { "MapOfMaps": { "sizes": { @@ -2018,6 +2135,7 @@ }, { "id": "parses_map_of_structure_shapes", + "description": "Parses map of structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -2028,7 +2146,6 @@ "shape": "KitchenSink" } }, - "description": "Parses map of structure shapes", "result": { "MapOfStructs": { "size": { @@ -2049,6 +2166,7 @@ }, { "id": "parses_map_of_recursive_structure_shapes", + "description": "Parses map of recursive structure shapes", "given": { "name": "KitchenSinkOperation", "http": { @@ -2059,7 +2177,6 @@ "shape": "KitchenSink" } }, - "description": "Parses map of recursive structure shapes", "result": { "RecursiveMap": { "key-1": { @@ -2085,6 +2202,7 @@ }, { "id": "parses_the_request_id_from_the_response", + "description": "Parses the request id from the response", "given": { "name": "KitchenSinkOperation", "http": { @@ -2095,7 +2213,6 @@ "shape": "KitchenSink" } }, - "description": "Parses the request id from the response", "result": {}, "response": { "status_code": 200, @@ -2111,13 +2228,22 @@ { "description": "Test cases for NullOperation operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { "NullOperationInputOutput": { @@ -2135,6 +2261,7 @@ "cases": [ { "id": "AwsJson11StructuresDontDeserializeNullValues", + "description": "Null structure values are dropped", "given": { "name": "NullOperation", "http": { @@ -2145,7 +2272,6 @@ "shape": "NullOperationInputOutput" } }, - "description": "Null structure values are dropped", "result": {}, "response": { "status_code": 200, @@ -2160,15 +2286,29 @@ { "description": "Test cases for PutAndGetInlineDocuments operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "PutAndGetInlineDocumentsInputOutput": { "type": "structure", "members": { @@ -2176,16 +2316,12 @@ "shape": "Document" } } - }, - "Document": { - "type": "structure", - "members": {}, - "document": true } }, "cases": [ { "id": "PutAndGetInlineDocumentsInput", + "description": "Serializes inline documents in a JSON response.", "given": { "name": "PutAndGetInlineDocuments", "http": { @@ -2197,7 +2333,6 @@ }, "documentation": "

This example serializes an inline document as part of the payload.

" }, - "description": "Serializes inline documents in a JSON response.", "result": { "inlineDocument": { "foo": "bar" @@ -2216,15 +2351,32 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2018-01-01", - "jsonVersion": "1.1", - "targetPrefix": "JsonProtocol" + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "SimpleScalarPropertiesInputOutput": { "type": "structure", "members": { @@ -2235,19 +2387,12 @@ "shape": "Double" } } - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "AwsJson11SupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2258,7 +2403,6 @@ "shape": "SimpleScalarPropertiesInputOutput" } }, - "description": "Supports handling NaN float values.", "result": { "floatValue": "NaN", "doubleValue": "NaN" @@ -2273,6 +2417,7 @@ }, { "id": "AwsJson11SupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2283,7 +2428,6 @@ "shape": "SimpleScalarPropertiesInputOutput" } }, - "description": "Supports handling Infinity float values.", "result": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -2298,6 +2442,7 @@ }, { "id": "AwsJson11SupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2308,7 +2453,6 @@ "shape": "SimpleScalarPropertiesInputOutput" } }, - "description": "Supports handling -Infinity float values.", "result": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -2322,5 +2466,113 @@ } } ] + }, + { + "description": "Test cases for SparseNullsOperation operation", + "metadata": { + "apiVersion": "2018-01-01", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonprotocol", + "jsonVersion": "1.1", + "protocol": "json", + "protocols": [ + "json" + ], + "serviceFullName": "JsonProtocol", + "serviceId": "Json Protocol", + "signatureVersion": "v4", + "signingName": "JsonProtocol", + "targetPrefix": "JsonProtocol", + "uid": "json-protocol-2018-01-01" + }, + "shapes": { + "SparseNullsOperationInputOutput": { + "type": "structure", + "members": { + "sparseStringList": { + "shape": "SparseStringList" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + } + } + }, + "SparseStringList": { + "type": "list", + "member": { + "shape": "String" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "AwsJson11SparseMapsDeserializeNullValues", + "description": "Deserializes null values in maps", + "given": { + "name": "SparseNullsOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "SparseNullsOperationInputOutput" + } + }, + "result": { + "sparseStringMap": { + "foo": null + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/x-amz-json-1.1" + }, + "body": "{\n \"sparseStringMap\": {\n \"foo\": null\n }\n}" + } + }, + { + "id": "AwsJson11SparseListsDeserializeNull", + "description": "Deserializes null values in lists", + "given": { + "name": "SparseNullsOperation", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "SparseNullsOperationInputOutput" + } + }, + "result": { + "sparseStringList": [ + null + ] + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/x-amz-json-1.1" + }, + "body": "{\n \"sparseStringList\": [\n null\n ]\n}" + } + } + ] } ] diff --git a/tests/unit/botocore/protocols/output/json_1_0-query-compatible.json b/tests/unit/botocore/protocols/output/json_1_0-query-compatible.json index 8bd76962506d..a99b55b9e31d 100644 --- a/tests/unit/botocore/protocols/output/json_1_0-query-compatible.json +++ b/tests/unit/botocore/protocols/output/json_1_0-query-compatible.json @@ -37,6 +37,7 @@ "cases": [ { "id": "QueryCompatibleAwsJson10NoCustomCodeError", + "description": "Parses simple errors with no query error code", "given": { "name": "QueryCompatibleOperation", "http": { @@ -50,7 +51,6 @@ } ] }, - "description": "Parses simple errors with no query error code", "errorCode": "NoCustomCodeError", "errorMessage": "Hi", "error": { @@ -109,6 +109,7 @@ "cases": [ { "id": "QueryCompatibleAwsJson10CustomCodeError", + "description": "Parses simple errors with query error code", "given": { "name": "QueryCompatibleOperation", "http": { @@ -122,7 +123,6 @@ } ] }, - "description": "Parses simple errors with query error code", "errorCode": "Customized", "errorMessage": "Hi", "error": { @@ -131,8 +131,8 @@ "response": { "status_code": 400, "headers": { - "Content-Type": "application/x-amz-json-1.0", - "x-amzn-query-error": "Customized;Sender" + "x-amzn-query-error": "Customized;Sender", + "Content-Type": "application/x-amz-json-1.0" }, "body": "{\n \"__type\": \"aws.protocoltests.json10#CustomCodeError\",\n \"message\": \"Hi\"\n}" } diff --git a/tests/unit/botocore/protocols/output/json_1_0.json b/tests/unit/botocore/protocols/output/json_1_0.json index 920a8bebaef7..3de07a1aa1ab 100644 --- a/tests/unit/botocore/protocols/output/json_1_0.json +++ b/tests/unit/botocore/protocols/output/json_1_0.json @@ -2,13 +2,22 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "EmptyInputAndEmptyOutputOutput": { @@ -19,6 +28,7 @@ "cases": [ { "id": "AwsJson10EmptyInputAndEmptyOutputSendJsonObject", + "description": "A service will always return a JSON object for operations with modeled output.", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -30,7 +40,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "A service will always return a JSON object for operations with modeled output.", "result": {}, "response": { "status_code": 200, @@ -45,13 +54,22 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "InvalidGreeting": { @@ -71,6 +89,7 @@ "cases": [ { "id": "AwsJson10InvalidGreetingError", + "description": "Parses simple JSON errors", "given": { "name": "GreetingWithErrors", "http": { @@ -85,7 +104,6 @@ } ] }, - "description": "Parses simple JSON errors", "errorCode": "InvalidGreeting", "errorMessage": "Hi", "error": { @@ -104,13 +122,130 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" + }, + "shapes": { + "ComplexError": { + "type": "structure", + "members": { + "TopLevel": { + "shape": "String" + }, + "Nested": { + "shape": "ComplexNestedErrorData" + } + }, + "documentation": "

This error is thrown when a request is invalid.

", + "exception": true + }, + "ComplexNestedErrorData": { + "type": "structure", + "members": { + "Foo": { + "shape": "String" + } + } + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "AwsJson10ComplexError", + "description": "Parses a complex error with no message member", + "given": { + "name": "GreetingWithErrors", + "http": { + "method": "POST", + "requestUri": "/" + }, + "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A ComplexError error.

Implementations must be able to successfully take a response and properly deserialize successful and error responses.

", + "idempotent": true, + "errors": [ + { + "shape": "ComplexError" + } + ] + }, + "errorCode": "ComplexError", + "error": { + "TopLevel": "Top level", + "Nested": { + "Foo": "bar" + } + }, + "response": { + "status_code": 400, + "headers": { + "Content-Type": "application/x-amz-json-1.0" + }, + "body": "{\n \"__type\": \"aws.protocoltests.json10#ComplexError\",\n \"TopLevel\": \"Top level\",\n \"Nested\": {\n \"Foo\": \"bar\"\n }\n}" + } + }, + { + "id": "AwsJson10EmptyComplexError", + "description": "Parses a complex error with an empty body", + "given": { + "name": "GreetingWithErrors", + "http": { + "method": "POST", + "requestUri": "/" + }, + "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A ComplexError error.

Implementations must be able to successfully take a response and properly deserialize successful and error responses.

", + "idempotent": true, + "errors": [ + { + "shape": "ComplexError" + } + ] + }, + "errorCode": "ComplexError", + "error": {}, + "response": { + "status_code": 400, + "headers": { + "Content-Type": "application/x-amz-json-1.0" + }, + "body": "{\n \"__type\": \"aws.protocoltests.json10#ComplexError\"\n}" + } + } + ] + }, + { + "description": "Test cases for GreetingWithErrors operation", + "metadata": { "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "protocol": "json", + "protocols": [ + "json" + ], + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "FooError": { @@ -124,6 +259,7 @@ "cases": [ { "id": "AwsJson10FooErrorUsingXAmznErrorType", + "description": "Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.", "given": { "name": "GreetingWithErrors", "http": { @@ -138,7 +274,6 @@ } ] }, - "description": "Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.", "errorCode": "FooError", "error": {}, "response": { @@ -150,6 +285,7 @@ }, { "id": "AwsJson10FooErrorUsingXAmznErrorTypeWithUri", + "description": "Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'\nis to be interpreted as 'ValidationException'.\n\nFor an example service see Amazon Polly.", "given": { "name": "GreetingWithErrors", "http": { @@ -164,7 +300,6 @@ } ] }, - "description": "Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'\nis to be interpreted as 'ValidationException'.\n\nFor an example service see Amazon Polly.", "errorCode": "FooError", "error": {}, "response": { @@ -176,6 +311,7 @@ }, { "id": "AwsJson10FooErrorUsingXAmznErrorTypeWithUriAndNamespace", + "description": "X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -190,7 +326,6 @@ } ] }, - "description": "X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -202,6 +337,7 @@ }, { "id": "AwsJson10FooErrorUsingCode", + "description": "This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.\n\nFor example service see Amazon S3 Glacier.", "given": { "name": "GreetingWithErrors", "http": { @@ -216,7 +352,6 @@ } ] }, - "description": "This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.\n\nFor example service see Amazon S3 Glacier.", "errorCode": "FooError", "error": {}, "response": { @@ -229,6 +364,7 @@ }, { "id": "AwsJson10FooErrorUsingCodeAndNamespace", + "description": "Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "given": { "name": "GreetingWithErrors", "http": { @@ -243,7 +379,6 @@ } ] }, - "description": "Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "errorCode": "FooError", "error": {}, "response": { @@ -256,6 +391,7 @@ }, { "id": "AwsJson10FooErrorUsingCodeUriAndNamespace", + "description": "Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -270,7 +406,6 @@ } ] }, - "description": "Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -283,6 +418,7 @@ }, { "id": "AwsJson10FooErrorWithDunderType", + "description": "Some services serialize errors using __type.", "given": { "name": "GreetingWithErrors", "http": { @@ -297,7 +433,6 @@ } ] }, - "description": "Some services serialize errors using __type.", "errorCode": "FooError", "error": {}, "response": { @@ -310,6 +445,7 @@ }, { "id": "AwsJson10FooErrorWithDunderTypeAndNamespace", + "description": "Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "given": { "name": "GreetingWithErrors", "http": { @@ -324,7 +460,6 @@ } ] }, - "description": "Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "errorCode": "FooError", "error": {}, "response": { @@ -337,6 +472,7 @@ }, { "id": "AwsJson10FooErrorWithDunderTypeUriAndNamespace", + "description": "Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -351,7 +487,6 @@ } ] }, - "description": "Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -361,81 +496,10 @@ }, "body": "{\n \"__type\": \"aws.protocoltests.json10#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}" } - } - ] - }, - { - "description": "Test cases for GreetingWithErrors operation", - "metadata": { - "protocol": "json", - "protocols": [ - "json" - ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" - }, - "shapes": { - "ComplexError": { - "type": "structure", - "members": { - "TopLevel": { - "shape": "String" - }, - "Nested": { - "shape": "ComplexNestedErrorData" - } - }, - "documentation": "

This error is thrown when a request is invalid.

", - "exception": true - }, - "String": { - "type": "string" - }, - "ComplexNestedErrorData": { - "type": "structure", - "members": { - "Foo": { - "shape": "String" - } - } - } - }, - "cases": [ - { - "id": "AwsJson10ComplexError", - "given": { - "name": "GreetingWithErrors", - "http": { - "method": "POST", - "requestUri": "/" - }, - "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A ComplexError error.

Implementations must be able to successfully take a response and properly deserialize successful and error responses.

", - "idempotent": true, - "errors": [ - { - "shape": "ComplexError" - } - ] - }, - "description": "Parses a complex error with no message member", - "errorCode": "ComplexError", - "error": { - "TopLevel": "Top level", - "Nested": { - "Foo": "bar" - } - }, - "response": { - "status_code": 400, - "headers": { - "Content-Type": "application/x-amz-json-1.0" - }, - "body": "{\n \"__type\": \"aws.protocoltests.json10#ComplexError\",\n \"TopLevel\": \"Top level\",\n \"Nested\": {\n \"Foo\": \"bar\"\n }\n}" - } }, { - "id": "AwsJson10EmptyComplexError", + "id": "AwsJson10FooErrorWithNestedTypeProperty", + "description": "Some services serialize errors using __type, and if the response includes additional shapes that belong to a different namespace there'll be a nested __type property that must not be considered when determining which error to be surfaced.\n\nFor an example service see Amazon DynamoDB.", "given": { "name": "GreetingWithErrors", "http": { @@ -446,19 +510,18 @@ "idempotent": true, "errors": [ { - "shape": "ComplexError" + "shape": "FooError" } ] }, - "description": "Parses a complex error with an empty body", - "errorCode": "ComplexError", + "errorCode": "FooError", "error": {}, "response": { - "status_code": 400, + "status_code": 500, "headers": { "Content-Type": "application/x-amz-json-1.0" }, - "body": "{\n \"__type\": \"aws.protocoltests.json10#ComplexError\"\n}" + "body": "{\n \"__type\": \"aws.protocoltests.json10#FooError\",\n \"ErrorDetails\": [\n {\n \"__type\": \"com.amazon.internal#ErrorDetails\",\n \"reason\": \"Some reason\"\n }\n ]\n}" } } ] @@ -466,15 +529,57 @@ { "description": "Test cases for JsonUnions operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, "JsonUnionsOutput": { "type": "structure", "members": { @@ -523,34 +628,6 @@ "String": { "type": "string" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Blob": { - "type": "blob" - }, - "Timestamp": { - "type": "timestamp" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, "StringList": { "type": "list", "member": { @@ -566,18 +643,14 @@ "shape": "String" } }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "AwsJson10DeserializeStringUnionValue", + "description": "Deserializes a string union value", "given": { "name": "JsonUnions", "http": { @@ -590,7 +663,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a string union value", "result": { "contents": { "stringValue": "foo" @@ -606,6 +678,7 @@ }, { "id": "AwsJson10DeserializeBooleanUnionValue", + "description": "Deserializes a boolean union value", "given": { "name": "JsonUnions", "http": { @@ -618,7 +691,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a boolean union value", "result": { "contents": { "booleanValue": true @@ -634,6 +706,7 @@ }, { "id": "AwsJson10DeserializeNumberUnionValue", + "description": "Deserializes a number union value", "given": { "name": "JsonUnions", "http": { @@ -646,7 +719,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a number union value", "result": { "contents": { "numberValue": 1 @@ -662,6 +734,7 @@ }, { "id": "AwsJson10DeserializeBlobUnionValue", + "description": "Deserializes a blob union value", "given": { "name": "JsonUnions", "http": { @@ -674,7 +747,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a blob union value", "result": { "contents": { "blobValue": "foo" @@ -690,6 +762,7 @@ }, { "id": "AwsJson10DeserializeTimestampUnionValue", + "description": "Deserializes a timestamp union value", "given": { "name": "JsonUnions", "http": { @@ -702,7 +775,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a timestamp union value", "result": { "contents": { "timestampValue": 1398796238 @@ -718,6 +790,7 @@ }, { "id": "AwsJson10DeserializeEnumUnionValue", + "description": "Deserializes an enum union value", "given": { "name": "JsonUnions", "http": { @@ -730,7 +803,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes an enum union value", "result": { "contents": { "enumValue": "Foo" @@ -746,6 +818,7 @@ }, { "id": "AwsJson10DeserializeIntEnumUnionValue", + "description": "Deserializes an intEnum union value", "given": { "name": "JsonUnions", "http": { @@ -758,7 +831,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes an intEnum union value", "result": { "contents": { "intEnumValue": 1 @@ -774,6 +846,7 @@ }, { "id": "AwsJson10DeserializeListUnionValue", + "description": "Deserializes a list union value", "given": { "name": "JsonUnions", "http": { @@ -786,7 +859,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a list union value", "result": { "contents": { "listValue": [ @@ -805,6 +877,7 @@ }, { "id": "AwsJson10DeserializeMapUnionValue", + "description": "Deserializes a map union value", "given": { "name": "JsonUnions", "http": { @@ -817,7 +890,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a map union value", "result": { "contents": { "mapValue": { @@ -836,6 +908,7 @@ }, { "id": "AwsJson10DeserializeStructureUnionValue", + "description": "Deserializes a structure union value", "given": { "name": "JsonUnions", "http": { @@ -848,7 +921,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a structure union value", "result": { "contents": { "structureValue": { @@ -866,6 +938,7 @@ }, { "id": "AwsJson10DeserializeIgnoreType", + "description": "Ignores an unrecognized __type property", "given": { "name": "JsonUnions", "http": { @@ -878,7 +951,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Ignores an unrecognized __type property", "result": { "contents": { "structureValue": { @@ -896,6 +968,7 @@ }, { "id": "AwsJson10DeserializeAllowNulls", + "description": "Allows for `: null` to be set for all unset fields", "given": { "name": "JsonUnions", "http": { @@ -908,7 +981,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Allows for `: null` to be set for all unset fields", "result": { "contents": { "structureValue": { @@ -929,18 +1001,28 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": {}, "cases": [ { "id": "AwsJson10HandlesEmptyOutputShape", + "description": "When no output is defined, the service is expected to return\nan empty payload, however, client must ignore a JSON payload\nif one is returned. This ensures that if output is added later,\nthen it will not break the client.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -949,7 +1031,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "When no output is defined, the service is expected to return\nan empty payload, however, client must ignore a JSON payload\nif one is returned. This ensures that if output is added later,\nthen it will not break the client.", "result": {}, "response": { "status_code": 200, @@ -961,6 +1042,7 @@ }, { "id": "AwsJson10HandlesUnexpectedJsonOutput", + "description": "This client-only test builds on handles_empty_output_shape,\nby including unexpected fields in the JSON. A client\nneeds to ignore JSON output that is empty or that contains\nJSON object data.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -969,7 +1051,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "This client-only test builds on handles_empty_output_shape,\nby including unexpected fields in the JSON. A client\nneeds to ignore JSON output that is empty or that contains\nJSON object data.", "result": {}, "response": { "status_code": 200, @@ -981,6 +1062,7 @@ }, { "id": "AwsJson10ServiceRespondsWithNoPayload", + "description": "When no output is defined, the service is expected to return\nan empty payload. Despite the lack of a payload, the service\nis expected to always send a Content-Type header. Clients must\nhandle cases where a service returns a JSON object and where\na service returns no JSON at all.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -989,7 +1071,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "When no output is defined, the service is expected to return\nan empty payload. Despite the lack of a payload, the service\nis expected to always send a Content-Type header. Clients must\nhandle cases where a service returns a JSON object and where\na service returns no JSON at all.", "result": {}, "response": { "status_code": 200, @@ -1004,13 +1085,22 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { "NoInputAndOutputOutput": { @@ -1021,6 +1111,7 @@ "cases": [ { "id": "AwsJson10NoInputAndOutput", + "description": "Empty output always serializes an empty object payload.", "given": { "name": "NoInputAndOutput", "http": { @@ -1032,7 +1123,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "Empty output always serializes an empty object payload.", "result": {}, "response": { "status_code": 200, @@ -1047,15 +1137,32 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "jsonrpc10", + "jsonVersion": "1.0", "protocol": "json", "protocols": [ "json" ], - "apiVersion": "2020-07-14", - "jsonVersion": "1.0", - "targetPrefix": "JsonRpc10" + "serviceFullName": "JsonRpc10", + "serviceId": "JSON RPC 10", + "signatureVersion": "v4", + "signingName": "JsonRpc10", + "targetPrefix": "JsonRpc10", + "uid": "json-rpc-10-2020-07-14" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, "SimpleScalarPropertiesOutput": { "type": "structure", "members": { @@ -1066,19 +1173,12 @@ "shape": "Double" } } - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "AwsJson10SupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1089,7 +1189,6 @@ "shape": "SimpleScalarPropertiesOutput" } }, - "description": "Supports handling NaN float values.", "result": { "floatValue": "NaN", "doubleValue": "NaN" @@ -1104,6 +1203,7 @@ }, { "id": "AwsJson10SupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1114,7 +1214,6 @@ "shape": "SimpleScalarPropertiesOutput" } }, - "description": "Supports handling Infinity float values.", "result": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -1129,6 +1228,7 @@ }, { "id": "AwsJson10SupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1139,7 +1239,6 @@ "shape": "SimpleScalarPropertiesOutput" } }, - "description": "Supports handling -Infinity float values.", "result": { "floatValue": "-Infinity", "doubleValue": "-Infinity" diff --git a/tests/unit/botocore/protocols/output/query.json b/tests/unit/botocore/protocols/output/query.json index bf21a59d17ec..da26e3859469 100644 --- a/tests/unit/botocore/protocols/output/query.json +++ b/tests/unit/botocore/protocols/output/query.json @@ -1,15 +1,27 @@ - [ { "description": "Test cases for DatetimeOffsets operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "DatetimeOffsetsOutput": { "type": "structure", "members": { @@ -17,15 +29,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "AwsQueryDateTimeWithNegativeOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -33,10 +42,10 @@ "requestUri": "/" }, "output": { - "shape": "DatetimeOffsetsOutput" + "shape": "DatetimeOffsetsOutput", + "resultWrapper": "DatetimeOffsetsResult" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -50,6 +59,7 @@ }, { "id": "AwsQueryDateTimeWithPositiveOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -57,10 +67,10 @@ "requestUri": "/" }, "output": { - "shape": "DatetimeOffsetsOutput" + "shape": "DatetimeOffsetsOutput", + "resultWrapper": "DatetimeOffsetsResult" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -77,11 +87,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "EmptyInputAndEmptyOutputOutput": { @@ -92,6 +111,7 @@ "cases": [ { "id": "QueryEmptyInputAndEmptyOutput", + "description": "Empty output", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -99,11 +119,11 @@ "requestUri": "/" }, "output": { - "shape": "EmptyInputAndEmptyOutputOutput" + "shape": "EmptyInputAndEmptyOutputOutput", + "resultWrapper": "EmptyInputAndEmptyOutputResult" }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response members.

While this should be rare, code generators must support this.

" }, - "description": "Empty output", "result": {}, "response": { "status_code": 200 @@ -114,11 +134,20 @@ { "description": "Test cases for FlattenedXmlMap operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "FlattenedXmlMapOutput": { @@ -130,15 +159,6 @@ } } }, - "FooEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "FooEnum" - } - }, "FooEnum": { "type": "string", "enum": [ @@ -149,6 +169,15 @@ "0" ] }, + "FooEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "FooEnum" + } + }, "String": { "type": "string" } @@ -156,6 +185,7 @@ "cases": [ { "id": "QueryQueryFlattenedXmlMap", + "description": "Serializes flattened XML maps in responses", "given": { "name": "FlattenedXmlMap", "http": { @@ -163,11 +193,11 @@ "requestUri": "/" }, "output": { - "shape": "FlattenedXmlMapOutput" + "shape": "FlattenedXmlMapOutput", + "resultWrapper": "FlattenedXmlMapResult" }, "documentation": "

Flattened maps

" }, - "description": "Serializes flattened XML maps in responses", "result": { "myMap": { "foo": "Foo", @@ -187,11 +217,20 @@ { "description": "Test cases for FlattenedXmlMapWithXmlName operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "FlattenedXmlMapWithXmlNameOutput": { @@ -222,6 +261,7 @@ "cases": [ { "id": "QueryQueryFlattenedXmlMapWithXmlName", + "description": "Serializes flattened XML maps in responses that have xmlName on members", "given": { "name": "FlattenedXmlMapWithXmlName", "http": { @@ -229,11 +269,11 @@ "requestUri": "/" }, "output": { - "shape": "FlattenedXmlMapWithXmlNameOutput" + "shape": "FlattenedXmlMapWithXmlNameOutput", + "resultWrapper": "FlattenedXmlMapWithXmlNameResult" }, "documentation": "

Flattened maps with @xmlName

" }, - "description": "Serializes flattened XML maps in responses that have xmlName on members", "result": { "myMap": { "a": "A", @@ -253,11 +293,20 @@ { "description": "Test cases for FlattenedXmlMapWithXmlNamespace operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "FlattenedXmlMapWithXmlNamespaceOutput": { @@ -291,6 +340,7 @@ "cases": [ { "id": "QueryQueryFlattenedXmlMapWithXmlNamespace", + "description": "Serializes flattened XML maps in responses that have xmlNamespace and xmlName on members", "given": { "name": "FlattenedXmlMapWithXmlNamespace", "http": { @@ -298,11 +348,11 @@ "requestUri": "/" }, "output": { - "shape": "FlattenedXmlMapWithXmlNamespaceOutput" + "shape": "FlattenedXmlMapWithXmlNamespaceOutput", + "resultWrapper": "FlattenedXmlMapWithXmlNamespaceResult" }, "documentation": "

Flattened maps with @xmlNamespace and @xmlName

" }, - "description": "Serializes flattened XML maps in responses that have xmlNamespace and xmlName on members", "result": { "myMap": { "a": "A", @@ -322,13 +372,26 @@ { "description": "Test cases for FractionalSeconds operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "FractionalSecondsOutput": { "type": "structure", "members": { @@ -336,15 +399,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "AwsQueryDateTimeWithFractionalSeconds", + "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "given": { "name": "FractionalSeconds", "http": { @@ -352,10 +412,10 @@ "requestUri": "/" }, "output": { - "shape": "FractionalSecondsOutput" + "shape": "FractionalSecondsOutput", + "resultWrapper": "FractionalSecondsResult" } }, - "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "result": { "datetime": 9.46845296123E8 }, @@ -372,11 +432,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "GreetingWithErrorsOutput": { @@ -394,6 +463,7 @@ "cases": [ { "id": "QueryGreetingWithErrors", + "description": "Ensures that operations with errors successfully know how to deserialize the successful response", "given": { "name": "GreetingWithErrors", "http": { @@ -401,11 +471,11 @@ "requestUri": "/" }, "output": { - "shape": "GreetingWithErrorsOutput" + "shape": "GreetingWithErrorsOutput", + "resultWrapper": "GreetingWithErrorsResult" }, "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
" }, - "description": "Ensures that operations with errors successfully know how to deserialize the successful response", "result": { "greeting": "Hello" }, @@ -422,11 +492,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "InvalidGreeting": { @@ -446,6 +525,7 @@ "cases": [ { "id": "QueryInvalidGreetingError", + "description": "Parses simple XML errors", "given": { "name": "GreetingWithErrors", "http": { @@ -459,7 +539,6 @@ } ] }, - "description": "Parses simple XML errors", "errorCode": "InvalidGreeting", "errorMessage": "Hi", "error": { @@ -478,34 +557,50 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "CustomCodeError": { + "ComplexError": { "type": "structure", "members": { - "Message": { + "TopLevel": { "shape": "String" + }, + "Nested": { + "shape": "ComplexNestedErrorData" } }, - "error": { - "code": "Customized", - "httpStatusCode": 402, - "senderFault": true - }, + "documentation": "

This error is thrown when a request is invalid.

", "exception": true }, + "ComplexNestedErrorData": { + "type": "structure", + "members": { + "Foo": { + "shape": "String" + } + } + }, "String": { "type": "string" } }, "cases": [ { - "id": "QueryCustomizedError", + "id": "QueryComplexError", "given": { "name": "GreetingWithErrors", "http": { @@ -515,22 +610,23 @@ "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
", "errors": [ { - "shape": "CustomCodeError" + "shape": "ComplexError" } ] }, - "description": "Parses customized XML errors", - "errorCode": "Customized", - "errorMessage": "Hi", + "errorCode": "ComplexError", "error": { - "Message": "Hi" + "TopLevel": "Top level", + "Nested": { + "Foo": "bar" + } }, "response": { - "status_code": 402, + "status_code": 400, "headers": { "Content-Type": "text/xml" }, - "body": "\n \n Sender\n Customized\n Hi\n \n foo-id\n\n" + "body": "\n \n Sender\n ComplexError\n Top level\n \n bar\n \n \n foo-id\n\n" } } ] @@ -538,41 +634,44 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "ComplexError": { + "CustomCodeError": { "type": "structure", "members": { - "TopLevel": { + "Message": { "shape": "String" - }, - "Nested": { - "shape": "ComplexNestedErrorData" } }, - "documentation": "

This error is thrown when a request is invalid.

", + "error": { + "code": "Customized", + "httpStatusCode": 402, + "senderFault": true + }, "exception": true }, "String": { "type": "string" - }, - "ComplexNestedErrorData": { - "type": "structure", - "members": { - "Foo": { - "shape": "String" - } - } } }, "cases": [ { - "id": "QueryComplexError", + "id": "QueryCustomizedError", + "description": "Parses customized XML errors", "given": { "name": "GreetingWithErrors", "http": { @@ -582,23 +681,21 @@ "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
", "errors": [ { - "shape": "ComplexError" + "shape": "CustomCodeError" } ] }, - "errorCode": "ComplexError", + "errorCode": "Customized", + "errorMessage": "Hi", "error": { - "TopLevel": "Top level", - "Nested": { - "Foo": "bar" - } + "Message": "Hi" }, "response": { - "status_code": 400, + "status_code": 402, "headers": { "Content-Type": "text/xml" }, - "body": "\n \n Sender\n ComplexError\n Top level\n \n bar\n \n \n foo-id\n\n" + "body": "\n \n Sender\n Customized\n Hi\n \n foo-id\n\n" } } ] @@ -606,11 +703,20 @@ { "description": "Test cases for IgnoresWrappingXmlName operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "IgnoresWrappingXmlNameOutput": { @@ -629,6 +735,7 @@ "cases": [ { "id": "QueryIgnoresWrappingXmlName", + "description": "The xmlName trait on the output structure is ignored in AWS Query", "given": { "name": "IgnoresWrappingXmlName", "http": { @@ -636,11 +743,11 @@ "requestUri": "/" }, "output": { - "shape": "IgnoresWrappingXmlNameOutput" + "shape": "IgnoresWrappingXmlNameOutput", + "resultWrapper": "IgnoresWrappingXmlNameResult" }, "documentation": "

The xmlName trait on the output structure is ignored in AWS Query.

The wrapping element is always operation name + "Response", and inside of that wrapper is another wrapper named operation name + "Result".

" }, - "description": "The xmlName trait on the output structure is ignored in AWS Query", "result": { "foo": "bar" }, @@ -657,16 +764,26 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": {}, "cases": [ { "id": "QueryNoInputAndNoOutput", + "description": "Empty output. Note that no assertion is made on the output body itself.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -675,7 +792,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output.

While this should be rare, code generators must support this.

" }, - "description": "Empty output. Note that no assertion is made on the output body itself.", "result": {}, "response": { "status_code": 200 @@ -686,11 +802,20 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "NoInputAndOutputOutput": { @@ -701,6 +826,7 @@ "cases": [ { "id": "QueryNoInputAndOutput", + "description": "Empty output", "given": { "name": "NoInputAndOutput", "http": { @@ -708,11 +834,11 @@ "requestUri": "/" }, "output": { - "shape": "NoInputAndOutputOutput" + "shape": "NoInputAndOutputOutput", + "resultWrapper": "NoInputAndOutputResult" }, "documentation": "

The example tests how requests and responses are serialized when there's no request payload or response members.

While this should be rare, code generators must support this.

" }, - "description": "Empty output", "result": {}, "response": { "status_code": 200 @@ -723,11 +849,20 @@ { "description": "Test cases for RecursiveXmlShapes operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { "RecursiveXmlShapesOutput": { @@ -749,9 +884,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveXmlShapesOutputNested2": { "type": "structure", "members": { @@ -762,11 +894,15 @@ "shape": "RecursiveXmlShapesOutputNested1" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "QueryRecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveXmlShapes", "http": { @@ -774,11 +910,11 @@ "requestUri": "/" }, "output": { - "shape": "RecursiveXmlShapesOutput" + "shape": "RecursiveXmlShapesOutput", + "resultWrapper": "RecursiveXmlShapesResult" }, "documentation": "

Recursive shapes

" }, - "description": "Serializes recursive structures", "result": { "nested": { "foo": "Foo1", @@ -806,13 +942,42 @@ { "description": "Test cases for SimpleScalarXmlProperties operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarXmlPropertiesOutput": { "type": "structure", "members": { @@ -851,31 +1016,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "QuerySimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -883,10 +1029,10 @@ "requestUri": "/" }, "output": { - "shape": "SimpleScalarXmlPropertiesOutput" + "shape": "SimpleScalarXmlPropertiesOutput", + "resultWrapper": "SimpleScalarXmlPropertiesResult" } }, - "description": "Serializes simple scalar properties", "result": { "stringValue": "string", "emptyStringValue": "", @@ -909,6 +1055,7 @@ }, { "id": "AwsQuerySupportsNaNFloatOutputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -916,10 +1063,10 @@ "requestUri": "/" }, "output": { - "shape": "SimpleScalarXmlPropertiesOutput" + "shape": "SimpleScalarXmlPropertiesOutput", + "resultWrapper": "SimpleScalarXmlPropertiesResult" } }, - "description": "Supports handling NaN float values.", "result": { "floatValue": "NaN", "doubleValue": "NaN" @@ -934,6 +1081,7 @@ }, { "id": "AwsQuerySupportsInfinityFloatOutputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -941,10 +1089,10 @@ "requestUri": "/" }, "output": { - "shape": "SimpleScalarXmlPropertiesOutput" + "shape": "SimpleScalarXmlPropertiesOutput", + "resultWrapper": "SimpleScalarXmlPropertiesResult" } }, - "description": "Supports handling Infinity float values.", "result": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -959,6 +1107,7 @@ }, { "id": "AwsQuerySupportsNegativeInfinityFloatOutputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarXmlProperties", "http": { @@ -966,10 +1115,10 @@ "requestUri": "/" }, "output": { - "shape": "SimpleScalarXmlPropertiesOutput" + "shape": "SimpleScalarXmlPropertiesOutput", + "resultWrapper": "SimpleScalarXmlPropertiesResult" } }, - "description": "Supports handling -Infinity float values.", "result": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -987,13 +1136,25 @@ { "description": "Test cases for XmlBlobs operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlBlobsOutput": { "type": "structure", "members": { @@ -1001,14 +1162,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "QueryXmlBlobs", + "description": "Blobs are base64 encoded", "given": { "name": "XmlBlobs", "http": { @@ -1016,11 +1175,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlBlobsOutput" + "shape": "XmlBlobsOutput", + "resultWrapper": "XmlBlobsResult" }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Blobs are base64 encoded", "result": { "data": "value" }, @@ -1037,13 +1196,25 @@ { "description": "Test cases for XmlEmptyBlobs operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlBlobsOutput": { "type": "structure", "members": { @@ -1051,14 +1222,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "QueryXmlEmptyBlobs", + "description": "Empty blobs are deserialized as empty string", "given": { "name": "XmlEmptyBlobs", "http": { @@ -1066,10 +1235,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlBlobsOutput" + "shape": "XmlBlobsOutput", + "resultWrapper": "XmlEmptyBlobsResult" } }, - "description": "Empty blobs are deserialized as empty string", "result": { "data": "" }, @@ -1083,6 +1252,7 @@ }, { "id": "QueryXmlEmptySelfClosedBlobs", + "description": "Empty self closed blobs are deserialized as empty string", "given": { "name": "XmlEmptyBlobs", "http": { @@ -1090,10 +1260,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlBlobsOutput" + "shape": "XmlBlobsOutput", + "resultWrapper": "XmlEmptyBlobsResult" } }, - "description": "Empty self closed blobs are deserialized as empty string", "result": { "data": "" }, @@ -1110,108 +1280,82 @@ { "description": "Test cases for XmlEmptyLists operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "XmlListsOutput": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Boolean" + "shape": "IntegerEnum" } }, - "TimestampList": { + "IntegerList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "Integer" } }, - "FooEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "FooEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" }, - "IntegerEnumList": { + "ListWithNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -1227,20 +1371,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -1262,38 +1406,74 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlListsOutput": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + } + } } }, "cases": [ { "id": "QueryXmlEmptyLists", + "description": "Deserializes empty XML lists", "given": { "name": "XmlEmptyLists", "http": { @@ -1301,10 +1481,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlListsOutput" + "shape": "XmlListsOutput", + "resultWrapper": "XmlEmptyListsResult" } }, - "description": "Deserializes empty XML lists", "result": { "stringList": [], "stringSet": [] @@ -1322,13 +1502,33 @@ { "description": "Test cases for XmlEmptyMaps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "String": { + "type": "string" + }, "XmlMapsOutput": { "type": "structure", "members": { @@ -1345,22 +1545,12 @@ "value": { "shape": "GreetingStruct" } - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "QueryXmlEmptyMaps", + "description": "Deserializes Empty XML maps", "given": { "name": "XmlEmptyMaps", "http": { @@ -1368,10 +1558,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlMapsOutput" + "shape": "XmlMapsOutput", + "resultWrapper": "XmlEmptyMapsResult" } }, - "description": "Deserializes Empty XML maps", "result": { "myMap": {} }, @@ -1385,6 +1575,7 @@ }, { "id": "QueryXmlEmptySelfClosedMaps", + "description": "Deserializes Self-Closed XML maps", "given": { "name": "XmlEmptyMaps", "http": { @@ -1392,10 +1583,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlMapsOutput" + "shape": "XmlMapsOutput", + "resultWrapper": "XmlEmptyMapsResult" } }, - "description": "Deserializes Self-Closed XML maps", "result": { "myMap": {} }, @@ -1412,36 +1603,22 @@ { "description": "Test cases for XmlEnums operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "XmlEnumsOutput": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -1458,12 +1635,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -1473,13 +1644,43 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "String": { "type": "string" + }, + "XmlEnumsOutput": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } } }, "cases": [ { "id": "QueryXmlEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlEnums", "http": { @@ -1487,11 +1688,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlEnumsOutput" + "shape": "XmlEnumsOutput", + "resultWrapper": "XmlEnumsResult" }, "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

" }, - "description": "Serializes simple scalar properties", "result": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -1522,13 +1723,50 @@ { "description": "Test cases for XmlIntEnums operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "String": { + "type": "string" + }, "XmlIntEnumsOutput": { "type": "structure", "members": { @@ -1551,39 +1789,12 @@ "shape": "IntegerEnumMap" } } - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "QueryXmlIntEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlIntEnums", "http": { @@ -1591,11 +1802,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlIntEnumsOutput" + "shape": "XmlIntEnumsOutput", + "resultWrapper": "XmlIntEnumsResult" }, "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

" }, - "description": "Serializes simple scalar properties", "result": { "intEnum1": 1, "intEnum2": 2, @@ -1626,108 +1837,82 @@ { "description": "Test cases for XmlLists operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "XmlListsOutput": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Boolean" + "shape": "IntegerEnum" } }, - "TimestampList": { + "IntegerList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "Integer" } }, - "FooEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "FooEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" }, - "IntegerEnumList": { + "ListWithNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -1743,20 +1928,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -1778,38 +1963,74 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlListsOutput": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + } + } } }, "cases": [ { "id": "QueryXmlLists", + "description": "Tests for XML list serialization", "given": { "name": "XmlLists", "http": { @@ -1817,11 +2038,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlListsOutput" + "shape": "XmlListsOutput", + "resultWrapper": "XmlListsResult" }, "documentation": "

This test case serializes XML lists for the following cases for both input and output:

  1. Normal XML lists.
  2. Normal XML sets.
  3. XML lists of lists.
  4. XML lists with @xmlName on its members
  5. Flattened XML lists.
  6. Flattened XML lists with @xmlName.
  7. Lists of structures.
" }, - "description": "Tests for XML list serialization", "result": { "stringList": [ "foo", @@ -1905,13 +2126,33 @@ { "description": "Test cases for XmlMaps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "String": { + "type": "string" + }, "XmlMapsOutput": { "type": "structure", "members": { @@ -1928,22 +2169,12 @@ "value": { "shape": "GreetingStruct" } - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "QueryXmlMaps", + "description": "Tests for XML map serialization", "given": { "name": "XmlMaps", "http": { @@ -1951,11 +2182,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlMapsOutput" + "shape": "XmlMapsOutput", + "resultWrapper": "XmlMapsResult" }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Tests for XML map serialization", "result": { "myMap": { "foo": { @@ -1979,13 +2210,33 @@ { "description": "Test cases for XmlMapsXmlName operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "String": { + "type": "string" + }, "XmlMapsXmlNameOutput": { "type": "structure", "members": { @@ -2004,22 +2255,12 @@ "shape": "GreetingStruct", "locationName": "Setting" } - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "QueryQueryXmlMapsXmlName", + "description": "Serializes XML lists", "given": { "name": "XmlMapsXmlName", "http": { @@ -2027,10 +2268,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlMapsXmlNameOutput" + "shape": "XmlMapsXmlNameOutput", + "resultWrapper": "XmlMapsXmlNameResult" } }, - "description": "Serializes XML lists", "result": { "myMap": { "foo": { @@ -2054,21 +2295,24 @@ { "description": "Test cases for XmlNamespaces operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { - "XmlNamespacesOutput": { - "type": "structure", - "members": { - "nested": { - "shape": "XmlNamespaceNested" - } - }, - "xmlNamespace": "http://foo.com" + "String": { + "type": "string" }, "XmlNamespaceNested": { "type": "structure", @@ -2087,20 +2331,27 @@ }, "xmlNamespace": "http://boo.com" }, - "String": { - "type": "string" - }, "XmlNamespacedList": { "type": "list", "member": { "shape": "String", "xmlNamespace": "http://bux.com" } + }, + "XmlNamespacesOutput": { + "type": "structure", + "members": { + "nested": { + "shape": "XmlNamespaceNested" + } + }, + "xmlNamespace": "http://foo.com" } }, "cases": [ { "id": "QueryXmlNamespaces", + "description": "Serializes XML namespaces", "given": { "name": "XmlNamespaces", "http": { @@ -2108,10 +2359,10 @@ "requestUri": "/" }, "output": { - "shape": "XmlNamespacesOutput" + "shape": "XmlNamespacesOutput", + "resultWrapper": "XmlNamespacesResult" } }, - "description": "Serializes XML namespaces", "result": { "nested": { "foo": "Foo", @@ -2134,13 +2385,49 @@ { "description": "Test cases for XmlTimestamps operation", "metadata": { + "apiVersion": "2020-01-08", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "awsquery", "protocol": "query", "protocols": [ "query" ], - "apiVersion": "2020-01-08" + "serviceFullName": "AwsQuery", + "serviceId": "Query Protocol", + "signatureVersion": "v4", + "signingName": "AwsQuery", + "uid": "query-protocol-2020-01-08" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "XmlTimestampsOutput": { "type": "structure", "members": { @@ -2166,38 +2453,12 @@ "shape": "HttpDate" } } - }, - "Timestamp": { - "type": "timestamp" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" } }, "cases": [ { "id": "QueryXmlTimestamps", + "description": "Tests how normal timestamps are serialized", "given": { "name": "XmlTimestamps", "http": { @@ -2205,11 +2466,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Tests how normal timestamps are serialized", "result": { "normal": 1398796238 }, @@ -2223,6 +2484,7 @@ }, { "id": "QueryXmlTimestampsWithDateTimeFormat", + "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -2230,11 +2492,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "result": { "dateTime": 1398796238 }, @@ -2248,6 +2510,7 @@ }, { "id": "QueryXmlTimestampsWithDateTimeOnTargetFormat", + "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -2255,11 +2518,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "result": { "dateTimeOnTarget": 1398796238 }, @@ -2273,6 +2536,7 @@ }, { "id": "QueryXmlTimestampsWithEpochSecondsFormat", + "description": "Ensures that the timestampFormat of epoch-seconds works", "given": { "name": "XmlTimestamps", "http": { @@ -2280,11 +2544,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds works", "result": { "epochSeconds": 1398796238 }, @@ -2298,6 +2562,7 @@ }, { "id": "QueryXmlTimestampsWithEpochSecondsOnTargetFormat", + "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -2305,11 +2570,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "result": { "epochSecondsOnTarget": 1398796238 }, @@ -2323,6 +2588,7 @@ }, { "id": "QueryXmlTimestampsWithHttpDateFormat", + "description": "Ensures that the timestampFormat of http-date works", "given": { "name": "XmlTimestamps", "http": { @@ -2330,11 +2596,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date works", "result": { "httpDate": 1398796238 }, @@ -2348,6 +2614,7 @@ }, { "id": "QueryXmlTimestampsWithHttpDateOnTargetFormat", + "description": "Ensures that the timestampFormat of http-date on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -2355,11 +2622,11 @@ "requestUri": "/" }, "output": { - "shape": "XmlTimestampsOutput" + "shape": "XmlTimestampsOutput", + "resultWrapper": "XmlTimestampsResult" }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date on the target shape works", "result": { "httpDateOnTarget": 1398796238 }, diff --git a/tests/unit/botocore/protocols/output/rest-json.json b/tests/unit/botocore/protocols/output/rest-json.json index c3a4d999e63b..f115c4161a83 100644 --- a/tests/unit/botocore/protocols/output/rest-json.json +++ b/tests/unit/botocore/protocols/output/rest-json.json @@ -1,15 +1,27 @@ - [ { "description": "Test cases for DatetimeOffsets operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "DatetimeOffsetsOutput": { "type": "structure", "members": { @@ -17,15 +29,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RestJsonDateTimeWithNegativeOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -37,7 +46,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -48,6 +56,7 @@ }, { "id": "RestJsonDateTimeWithPositiveOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -59,7 +68,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -73,13 +81,27 @@ { "description": "Test cases for DocumentType operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "DocumentTypeInputOutput": { "type": "structure", "members": { @@ -93,16 +115,12 @@ }, "String": { "type": "string" - }, - "Document": { - "type": "structure", - "members": {}, - "document": true } }, "cases": [ { "id": "DocumentOutput", + "description": "Serializes documents as part of the JSON response payload with no escaping.", "given": { "name": "DocumentType", "http": { @@ -116,7 +134,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Serializes documents as part of the JSON response payload with no escaping.", "result": { "stringValue": "string", "documentValue": { @@ -133,6 +150,7 @@ }, { "id": "DocumentOutputString", + "description": "Document types can be JSON scalars too.", "given": { "name": "DocumentType", "http": { @@ -146,7 +164,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Document types can be JSON scalars too.", "result": { "stringValue": "string", "documentValue": "hello" @@ -161,6 +178,7 @@ }, { "id": "DocumentOutputNumber", + "description": "Document types can be JSON scalars too.", "given": { "name": "DocumentType", "http": { @@ -174,7 +192,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Document types can be JSON scalars too.", "result": { "stringValue": "string", "documentValue": 10 @@ -189,6 +206,7 @@ }, { "id": "DocumentOutputBoolean", + "description": "Document types can be JSON scalars too.", "given": { "name": "DocumentType", "http": { @@ -202,7 +220,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Document types can be JSON scalars too.", "result": { "stringValue": "string", "documentValue": false @@ -217,6 +234,7 @@ }, { "id": "DocumentOutputArray", + "description": "Document types can be JSON arrays.", "given": { "name": "DocumentType", "http": { @@ -230,7 +248,6 @@ "documentation": "

This example serializes a document as part of the payload.

", "idempotent": true }, - "description": "Document types can be JSON arrays.", "result": { "stringValue": "string", "documentValue": [ @@ -251,13 +268,27 @@ { "description": "Test cases for DocumentTypeAsMapValue operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "DocumentTypeAsMapValueInputOutput": { "type": "structure", "members": { @@ -275,11 +306,6 @@ "shape": "Document" } }, - "Document": { - "type": "structure", - "members": {}, - "document": true - }, "String": { "type": "string" } @@ -287,6 +313,7 @@ "cases": [ { "id": "DocumentTypeAsMapValueOutput", + "description": "Serializes a map that uses documents as the value.", "given": { "name": "DocumentTypeAsMapValue", "http": { @@ -300,7 +327,6 @@ "documentation": "

This example serializes documents as the value of maps.

", "idempotent": true }, - "description": "Serializes a map that uses documents as the value.", "result": { "docValuedMap": { "foo": { @@ -328,13 +354,27 @@ { "description": "Test cases for DocumentTypeAsPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Document": { + "type": "structure", + "members": {}, + "document": true + }, "DocumentTypeAsPayloadInputOutput": { "type": "structure", "members": { @@ -343,16 +383,12 @@ } }, "payload": "documentValue" - }, - "Document": { - "type": "structure", - "members": {}, - "document": true } }, "cases": [ { "id": "DocumentTypeAsPayloadOutput", + "description": "Serializes a document as the target of the httpPayload trait.", "given": { "name": "DocumentTypeAsPayload", "http": { @@ -366,7 +402,6 @@ "documentation": "

This example serializes a document as the entire HTTP payload.

", "idempotent": true }, - "description": "Serializes a document as the target of the httpPayload trait.", "result": { "documentValue": { "foo": "bar" @@ -382,6 +417,7 @@ }, { "id": "DocumentTypeAsPayloadOutputString", + "description": "Serializes a document as a payload string.", "given": { "name": "DocumentTypeAsPayload", "http": { @@ -395,7 +431,6 @@ "documentation": "

This example serializes a document as the entire HTTP payload.

", "idempotent": true }, - "description": "Serializes a document as a payload string.", "result": { "documentValue": "hello" }, @@ -412,11 +447,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "EmptyInputAndEmptyOutputOutput": { @@ -427,6 +471,7 @@ "cases": [ { "id": "RestJsonEmptyInputAndEmptyOutput", + "description": "As of January 2021, server implementations are expected to\nrespond with a JSON object regardless of if the output\nparameters are empty.", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -439,7 +484,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "As of January 2021, server implementations are expected to\nrespond with a JSON object regardless of if the output\nparameters are empty.", "result": {}, "response": { "status_code": 200, @@ -451,6 +495,7 @@ }, { "id": "RestJsonEmptyInputAndEmptyOutputJsonObjectOutput", + "description": "This test ensures that clients can gracefully handle\nsituations where a service omits a JSON payload entirely.", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -463,7 +508,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "This test ensures that clients can gracefully handle\nsituations where a service omits a JSON payload entirely.", "result": {}, "response": { "status_code": 200, @@ -475,13 +519,26 @@ { "description": "Test cases for FractionalSeconds operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "FractionalSecondsOutput": { "type": "structure", "members": { @@ -489,15 +546,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RestJsonDateTimeWithFractionalSeconds", + "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "given": { "name": "FractionalSeconds", "http": { @@ -509,7 +563,6 @@ "shape": "FractionalSecondsOutput" } }, - "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "result": { "datetime": 9.46845296123E8 }, @@ -523,11 +576,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "GreetingWithErrorsOutput": { @@ -547,6 +609,7 @@ "cases": [ { "id": "RestJsonGreetingWithErrors", + "description": "Ensures that operations with errors successfully know how\nto deserialize a successful response. As of January 2021,\nserver implementations are expected to respond with a\nJSON object regardless of if the output parameters are\nempty.", "given": { "name": "GreetingWithErrors", "http": { @@ -560,7 +623,6 @@ "documentation": "

This operation has four possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
  4. A FooError.

Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the

", "idempotent": true }, - "description": "Ensures that operations with errors successfully know how\nto deserialize a successful response. As of January 2021,\nserver implementations are expected to respond with a\nJSON object regardless of if the output parameters are\nempty.", "result": { "greeting": "Hello" }, @@ -574,6 +636,7 @@ }, { "id": "RestJsonGreetingWithErrorsNoPayload", + "description": "This test is similar to RestJsonGreetingWithErrors, but it\nensures that clients can gracefully deal with a server\nomitting a response payload.", "given": { "name": "GreetingWithErrors", "http": { @@ -587,7 +650,6 @@ "documentation": "

This operation has four possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
  4. A FooError.

Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the

", "idempotent": true }, - "description": "This test is similar to RestJsonGreetingWithErrors, but it\nensures that clients can gracefully deal with a server\nomitting a response payload.", "result": { "greeting": "Hello" }, @@ -604,27 +666,44 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "FooError": { + "InvalidGreeting": { "type": "structure", - "members": {}, - "documentation": "

This error has test cases that test some of the dark corners of Amazon service framework history. It should only be implemented by clients.

", + "members": { + "Message": { + "shape": "String" + } + }, + "documentation": "

This error is thrown when an invalid greeting value is provided.

", "error": { - "httpStatusCode": 500 + "httpStatusCode": 400, + "senderFault": true }, - "exception": true, - "fault": true + "exception": true + }, + "String": { + "type": "string" } }, "cases": [ { - "id": "RestJsonFooErrorUsingXAmznErrorType", + "id": "RestJsonInvalidGreetingError", + "description": "Parses simple JSON errors", "given": { "name": "GreetingWithErrors", "http": { @@ -636,22 +715,84 @@ "idempotent": true, "errors": [ { - "shape": "FooError" + "shape": "InvalidGreeting" } ] }, - "description": "Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.", - "errorCode": "FooError", - "error": {}, + "errorCode": "InvalidGreeting", + "errorMessage": "Hi", + "error": { + "Message": "Hi" + }, "response": { - "status_code": 500, + "status_code": 400, "headers": { - "X-Amzn-Errortype": "FooError" + "X-Amzn-Errortype": "InvalidGreeting", + "Content-Type": "application/json" + }, + "body": "{\n \"Message\": \"Hi\"\n}" + } + } + ] + }, + { + "description": "Test cases for GreetingWithErrors operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "ComplexError": { + "type": "structure", + "members": { + "Header": { + "shape": "String", + "location": "header", + "locationName": "X-Header" + }, + "TopLevel": { + "shape": "String" + }, + "Nested": { + "shape": "ComplexNestedErrorData" + } + }, + "documentation": "

This error is thrown when a request is invalid.

", + "error": { + "httpStatusCode": 403, + "senderFault": true + }, + "exception": true + }, + "ComplexNestedErrorData": { + "type": "structure", + "members": { + "Foo": { + "shape": "String", + "locationName": "Fooooo" } } }, + "String": { + "type": "string" + } + }, + "cases": [ { - "id": "RestJsonFooErrorUsingXAmznErrorTypeWithUri", + "id": "RestJsonComplexErrorWithNoMessage", + "description": "Serializes a complex error with no message member", "given": { "name": "GreetingWithErrors", "http": { @@ -663,22 +804,30 @@ "idempotent": true, "errors": [ { - "shape": "FooError" + "shape": "ComplexError" } ] }, - "description": "Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'\nis to be interpreted as 'ValidationException'.\n\nFor an example service see Amazon Polly.", - "errorCode": "FooError", - "error": {}, + "errorCode": "ComplexError", + "error": { + "Header": "Header", + "TopLevel": "Top level", + "Nested": { + "Foo": "bar" + } + }, "response": { - "status_code": 500, + "status_code": 403, "headers": { - "X-Amzn-Errortype": "FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/" - } + "X-Amzn-Errortype": "ComplexError", + "X-Header": "Header", + "Content-Type": "application/json" + }, + "body": "{\n \"TopLevel\": \"Top level\",\n \"Nested\": {\n \"Fooooo\": \"bar\"\n }\n}" } }, { - "id": "RestJsonFooErrorUsingXAmznErrorTypeWithUriAndNamespace", + "id": "RestJsonEmptyComplexErrorWithNoMessage", "given": { "name": "GreetingWithErrors", "http": { @@ -690,22 +839,57 @@ "idempotent": true, "errors": [ { - "shape": "FooError" + "shape": "ComplexError" } ] }, - "description": "X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.", - "errorCode": "FooError", + "errorCode": "ComplexError", "error": {}, "response": { - "status_code": 500, + "status_code": 403, "headers": { - "X-Amzn-Errortype": "aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/" - } + "X-Amzn-Errortype": "ComplexError", + "Content-Type": "application/json" + }, + "body": "{}" } - }, + } + ] + }, + { + "description": "Test cases for GreetingWithErrors operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "FooError": { + "type": "structure", + "members": {}, + "documentation": "

This error has test cases that test some of the dark corners of Amazon service framework history. It should only be implemented by clients.

", + "error": { + "httpStatusCode": 500 + }, + "exception": true, + "fault": true + } + }, + "cases": [ { - "id": "RestJsonFooErrorUsingCode", + "id": "RestJsonFooErrorUsingXAmznErrorType", + "description": "Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.", "given": { "name": "GreetingWithErrors", "http": { @@ -721,19 +905,18 @@ } ] }, - "description": "This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.\n\nFor example service see Amazon S3 Glacier.", "errorCode": "FooError", "error": {}, "response": { "status_code": 500, "headers": { - "Content-Type": "application/json" - }, - "body": "{\n \"code\": \"FooError\"\n}" + "X-Amzn-Errortype": "FooError" + } } }, { - "id": "RestJsonFooErrorUsingCodeAndNamespace", + "id": "RestJsonFooErrorUsingXAmznErrorTypeWithUri", + "description": "Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'\nis to be interpreted as 'ValidationException'.\n\nFor an example service see Amazon Polly.", "given": { "name": "GreetingWithErrors", "http": { @@ -749,19 +932,45 @@ } ] }, - "description": "Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "errorCode": "FooError", "error": {}, "response": { "status_code": 500, "headers": { - "Content-Type": "application/json" - }, - "body": "{\n \"code\": \"aws.protocoltests.restjson#FooError\"\n}" + "X-Amzn-Errortype": "FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/" + } } }, { - "id": "RestJsonFooErrorUsingCodeUriAndNamespace", + "id": "RestJsonFooErrorUsingXAmznErrorTypeWithUriAndNamespace", + "description": "X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.", + "given": { + "name": "GreetingWithErrors", + "http": { + "method": "PUT", + "requestUri": "/GreetingWithErrors", + "responseCode": 200 + }, + "documentation": "

This operation has four possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
  4. A FooError.

Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the

", + "idempotent": true, + "errors": [ + { + "shape": "FooError" + } + ] + }, + "errorCode": "FooError", + "error": {}, + "response": { + "status_code": 500, + "headers": { + "X-Amzn-Errortype": "aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/" + } + } + }, + { + "id": "RestJsonFooErrorUsingCode", + "description": "This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.\n\nFor example service see Amazon S3 Glacier.", "given": { "name": "GreetingWithErrors", "http": { @@ -777,7 +986,6 @@ } ] }, - "description": "Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -785,11 +993,12 @@ "headers": { "Content-Type": "application/json" }, - "body": "{\n \"code\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}" + "body": "{\n \"code\": \"FooError\"\n}" } }, { - "id": "RestJsonFooErrorWithDunderType", + "id": "RestJsonFooErrorUsingCodeAndNamespace", + "description": "Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "given": { "name": "GreetingWithErrors", "http": { @@ -805,7 +1014,6 @@ } ] }, - "description": "Some services serialize errors using __type.", "errorCode": "FooError", "error": {}, "response": { @@ -813,11 +1021,12 @@ "headers": { "Content-Type": "application/json" }, - "body": "{\n \"__type\": \"FooError\"\n}" + "body": "{\n \"code\": \"aws.protocoltests.restjson#FooError\"\n}" } }, { - "id": "RestJsonFooErrorWithDunderTypeAndNamespace", + "id": "RestJsonFooErrorUsingCodeUriAndNamespace", + "description": "Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -833,7 +1042,6 @@ } ] }, - "description": "Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.", "errorCode": "FooError", "error": {}, "response": { @@ -841,11 +1049,12 @@ "headers": { "Content-Type": "application/json" }, - "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError\"\n}" + "body": "{\n \"code\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}" } }, { - "id": "RestJsonFooErrorWithDunderTypeUriAndNamespace", + "id": "RestJsonFooErrorWithDunderType", + "description": "Some services serialize errors using __type.", "given": { "name": "GreetingWithErrors", "http": { @@ -861,7 +1070,6 @@ } ] }, - "description": "Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "errorCode": "FooError", "error": {}, "response": { @@ -869,59 +1077,40 @@ "headers": { "Content-Type": "application/json" }, - "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}" + "body": "{\n \"__type\": \"FooError\"\n}" } - } - ] - }, - { - "description": "Test cases for GreetingWithErrors operation", - "metadata": { - "protocol": "rest-json", - "protocols": [ - "rest-json" - ], - "apiVersion": "2019-12-16" - }, - "shapes": { - "ComplexError": { - "type": "structure", - "members": { - "Header": { - "shape": "String", - "location": "header", - "locationName": "X-Header" - }, - "TopLevel": { - "shape": "String" + }, + { + "id": "RestJsonFooErrorWithDunderTypeAndNamespace", + "description": "Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.", + "given": { + "name": "GreetingWithErrors", + "http": { + "method": "PUT", + "requestUri": "/GreetingWithErrors", + "responseCode": 200 }, - "Nested": { - "shape": "ComplexNestedErrorData" - } - }, - "documentation": "

This error is thrown when a request is invalid.

", - "error": { - "httpStatusCode": 403, - "senderFault": true + "documentation": "

This operation has four possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
  4. A FooError.

Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the

", + "idempotent": true, + "errors": [ + { + "shape": "FooError" + } + ] }, - "exception": true - }, - "String": { - "type": "string" - }, - "ComplexNestedErrorData": { - "type": "structure", - "members": { - "Foo": { - "shape": "String", - "locationName": "Fooooo" - } + "errorCode": "FooError", + "error": {}, + "response": { + "status_code": 500, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError\"\n}" } - } - }, - "cases": [ + }, { - "id": "RestJsonComplexErrorWithNoMessage", + "id": "RestJsonFooErrorWithDunderTypeUriAndNamespace", + "description": "Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before \":\". This is a pathalogical case that might not occur in any deployed AWS service.", "given": { "name": "GreetingWithErrors", "http": { @@ -933,31 +1122,23 @@ "idempotent": true, "errors": [ { - "shape": "ComplexError" + "shape": "FooError" } ] }, - "description": "Serializes a complex error with no message member", - "errorCode": "ComplexError", - "error": { - "Header": "Header", - "TopLevel": "Top level", - "Nested": { - "Foo": "bar" - } - }, + "errorCode": "FooError", + "error": {}, "response": { - "status_code": 403, + "status_code": 500, "headers": { - "Content-Type": "application/json", - "X-Amzn-Errortype": "ComplexError", - "X-Header": "Header" + "Content-Type": "application/json" }, - "body": "{\n \"TopLevel\": \"Top level\",\n \"Nested\": {\n \"Fooooo\": \"bar\"\n }\n}" + "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}" } }, { - "id": "RestJsonEmptyComplexErrorWithNoMessage", + "id": "RestJsonFooErrorWithNestedTypeProperty", + "description": "Some services serialize errors using __type, and if the response includes additional shapes that belong to a different namespace there'll be a nested __type property that must not be considered when determining which error to be surfaced.\n\nFor an example service see Amazon DynamoDB.", "given": { "name": "GreetingWithErrors", "http": { @@ -969,82 +1150,99 @@ "idempotent": true, "errors": [ { - "shape": "ComplexError" + "shape": "FooError" } ] }, - "errorCode": "ComplexError", + "errorCode": "FooError", "error": {}, "response": { - "status_code": 403, + "status_code": 500, "headers": { - "Content-Type": "application/json", - "X-Amzn-Errortype": "ComplexError" + "Content-Type": "application/json" }, - "body": "{}" + "body": "{\n \"__type\": \"aws.protocoltests.restjson#FooError\",\n \"ErrorDetails\": [\n {\n \"__type\": \"com.amazon.internal#ErrorDetails\",\n \"reason\": \"Some reason\"\n }\n ]\n}" } } ] }, { - "description": "Test cases for GreetingWithErrors operation", + "description": "Test cases for HttpEmptyPrefixHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "InvalidGreeting": { + "HttpEmptyPrefixHeadersOutput": { "type": "structure", "members": { - "Message": { - "shape": "String" + "prefixHeaders": { + "shape": "StringMap", + "location": "headers", + "locationName": "" + }, + "specificHeader": { + "shape": "String", + "location": "header", + "locationName": "hello" } - }, - "documentation": "

This error is thrown when an invalid greeting value is provided.

", - "error": { - "httpStatusCode": 400, - "senderFault": true - }, - "exception": true + } }, "String": { "type": "string" + }, + "StringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } } }, "cases": [ { - "id": "RestJsonInvalidGreetingError", + "id": "RestJsonHttpEmptyPrefixHeadersResponseClient", + "description": "Deserializes all response headers with the same for prefix and specific", "given": { - "name": "GreetingWithErrors", + "name": "HttpEmptyPrefixHeaders", "http": { - "method": "PUT", - "requestUri": "/GreetingWithErrors", + "method": "GET", + "requestUri": "/HttpEmptyPrefixHeaders", "responseCode": 200 }, - "documentation": "

This operation has four possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.
  4. A FooError.

Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the

", - "idempotent": true, - "errors": [ - { - "shape": "InvalidGreeting" - } - ] + "output": { + "shape": "HttpEmptyPrefixHeadersOutput" + }, + "documentation": "

Clients that perform this test extract all headers from the response.

", + "readonly": true }, - "description": "Parses simple JSON errors", - "errorCode": "InvalidGreeting", - "errorMessage": "Hi", - "error": { - "Message": "Hi" + "result": { + "prefixHeaders": { + "x-foo": "Foo", + "hello": "There" + }, + "specificHeader": "There" }, "response": { - "status_code": 400, + "status_code": 200, "headers": { - "Content-Type": "application/json", - "X-Amzn-Errortype": "InvalidGreeting" - }, - "body": "{\n \"Message\": \"Hi\"\n}" + "x-foo": "Foo", + "hello": "There" + } } } ] @@ -1052,11 +1250,20 @@ { "description": "Test cases for HttpEnumPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "EnumPayloadInput": { @@ -1105,13 +1312,25 @@ { "description": "Test cases for HttpPayloadTraits operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "HttpPayloadTraitsInputOutput": { "type": "structure", "members": { @@ -1128,14 +1347,12 @@ }, "String": { "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RestJsonHttpPayloadTraitsWithBlob", + "description": "Serializes a blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -1148,7 +1365,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no JSON document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes a blob in the HTTP payload", "result": { "foo": "Foo", "blob": "blobby blob blob" @@ -1163,6 +1379,7 @@ }, { "id": "RestJsonHttpPayloadTraitsWithNoBlobBody", + "description": "Serializes an empty blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -1175,7 +1392,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no JSON document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes an empty blob in the HTTP payload", "result": { "foo": "Foo" }, @@ -1192,11 +1408,20 @@ { "description": "Test cases for HttpPayloadWithStructure operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithStructureInputOutput": { @@ -1226,6 +1451,7 @@ "cases": [ { "id": "RestJsonHttpPayloadWithStructure", + "description": "Serializes a structure in the payload", "given": { "name": "HttpPayloadWithStructure", "http": { @@ -1239,7 +1465,6 @@ "documentation": "

This example serializes a structure in the payload.

Note that serializing a structure changes the wrapper element name to match the targeted structure.

", "idempotent": true }, - "description": "Serializes a structure in the payload", "result": { "nested": { "greeting": "hello", @@ -1253,17 +1478,50 @@ }, "body": "{\n \"greeting\": \"hello\",\n \"name\": \"Phreddy\"\n}" } + }, + { + "id": "RestJsonHttpPayloadWithStructureAndEmptyResponseBody", + "description": "Serializes a structure in the payload", + "given": { + "name": "HttpPayloadWithStructure", + "http": { + "method": "PUT", + "requestUri": "/HttpPayloadWithStructure", + "responseCode": 200 + }, + "output": { + "shape": "HttpPayloadWithStructureInputOutput" + }, + "documentation": "

This example serializes a structure in the payload.

Note that serializing a structure changes the wrapper element name to match the targeted structure.

", + "idempotent": true + }, + "result": { + "nested": null + }, + "response": { + "status_code": 200, + "body": "" + } } ] }, { "description": "Test cases for HttpPayloadWithUnion operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithUnionInputOutput": { @@ -1275,6 +1533,9 @@ }, "payload": "nested" }, + "String": { + "type": "string" + }, "UnionPayload": { "type": "structure", "members": { @@ -1283,14 +1544,12 @@ } }, "union": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestJsonHttpPayloadWithUnion", + "description": "Serializes a union in the payload.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -1304,7 +1563,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "Serializes a union in the payload.", "result": { "nested": { "greeting": "hello" @@ -1320,6 +1578,7 @@ }, { "id": "RestJsonHttpPayloadWithUnsetUnion", + "description": "No payload is sent if the union has no value.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -1333,7 +1592,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "No payload is sent if the union has no value.", "result": {}, "response": { "status_code": 200, @@ -1348,11 +1606,20 @@ { "description": "Test cases for HttpPrefixHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPrefixHeadersOutput": { @@ -1386,6 +1653,7 @@ "cases": [ { "id": "RestJsonHttpPrefixHeadersArePresent", + "description": "Adds headers by prefix", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1396,9 +1664,9 @@ "output": { "shape": "HttpPrefixHeadersOutput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "Adds headers by prefix", "result": { "foo": "Foo", "fooMap": { @@ -1410,8 +1678,8 @@ "status_code": 200, "headers": { "x-foo": "Foo", - "x-foo-abc": "Abc value", - "x-foo-def": "Def value" + "x-foo-def": "Def value", + "x-foo-abc": "Abc value" } } } @@ -1420,11 +1688,20 @@ { "description": "Test cases for HttpPrefixHeadersInResponse operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpPrefixHeadersInResponseOutput": { @@ -1437,6 +1714,9 @@ } } }, + "String": { + "type": "string" + }, "StringMap": { "type": "map", "key": { @@ -1445,14 +1725,12 @@ "value": { "shape": "String" } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "HttpPrefixHeadersResponse", + "description": "(de)serializes all response headers", "given": { "name": "HttpPrefixHeadersInResponse", "http": { @@ -1463,9 +1741,9 @@ "output": { "shape": "HttpPrefixHeadersInResponseOutput" }, - "documentation": "

Clients that perform this test extract all headers from the response.

" + "documentation": "

Clients that perform this test extract all headers from the response.

", + "readonly": true }, - "description": "(de)serializes all response headers", "result": { "prefixHeaders": { "x-foo": "Foo", @@ -1475,8 +1753,8 @@ "response": { "status_code": 200, "headers": { - "hello": "Hello", - "x-foo": "Foo" + "x-foo": "Foo", + "hello": "Hello" } } } @@ -1485,11 +1763,20 @@ { "description": "Test cases for HttpResponseCode operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "HttpResponseCodeOutput": { @@ -1509,6 +1796,7 @@ "cases": [ { "id": "RestJsonHttpResponseCode", + "description": "Binds the http response code to an output structure. Note that\neven though all members are bound outside of the payload, an\nempty JSON object is serialized in the response. However,\nclients should be able to handle an empty JSON object or an\nempty payload without failing to deserialize a response.", "given": { "name": "HttpResponseCode", "http": { @@ -1521,7 +1809,6 @@ }, "idempotent": true }, - "description": "Binds the http response code to an output structure. Note that\neven though all members are bound outside of the payload, an\nempty JSON object is serialized in the response. However,\nclients should be able to handle an empty JSON object or an\nempty payload without failing to deserialize a response.", "result": { "Status": 201 }, @@ -1535,6 +1822,7 @@ }, { "id": "RestJsonHttpResponseCodeWithNoPayload", + "description": "This test ensures that clients gracefully handle cases where\nthe service responds with no payload rather than an empty JSON\nobject.", "given": { "name": "HttpResponseCode", "http": { @@ -1547,7 +1835,6 @@ }, "idempotent": true }, - "description": "This test ensures that clients gracefully handle cases where\nthe service responds with no payload rather than an empty JSON\nobject.", "result": { "Status": 201 }, @@ -1561,13 +1848,25 @@ { "description": "Test cases for HttpStringPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "StringPayloadInput": { "type": "structure", "members": { @@ -1576,9 +1875,6 @@ } }, "payload": "payload" - }, - "String": { - "type": "string" } }, "cases": [ @@ -1611,11 +1907,20 @@ { "description": "Test cases for IgnoreQueryParamsInResponse operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "IgnoreQueryParamsInResponseOutput": { @@ -1635,6 +1940,7 @@ "cases": [ { "id": "RestJsonIgnoreQueryParamsInResponse", + "description": "Query parameters must be ignored when serializing the output\nof an operation. As of January 2021, server implementations\nare expected to respond with a JSON object regardless of\nif the output parameters are empty.", "given": { "name": "IgnoreQueryParamsInResponse", "http": { @@ -1645,37 +1951,18 @@ "output": { "shape": "IgnoreQueryParamsInResponseOutput" }, - "documentation": "

This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.

" + "documentation": "

This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.

", + "readonly": true + }, + "result": { + "baz": "bam" }, - "description": "Query parameters must be ignored when serializing the output\nof an operation. As of January 2021, server implementations\nare expected to respond with a JSON object regardless of\nif the output parameters are empty.", - "result": {}, "response": { "status_code": 200, "headers": { "Content-Type": "application/json" }, - "body": "{}" - } - }, - { - "id": "RestJsonIgnoreQueryParamsInResponseNoPayload", - "given": { - "name": "IgnoreQueryParamsInResponse", - "http": { - "method": "GET", - "requestUri": "/IgnoreQueryParamsInResponse", - "responseCode": 200 - }, - "output": { - "shape": "IgnoreQueryParamsInResponseOutput" - }, - "documentation": "

This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.

" - }, - "description": "This test is similar to RestJsonIgnoreQueryParamsInResponse,\nbut it ensures that clients gracefully handle responses from\nthe server that do not serialize an empty JSON object.", - "result": {}, - "response": { - "status_code": 200, - "body": "" + "body": "{\"baz\":\"bam\"}" } } ] @@ -1683,13 +1970,56 @@ { "description": "Test cases for InputAndOutputWithHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "InputAndOutputWithHeadersIO": { "type": "structure", "members": { @@ -1785,39 +2115,18 @@ } } }, - "String": { - "type": "string" - }, "Integer": { "type": "integer", "box": true }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Boolean": { - "type": "boolean", + "IntegerEnum": { + "type": "integer", "box": true }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } - }, - "StringSet": { + "IntegerEnumList": { "type": "list", "member": { - "shape": "String" + "shape": "IntegerEnum" } }, "IntegerList": { @@ -1826,51 +2135,39 @@ "shape": "Integer" } }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Long": { + "type": "long", + "box": true }, - "TimestampList": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "String" } }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "FooEnumList": { + "StringSet": { "type": "list", "member": { - "shape": "FooEnum" + "shape": "String" } }, - "IntegerEnum": { - "type": "integer", - "box": true + "Timestamp": { + "type": "timestamp" }, - "IntegerEnumList": { + "TimestampList": { "type": "list", "member": { - "shape": "IntegerEnum" + "shape": "Timestamp" } - }, - "Timestamp": { - "type": "timestamp" } }, "cases": [ { "id": "RestJsonInputAndOutputWithStringHeaders", + "description": "Tests responses with string header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1883,7 +2180,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with string header bindings", "result": { "headerString": "Hello", "headerStringList": [ @@ -1900,14 +2196,15 @@ "response": { "status_code": 200, "headers": { - "X-String": "Hello", "X-StringList": "a, b, c", + "X-String": "Hello", "X-StringSet": "a, b, c" } } }, { "id": "RestJsonInputAndOutputWithQuotedStringHeaders", + "description": "Tests responses with string list header bindings that require quoting", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1920,7 +2217,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with string list header bindings that require quoting", "result": { "headerStringList": [ "b,c", @@ -1937,6 +2233,7 @@ }, { "id": "RestJsonInputAndOutputWithNumericHeaders", + "description": "Tests responses with numeric header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1949,7 +2246,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with numeric header bindings", "result": { "headerByte": 1, "headerShort": 123, @@ -1966,18 +2262,19 @@ "response": { "status_code": 200, "headers": { + "X-Integer": "123", + "X-Short": "123", "X-Byte": "1", + "X-Long": "123", "X-Double": "1.1", "X-Float": "1.1", - "X-Integer": "123", - "X-IntegerList": "1, 2, 3", - "X-Long": "123", - "X-Short": "123" + "X-IntegerList": "1, 2, 3" } } }, { "id": "RestJsonInputAndOutputWithBooleanHeaders", + "description": "Tests responses with boolean header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1990,7 +2287,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with boolean header bindings", "result": { "headerTrueBool": true, "headerFalseBool": false, @@ -2003,14 +2299,15 @@ "response": { "status_code": 200, "headers": { + "X-BooleanList": "true, false, true", "X-Boolean1": "true", - "X-Boolean2": "false", - "X-BooleanList": "true, false, true" + "X-Boolean2": "false" } } }, { "id": "RestJsonInputAndOutputWithTimestampHeaders", + "description": "Tests responses with timestamp header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2023,7 +2320,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with timestamp header bindings", "result": { "headerTimestampList": [ 1576540098, @@ -2039,6 +2335,7 @@ }, { "id": "RestJsonInputAndOutputWithEnumHeaders", + "description": "Tests responses with enum header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2051,7 +2348,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with enum header bindings", "result": { "headerEnum": "Foo", "headerEnumList": [ @@ -2063,13 +2359,14 @@ "response": { "status_code": 200, "headers": { - "X-Enum": "Foo", - "X-EnumList": "Foo, Bar, Baz" + "X-EnumList": "Foo, Bar, Baz", + "X-Enum": "Foo" } } }, { "id": "RestJsonInputAndOutputWithIntEnumHeaders", + "description": "Tests responses with intEnum header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2082,7 +2379,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with intEnum header bindings", "result": { "headerIntegerEnum": 1, "headerIntegerEnumList": [ @@ -2094,13 +2390,14 @@ "response": { "status_code": 200, "headers": { - "X-IntegerEnum": "1", - "X-IntegerEnumList": "1, 2, 3" + "X-IntegerEnumList": "1, 2, 3", + "X-IntegerEnum": "1" } } }, { "id": "RestJsonSupportsNaNFloatHeaderOutputs", + "description": "Supports handling NaN float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2113,7 +2410,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling NaN float header values.", "result": { "headerFloat": "NaN", "headerDouble": "NaN" @@ -2121,13 +2417,14 @@ "response": { "status_code": 200, "headers": { - "X-Double": "NaN", - "X-Float": "NaN" + "X-Float": "NaN", + "X-Double": "NaN" } } }, { "id": "RestJsonSupportsInfinityFloatHeaderOutputs", + "description": "Supports handling Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2140,7 +2437,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling Infinity float header values.", "result": { "headerFloat": "Infinity", "headerDouble": "Infinity" @@ -2148,13 +2444,14 @@ "response": { "status_code": 200, "headers": { - "X-Double": "Infinity", - "X-Float": "Infinity" + "X-Float": "Infinity", + "X-Double": "Infinity" } } }, { "id": "RestJsonSupportsNegativeInfinityFloatHeaderOutputs", + "description": "Supports handling -Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -2167,7 +2464,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling -Infinity float header values.", "result": { "headerFloat": "-Infinity", "headerDouble": "-Infinity" @@ -2175,8 +2471,8 @@ "response": { "status_code": 200, "headers": { - "X-Double": "-Infinity", - "X-Float": "-Infinity" + "X-Float": "-Infinity", + "X-Double": "-Infinity" } } } @@ -2185,13 +2481,25 @@ { "description": "Test cases for JsonBlobs operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "JsonBlobsInputOutput": { "type": "structure", "members": { @@ -2199,14 +2507,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RestJsonJsonBlobs", + "description": "Blobs are base64 encoded", "given": { "name": "JsonBlobs", "http": { @@ -2219,7 +2525,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Blobs are base64 encoded", "result": { "data": "value" }, @@ -2236,36 +2541,22 @@ { "description": "Test cases for JsonEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "JsonEnumsInputOutput": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -2282,12 +2573,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -2297,6 +2582,35 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "JsonEnumsInputOutput": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } + }, "String": { "type": "string" } @@ -2304,6 +2618,7 @@ "cases": [ { "id": "RestJsonJsonEnums", + "description": "Serializes simple scalar properties", "given": { "name": "JsonEnums", "http": { @@ -2317,7 +2632,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -2348,36 +2662,22 @@ { "description": "Test cases for JsonIntEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "JsonIntEnumsInputOutput": { - "type": "structure", - "members": { - "integerEnum1": { - "shape": "IntegerEnum" - }, - "integerEnum2": { - "shape": "IntegerEnum" - }, - "integerEnum3": { - "shape": "IntegerEnum" - }, - "integerEnumList": { - "shape": "IntegerEnumList" - }, - "integerEnumSet": { - "shape": "IntegerEnumSet" - }, - "integerEnumMap": { - "shape": "IntegerEnumMap" - } - } - }, "IntegerEnum": { "type": "integer", "box": true @@ -2388,12 +2688,6 @@ "shape": "IntegerEnum" } }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, "IntegerEnumMap": { "type": "map", "key": { @@ -2403,6 +2697,35 @@ "shape": "IntegerEnum" } }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "JsonIntEnumsInputOutput": { + "type": "structure", + "members": { + "integerEnum1": { + "shape": "IntegerEnum" + }, + "integerEnum2": { + "shape": "IntegerEnum" + }, + "integerEnum3": { + "shape": "IntegerEnum" + }, + "integerEnumList": { + "shape": "IntegerEnumList" + }, + "integerEnumSet": { + "shape": "IntegerEnumSet" + }, + "integerEnumMap": { + "shape": "IntegerEnumMap" + } + } + }, "String": { "type": "string" } @@ -2410,6 +2733,7 @@ "cases": [ { "id": "RestJsonJsonIntEnums", + "description": "Serializes intEnums as integers", "given": { "name": "JsonIntEnums", "http": { @@ -2423,7 +2747,6 @@ "documentation": "

This example serializes intEnums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes intEnums as integers", "result": { "integerEnum1": 1, "integerEnum2": 2, @@ -2455,13 +2778,68 @@ { "description": "Test cases for JsonLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, "JsonListsInputOutput": { "type": "structure", "members": { @@ -2495,55 +2873,28 @@ } } }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } - }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } - }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "BooleanList": { + "NestedStringList": { "type": "list", "member": { - "shape": "Boolean" - } + "shape": "StringList" + }, + "documentation": "

A list of lists of strings.

" }, - "TimestampList": { - "type": "list", - "member": { - "shape": "Timestamp" - } + "String": { + "type": "string" }, - "FooEnumList": { + "StringList": { "type": "list", "member": { - "shape": "FooEnum" + "shape": "String" } }, - "IntegerEnumList": { + "StringSet": { "type": "list", "member": { - "shape": "IntegerEnum" + "shape": "String" } }, - "NestedStringList": { - "type": "list", - "member": { - "shape": "StringList" - }, - "documentation": "

A list of lists of strings.

" - }, "StructureList": { "type": "list", "member": { @@ -2563,38 +2914,20 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } } }, "cases": [ { "id": "RestJsonLists", + "description": "Serializes JSON lists", "given": { "name": "JsonLists", "http": { @@ -2608,7 +2941,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal JSON lists.
  2. Normal JSON sets.
  3. JSON lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes JSON lists", "result": { "stringList": [ "foo", @@ -2669,6 +3001,7 @@ }, { "id": "RestJsonListsEmpty", + "description": "Serializes empty JSON lists", "given": { "name": "JsonLists", "http": { @@ -2682,7 +3015,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal JSON lists.
  2. Normal JSON sets.
  3. JSON lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes empty JSON lists", "result": { "stringList": [] }, @@ -2699,40 +3031,33 @@ { "description": "Test cases for JsonMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "JsonMapsInputOutput": { - "type": "structure", - "members": { - "denseStructMap": { - "shape": "DenseStructMap" - }, - "denseNumberMap": { - "shape": "DenseNumberMap" - }, - "denseBooleanMap": { - "shape": "DenseBooleanMap" - }, - "denseStringMap": { - "shape": "DenseStringMap" - }, - "denseSetMap": { - "shape": "DenseSetMap" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "DenseStructMap": { + "DenseBooleanMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "GreetingStruct" + "shape": "Boolean" } }, "DenseNumberMap": { @@ -2744,13 +3069,13 @@ "shape": "Integer" } }, - "DenseBooleanMap": { + "DenseSetMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "Boolean" + "shape": "StringSet" } }, "DenseStringMap": { @@ -2762,44 +3087,61 @@ "shape": "String" } }, - "DenseSetMap": { + "DenseStructMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "StringSet" + "shape": "GreetingStruct" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } } }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, "Integer": { "type": "integer", "box": true }, - "GreetingStruct": { + "JsonMapsInputOutput": { "type": "structure", "members": { - "hi": { - "shape": "String" + "denseStructMap": { + "shape": "DenseStructMap" + }, + "denseNumberMap": { + "shape": "DenseNumberMap" + }, + "denseBooleanMap": { + "shape": "DenseBooleanMap" + }, + "denseStringMap": { + "shape": "DenseStringMap" + }, + "denseSetMap": { + "shape": "DenseSetMap" } } - } - }, - "cases": [ + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + } + }, + "cases": [ { "id": "RestJsonJsonMaps", + "description": "Deserializes JSON maps", "given": { "name": "JsonMaps", "http": { @@ -2812,7 +3154,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Deserializes JSON maps", "result": { "denseStructMap": { "foo": { @@ -2833,6 +3174,7 @@ }, { "id": "RestJsonDeserializesZeroValuesInMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "given": { "name": "JsonMaps", "http": { @@ -2845,7 +3187,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "result": { "denseNumberMap": { "x": 0 @@ -2864,38 +3205,7 @@ }, { "id": "RestJsonDeserializesDenseSetMap", - "given": { - "name": "JsonMaps", - "http": { - "method": "POST", - "requestUri": "/JsonMaps", - "responseCode": 200 - }, - "output": { - "shape": "JsonMapsInputOutput" - }, - "documentation": "

The example tests basic map serialization.

" - }, "description": "A response that contains a dense map of sets.", - "result": { - "denseSetMap": { - "x": [], - "y": [ - "a", - "b" - ] - } - }, - "response": { - "status_code": 200, - "headers": { - "Content-Type": "application/json" - }, - "body": "{\n \"denseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"]\n }\n}" - } - }, - { - "id": "RestJsonDeserializesDenseSetMapAndSkipsNull", "given": { "name": "JsonMaps", "http": { @@ -2908,7 +3218,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Clients SHOULD tolerate seeing a null value in a dense map, and they SHOULD\ndrop the null key-value pair.", "result": { "denseSetMap": { "x": [], @@ -2923,7 +3232,7 @@ "headers": { "Content-Type": "application/json" }, - "body": "{\n \"denseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"],\n \"z\": null\n }\n}" + "body": "{\n \"denseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"]\n }\n}" } } ] @@ -2931,13 +3240,34 @@ { "description": "Test cases for JsonTimestamps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, "JsonTimestampsInputOutput": { "type": "structure", "members": { @@ -2964,37 +3294,26 @@ } } }, - "Timestamp": { - "type": "timestamp" - }, "SyntheticTimestamp_date_time": { "type": "timestamp", "timestampFormat": "iso8601" }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, "SyntheticTimestamp_epoch_seconds": { "type": "timestamp", "timestampFormat": "unixTimestamp" }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, "SyntheticTimestamp_http_date": { "type": "timestamp", "timestampFormat": "rfc822" }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" + "Timestamp": { + "type": "timestamp" } }, "cases": [ { "id": "RestJsonJsonTimestamps", + "description": "Tests how normal timestamps are serialized", "given": { "name": "JsonTimestamps", "http": { @@ -3007,7 +3326,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Tests how normal timestamps are serialized", "result": { "normal": 1398796238 }, @@ -3021,6 +3339,7 @@ }, { "id": "RestJsonJsonTimestampsWithDateTimeFormat", + "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "given": { "name": "JsonTimestamps", "http": { @@ -3033,7 +3352,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "result": { "dateTime": 1398796238 }, @@ -3047,6 +3365,7 @@ }, { "id": "RestJsonJsonTimestampsWithDateTimeOnTargetFormat", + "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "given": { "name": "JsonTimestamps", "http": { @@ -3059,7 +3378,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "result": { "dateTimeOnTarget": 1398796238 }, @@ -3073,6 +3391,7 @@ }, { "id": "RestJsonJsonTimestampsWithEpochSecondsFormat", + "description": "Ensures that the timestampFormat of epoch-seconds works", "given": { "name": "JsonTimestamps", "http": { @@ -3085,7 +3404,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds works", "result": { "epochSeconds": 1398796238 }, @@ -3099,6 +3417,7 @@ }, { "id": "RestJsonJsonTimestampsWithEpochSecondsOnTargetFormat", + "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "given": { "name": "JsonTimestamps", "http": { @@ -3111,7 +3430,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "result": { "epochSecondsOnTarget": 1398796238 }, @@ -3125,6 +3443,7 @@ }, { "id": "RestJsonJsonTimestampsWithHttpDateFormat", + "description": "Ensures that the timestampFormat of http-date works", "given": { "name": "JsonTimestamps", "http": { @@ -3137,7 +3456,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date works", "result": { "httpDate": 1398796238 }, @@ -3151,6 +3469,7 @@ }, { "id": "RestJsonJsonTimestampsWithHttpDateOnTargetFormat", + "description": "Ensures that the timestampFormat of http-date on the target shape works", "given": { "name": "JsonTimestamps", "http": { @@ -3163,7 +3482,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date on the target shape works", "result": { "httpDateOnTarget": 1398796238 }, @@ -3180,21 +3498,50 @@ { "description": "Test cases for JsonUnions operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { - "UnionInputOutput": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "GreetingStruct": { "type": "structure", "members": { - "contents": { - "shape": "MyUnion" + "hi": { + "shape": "String" } - }, - "documentation": "

A shared structure that contains a single union member.

" + } + }, + "Integer": { + "type": "integer", + "box": true }, "MyUnion": { "type": "structure", @@ -3233,33 +3580,17 @@ "documentation": "

A union with a representative set of types for members.

", "union": true }, + "RenamedGreeting": { + "type": "structure", + "members": { + "salutation": { + "shape": "String" + } + } + }, "String": { "type": "string" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Blob": { - "type": "blob" - }, - "Timestamp": { - "type": "timestamp" - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "StringList": { "type": "list", "member": { @@ -3275,26 +3606,23 @@ "shape": "String" } }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } + "Timestamp": { + "type": "timestamp" }, - "RenamedGreeting": { + "UnionInputOutput": { "type": "structure", "members": { - "salutation": { - "shape": "String" + "contents": { + "shape": "MyUnion" } - } + }, + "documentation": "

A shared structure that contains a single union member.

" } }, "cases": [ { "id": "RestJsonDeserializeStringUnionValue", + "description": "Deserializes a string union value", "given": { "name": "JsonUnions", "http": { @@ -3308,7 +3636,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a string union value", "result": { "contents": { "stringValue": "foo" @@ -3324,6 +3651,7 @@ }, { "id": "RestJsonDeserializeBooleanUnionValue", + "description": "Deserializes a boolean union value", "given": { "name": "JsonUnions", "http": { @@ -3337,7 +3665,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a boolean union value", "result": { "contents": { "booleanValue": true @@ -3353,6 +3680,7 @@ }, { "id": "RestJsonDeserializeNumberUnionValue", + "description": "Deserializes a number union value", "given": { "name": "JsonUnions", "http": { @@ -3366,7 +3694,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a number union value", "result": { "contents": { "numberValue": 1 @@ -3382,6 +3709,7 @@ }, { "id": "RestJsonDeserializeBlobUnionValue", + "description": "Deserializes a blob union value", "given": { "name": "JsonUnions", "http": { @@ -3395,7 +3723,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a blob union value", "result": { "contents": { "blobValue": "foo" @@ -3411,6 +3738,7 @@ }, { "id": "RestJsonDeserializeTimestampUnionValue", + "description": "Deserializes a timestamp union value", "given": { "name": "JsonUnions", "http": { @@ -3424,7 +3752,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a timestamp union value", "result": { "contents": { "timestampValue": 1398796238 @@ -3440,6 +3767,7 @@ }, { "id": "RestJsonDeserializeEnumUnionValue", + "description": "Deserializes an enum union value", "given": { "name": "JsonUnions", "http": { @@ -3453,7 +3781,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes an enum union value", "result": { "contents": { "enumValue": "Foo" @@ -3469,6 +3796,7 @@ }, { "id": "RestJsonDeserializeListUnionValue", + "description": "Deserializes a list union value", "given": { "name": "JsonUnions", "http": { @@ -3482,7 +3810,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a list union value", "result": { "contents": { "listValue": [ @@ -3501,6 +3828,7 @@ }, { "id": "RestJsonDeserializeMapUnionValue", + "description": "Deserializes a map union value", "given": { "name": "JsonUnions", "http": { @@ -3514,7 +3842,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a map union value", "result": { "contents": { "mapValue": { @@ -3533,6 +3860,7 @@ }, { "id": "RestJsonDeserializeStructureUnionValue", + "description": "Deserializes a structure union value", "given": { "name": "JsonUnions", "http": { @@ -3546,7 +3874,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Deserializes a structure union value", "result": { "contents": { "structureValue": { @@ -3564,6 +3891,7 @@ }, { "id": "RestJsonDeserializeIgnoreType", + "description": "Ignores an unrecognized __type property", "given": { "name": "JsonUnions", "http": { @@ -3577,7 +3905,6 @@ "documentation": "

This operation uses unions for inputs and outputs.

", "idempotent": true }, - "description": "Ignores an unrecognized __type property", "result": { "contents": { "structureValue": { @@ -3598,13 +3925,25 @@ { "description": "Test cases for MediaTypeHeader operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "JsonValue": { + "type": "string" + }, "MediaTypeHeaderOutput": { "type": "structure", "members": { @@ -3615,14 +3954,12 @@ "locationName": "X-Json" } } - }, - "JsonValue": { - "type": "string" } }, "cases": [ { "id": "MediaTypeHeaderOutputBase64", + "description": "Headers that target strings with a mediaType are base64 encoded", "given": { "name": "MediaTypeHeader", "http": { @@ -3633,9 +3970,9 @@ "output": { "shape": "MediaTypeHeaderOutput" }, - "documentation": "

This example ensures that mediaType strings are base64 encoded in headers.

" + "documentation": "

This example ensures that mediaType strings are base64 encoded in headers.

", + "readonly": true }, - "description": "Headers that target strings with a mediaType are base64 encoded", "result": { "json": "true" }, @@ -3651,16 +3988,26 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonNoInputAndNoOutput", + "description": "When an operation does not define output, the service will respond\nwith an empty payload, and may optionally include the content-type\nheader.", "given": { "name": "NoInputAndNoOutput", "http": { @@ -3670,7 +4017,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "When an operation does not define output, the service will respond\nwith an empty payload, and may optionally include the content-type\nheader.", "result": {}, "response": { "status_code": 200, @@ -3682,11 +4028,20 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "NoInputAndOutputOutput": { @@ -3697,6 +4052,7 @@ "cases": [ { "id": "RestJsonNoInputAndOutputWithJson", + "description": "Operations that define output and do not bind anything to\nthe payload return a JSON object in the response.", "given": { "name": "NoInputAndOutput", "http": { @@ -3709,7 +4065,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "Operations that define output and do not bind anything to\nthe payload return a JSON object in the response.", "result": {}, "response": { "status_code": 200, @@ -3721,6 +4076,7 @@ }, { "id": "RestJsonNoInputAndOutputNoPayload", + "description": "This test is similar to RestJsonNoInputAndOutputWithJson, but\nit ensures that clients can gracefully handle responses that\nomit a JSON payload.", "given": { "name": "NoInputAndOutput", "http": { @@ -3733,7 +4089,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "This test is similar to RestJsonNoInputAndOutputWithJson, but\nit ensures that clients can gracefully handle responses that\nomit a JSON payload.", "result": {}, "response": { "status_code": 200, @@ -3745,11 +4100,20 @@ { "description": "Test cases for PostUnionWithJsonName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "PostUnionWithJsonNameOutput": { @@ -3763,6 +4127,9 @@ } } }, + "String": { + "type": "string" + }, "UnionWithJsonName": { "type": "structure", "members": { @@ -3779,14 +4146,12 @@ } }, "union": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "PostUnionWithJsonNameResponse1", + "description": "Tests that jsonName works with union members.", "given": { "name": "PostUnionWithJsonName", "http": { @@ -3799,7 +4164,6 @@ }, "documentation": "

This operation defines a union that uses jsonName on some members.

" }, - "description": "Tests that jsonName works with union members.", "result": { "value": { "foo": "hi" @@ -3815,6 +4179,7 @@ }, { "id": "PostUnionWithJsonNameResponse2", + "description": "Tests that jsonName works with union members.", "given": { "name": "PostUnionWithJsonName", "http": { @@ -3827,7 +4192,6 @@ }, "documentation": "

This operation defines a union that uses jsonName on some members.

" }, - "description": "Tests that jsonName works with union members.", "result": { "value": { "baz": "hi" @@ -3843,6 +4207,7 @@ }, { "id": "PostUnionWithJsonNameResponse3", + "description": "Tests that jsonName works with union members.", "given": { "name": "PostUnionWithJsonName", "http": { @@ -3855,7 +4220,6 @@ }, "documentation": "

This operation defines a union that uses jsonName on some members.

" }, - "description": "Tests that jsonName works with union members.", "result": { "value": { "bar": "hi" @@ -3874,11 +4238,20 @@ { "description": "Test cases for RecursiveShapes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { "RecursiveShapesInputOutput": { @@ -3900,9 +4273,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveShapesInputOutputNested2": { "type": "structure", "members": { @@ -3913,11 +4283,15 @@ "shape": "RecursiveShapesInputOutputNested1" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RestJsonRecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveShapes", "http": { @@ -3931,7 +4305,6 @@ "documentation": "

Recursive shapes

", "idempotent": true }, - "description": "Serializes recursive structures", "result": { "nested": { "foo": "Foo1", @@ -3959,13 +4332,42 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarPropertiesInputOutput": { "type": "structure", "members": { @@ -4006,31 +4408,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "RestJsonSimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarProperties", "http": { @@ -4043,7 +4426,6 @@ }, "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "foo": "Foo", "stringValue": "string", @@ -4059,14 +4441,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/json", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/json" }, "body": "{\n \"stringValue\": \"string\",\n \"trueBooleanValue\": true,\n \"falseBooleanValue\": false,\n \"byteValue\": 1,\n \"shortValue\": 2,\n \"integerValue\": 3,\n \"longValue\": 4,\n \"floatValue\": 5.5,\n \"DoubleDribble\": 6.5\n}" } }, { "id": "RestJsonDoesntDeserializeNullStructureValues", + "description": "Rest Json should not deserialize null structure values", "given": { "name": "SimpleScalarProperties", "http": { @@ -4079,7 +4462,6 @@ }, "idempotent": true }, - "description": "Rest Json should not deserialize null structure values", "result": {}, "response": { "status_code": 200, @@ -4091,6 +4473,7 @@ }, { "id": "RestJsonSupportsNaNFloatInputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -4103,7 +4486,6 @@ }, "idempotent": true }, - "description": "Supports handling NaN float values.", "result": { "floatValue": "NaN", "doubleValue": "NaN" @@ -4118,6 +4500,7 @@ }, { "id": "RestJsonSupportsInfinityFloatInputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -4130,7 +4513,6 @@ }, "idempotent": true }, - "description": "Supports handling Infinity float values.", "result": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -4145,6 +4527,7 @@ }, { "id": "RestJsonSupportsNegativeInfinityFloatInputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -4157,7 +4540,6 @@ }, "idempotent": true }, - "description": "Supports handling -Infinity float values.", "result": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -4172,16 +4554,424 @@ } ] }, + { + "description": "Test cases for SparseJsonLists operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "Integer": { + "type": "integer", + "box": true + }, + "SparseJsonListsInputOutput": { + "type": "structure", + "members": { + "sparseStringList": { + "shape": "SparseStringList" + }, + "sparseShortList": { + "shape": "SparseShortList" + } + } + }, + "SparseShortList": { + "type": "list", + "member": { + "shape": "Integer" + }, + "sparse": true + }, + "SparseStringList": { + "type": "list", + "member": { + "shape": "String" + }, + "sparse": true + }, + "String": { + "type": "string" + } + }, + "cases": [ + { + "id": "RestJsonSparseListsSerializeNull", + "description": "Serializes null values in sparse lists", + "given": { + "name": "SparseJsonLists", + "http": { + "method": "PUT", + "requestUri": "/SparseJsonLists", + "responseCode": 200 + }, + "output": { + "shape": "SparseJsonListsInputOutput" + }, + "idempotent": true + }, + "result": { + "sparseStringList": [ + null, + "hi" + ], + "sparseShortList": [ + null, + 2 + ] + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"sparseStringList\": [\n null,\n \"hi\"\n ],\n \"sparseShortList\": [\n null,\n 2\n ]\n}" + } + } + ] + }, + { + "description": "Test cases for SparseJsonMaps operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", + "protocol": "rest-json", + "protocols": [ + "rest-json" + ], + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" + }, + "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "SparseBooleanMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Boolean" + }, + "sparse": true + }, + "SparseJsonMapsInputOutput": { + "type": "structure", + "members": { + "sparseStructMap": { + "shape": "SparseStructMap" + }, + "sparseNumberMap": { + "shape": "SparseNumberMap" + }, + "sparseBooleanMap": { + "shape": "SparseBooleanMap" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + }, + "sparseSetMap": { + "shape": "SparseSetMap" + } + } + }, + "SparseNumberMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Integer" + }, + "sparse": true + }, + "SparseSetMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "StringSet" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "SparseStructMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "GreetingStruct" + }, + "sparse": true + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "RestJsonSparseJsonMaps", + "description": "Deserializes JSON maps", + "given": { + "name": "SparseJsonMaps", + "http": { + "method": "POST", + "requestUri": "/SparseJsonMaps", + "responseCode": 200 + }, + "output": { + "shape": "SparseJsonMapsInputOutput" + }, + "documentation": "

This example tests sparse map serialization.

" + }, + "result": { + "sparseStructMap": { + "foo": { + "hi": "there" + }, + "baz": { + "hi": "bye" + } + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"sparseStructMap\": {\n \"foo\": {\n \"hi\": \"there\"\n },\n \"baz\": {\n \"hi\": \"bye\"\n }\n }\n}" + } + }, + { + "id": "RestJsonDeserializesSparseNullMapValues", + "description": "Deserializes null JSON map values", + "given": { + "name": "SparseJsonMaps", + "http": { + "method": "POST", + "requestUri": "/SparseJsonMaps", + "responseCode": 200 + }, + "output": { + "shape": "SparseJsonMapsInputOutput" + }, + "documentation": "

This example tests sparse map serialization.

" + }, + "result": { + "sparseBooleanMap": { + "x": null + }, + "sparseNumberMap": { + "x": null + }, + "sparseStringMap": { + "x": null + }, + "sparseStructMap": { + "x": null + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"sparseBooleanMap\": {\n \"x\": null\n },\n \"sparseNumberMap\": {\n \"x\": null\n },\n \"sparseStringMap\": {\n \"x\": null\n },\n \"sparseStructMap\": {\n \"x\": null\n }\n}" + } + }, + { + "id": "RestJsonDeserializesZeroValuesInSparseMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", + "given": { + "name": "SparseJsonMaps", + "http": { + "method": "POST", + "requestUri": "/SparseJsonMaps", + "responseCode": 200 + }, + "output": { + "shape": "SparseJsonMapsInputOutput" + }, + "documentation": "

This example tests sparse map serialization.

" + }, + "result": { + "sparseNumberMap": { + "x": 0 + }, + "sparseBooleanMap": { + "x": false + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"sparseNumberMap\": {\n \"x\": 0\n },\n \"sparseBooleanMap\": {\n \"x\": false\n }\n}" + } + }, + { + "id": "RestJsonDeserializesSparseSetMap", + "description": "A response that contains a sparse map of sets", + "given": { + "name": "SparseJsonMaps", + "http": { + "method": "POST", + "requestUri": "/SparseJsonMaps", + "responseCode": 200 + }, + "output": { + "shape": "SparseJsonMapsInputOutput" + }, + "documentation": "

This example tests sparse map serialization.

" + }, + "result": { + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ] + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"sparseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"]\n }\n}" + } + }, + { + "id": "RestJsonDeserializesSparseSetMapAndRetainsNull", + "description": "A response that contains a sparse map of sets.", + "given": { + "name": "SparseJsonMaps", + "http": { + "method": "POST", + "requestUri": "/SparseJsonMaps", + "responseCode": 200 + }, + "output": { + "shape": "SparseJsonMapsInputOutput" + }, + "documentation": "

This example tests sparse map serialization.

" + }, + "result": { + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ], + "z": null + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/json" + }, + "body": "{\n \"sparseSetMap\": {\n \"x\": [],\n \"y\": [\"a\", \"b\"],\n \"z\": null\n }\n}" + } + } + ] + }, { "description": "Test cases for TimestampFormatHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "TimestampFormatHeadersIO": { "type": "structure", "members": { @@ -4221,38 +5011,12 @@ "locationName": "X-targetDateTime" } } - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "Timestamp": { - "type": "timestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RestJsonTimestampFormatHeaders", + "description": "Tests how timestamp response headers are serialized", "given": { "name": "TimestampFormatHeaders", "http": { @@ -4265,7 +5029,6 @@ }, "documentation": "

This example tests how timestamp request and response headers are serialized.

" }, - "description": "Tests how timestamp response headers are serialized", "result": { "memberEpochSeconds": 1576540098, "memberHttpDate": 1576540098, @@ -4278,13 +5041,13 @@ "response": { "status_code": 200, "headers": { - "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberDateTime": "2019-12-16T23:48:18Z", - "X-memberEpochSeconds": "1576540098", + "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-targetDateTime": "2019-12-16T23:48:18Z", "X-targetEpochSeconds": "1576540098", - "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT" + "X-memberEpochSeconds": "1576540098", + "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT" } } } @@ -4293,16 +5056,26 @@ { "description": "Test cases for UnitInputAndOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restjson", "protocol": "rest-json", "protocols": [ "rest-json" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestJson", + "serviceId": "Rest Json Protocol", + "signatureVersion": "v4", + "signingName": "RestJson", + "uid": "rest-json-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "RestJsonUnitInputAndOutputNoOutput", + "description": "When an operation defines Unit output, the service will respond\nwith an empty payload, and may optionally include the content-type\nheader.", "given": { "name": "UnitInputAndOutput", "http": { @@ -4312,7 +5085,6 @@ }, "documentation": "

This test is similar to NoInputAndNoOutput, but uses explicit Unit types.

" }, - "description": "When an operation defines Unit output, the service will respond\nwith an empty payload, and may optionally include the content-type\nheader.", "result": {}, "response": { "status_code": 200, diff --git a/tests/unit/botocore/protocols/output/rest-xml.json b/tests/unit/botocore/protocols/output/rest-xml.json index dd07adca2289..84c8c9ea3062 100644 --- a/tests/unit/botocore/protocols/output/rest-xml.json +++ b/tests/unit/botocore/protocols/output/rest-xml.json @@ -1,13 +1,21 @@ - [ { "description": "Test cases for BodyWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "BodyWithXmlNameInputOutput": { @@ -35,6 +43,7 @@ "cases": [ { "id": "BodyWithXmlName", + "description": "Serializes a payload using a wrapper name based on the xmlName", "given": { "name": "BodyWithXmlName", "http": { @@ -48,7 +57,6 @@ "documentation": "

The following example serializes a body that uses an XML name, changing the wrapper name.

", "idempotent": true }, - "description": "Serializes a payload using a wrapper name based on the xmlName", "result": { "nested": { "name": "Phreddy" @@ -67,13 +75,26 @@ { "description": "Test cases for DatetimeOffsets operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "DatetimeOffsetsOutput": { "type": "structure", "members": { @@ -81,15 +102,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RestXmlDateTimeWithNegativeOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -101,7 +119,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -115,6 +132,7 @@ }, { "id": "RestXmlDateTimeWithPositiveOffset", + "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "given": { "name": "DatetimeOffsets", "http": { @@ -126,7 +144,6 @@ "shape": "DatetimeOffsetsOutput" } }, - "description": "Ensures that clients can correctly parse datetime (timestamps) with offsets", "result": { "datetime": 1576540098 }, @@ -143,11 +160,20 @@ { "description": "Test cases for EmptyInputAndEmptyOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "EmptyInputAndEmptyOutputOutput": { @@ -158,6 +184,7 @@ "cases": [ { "id": "EmptyInputAndEmptyOutput", + "description": "Empty output serializes no payload", "given": { "name": "EmptyInputAndEmptyOutput", "http": { @@ -170,7 +197,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.

" }, - "description": "Empty output serializes no payload", "result": {}, "response": { "status_code": 200, @@ -182,11 +208,20 @@ { "description": "Test cases for FlattenedXmlMap operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "FlattenedXmlMapResponse": { @@ -198,15 +233,6 @@ } } }, - "FooEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "FooEnum" - } - }, "FooEnum": { "type": "string", "enum": [ @@ -217,6 +243,15 @@ "0" ] }, + "FooEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "FooEnum" + } + }, "String": { "type": "string" } @@ -224,6 +259,7 @@ "cases": [ { "id": "FlattenedXmlMap", + "description": "Serializes flattened XML maps in responses", "given": { "name": "FlattenedXmlMap", "http": { @@ -236,7 +272,6 @@ }, "documentation": "

Flattened maps

" }, - "description": "Serializes flattened XML maps in responses", "result": { "myMap": { "foo": "Foo", @@ -256,23 +291,22 @@ { "description": "Test cases for FlattenedXmlMapWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "FlattenedXmlMapWithXmlNameResponse": { - "type": "structure", - "members": { - "myMap": { - "shape": "FlattenedXmlMapWithXmlNameInputOutputMap", - "flattened": true, - "locationName": "KVP" - } - } - }, "FlattenedXmlMapWithXmlNameInputOutputMap": { "type": "map", "key": { @@ -284,6 +318,16 @@ "locationName": "V" } }, + "FlattenedXmlMapWithXmlNameResponse": { + "type": "structure", + "members": { + "myMap": { + "shape": "FlattenedXmlMapWithXmlNameInputOutputMap", + "flattened": true, + "locationName": "KVP" + } + } + }, "String": { "type": "string" } @@ -291,6 +335,7 @@ "cases": [ { "id": "FlattenedXmlMapWithXmlName", + "description": "Serializes flattened XML maps in responses that have xmlName on members", "given": { "name": "FlattenedXmlMapWithXmlName", "http": { @@ -303,7 +348,6 @@ }, "documentation": "

Flattened maps with @xmlName

" }, - "description": "Serializes flattened XML maps in responses that have xmlName on members", "result": { "myMap": { "a": "A", @@ -323,11 +367,20 @@ { "description": "Test cases for FlattenedXmlMapWithXmlNamespace operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "FlattenedXmlMapWithXmlNamespaceOutput": { @@ -361,6 +414,7 @@ "cases": [ { "id": "RestXmlFlattenedXmlMapWithXmlNamespace", + "description": "Serializes flattened XML maps in responses that have xmlNamespace and xmlName on members", "given": { "name": "FlattenedXmlMapWithXmlNamespace", "http": { @@ -373,7 +427,6 @@ }, "documentation": "

Flattened maps with @xmlNamespace and @xmlName

" }, - "description": "Serializes flattened XML maps in responses that have xmlNamespace and xmlName on members", "result": { "myMap": { "a": "A", @@ -393,13 +446,26 @@ { "description": "Test cases for FractionalSeconds operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "FractionalSecondsOutput": { "type": "structure", "members": { @@ -407,15 +473,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RestXmlDateTimeWithFractionalSeconds", + "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "given": { "name": "FractionalSeconds", "http": { @@ -427,7 +490,6 @@ "shape": "FractionalSecondsOutput" } }, - "description": "Ensures that clients can correctly parse datetime timestamps with fractional seconds", "result": { "datetime": 9.46845296123E8 }, @@ -444,11 +506,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "GreetingWithErrorsOutput": { @@ -468,6 +539,7 @@ "cases": [ { "id": "GreetingWithErrors", + "description": "Ensures that operations with errors successfully know how to deserialize the successful response", "given": { "name": "GreetingWithErrors", "http": { @@ -481,7 +553,6 @@ "documentation": "

This operation has three possible return values:

  1. A successful response in the form of GreetingWithErrorsOutput
  2. An InvalidGreeting error.
  3. A BadRequest error.

Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the

", "idempotent": true }, - "description": "Ensures that operations with errors successfully know how to deserialize the successful response", "result": { "greeting": "Hello" }, @@ -498,11 +569,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "InvalidGreeting": { @@ -526,6 +606,7 @@ "cases": [ { "id": "InvalidGreetingError", + "description": "Parses simple XML errors", "given": { "name": "GreetingWithErrors", "http": { @@ -541,7 +622,6 @@ } ] }, - "description": "Parses simple XML errors", "errorCode": "InvalidGreeting", "errorMessage": "Hi", "error": { @@ -560,11 +640,20 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "ComplexError": { @@ -589,9 +678,6 @@ }, "exception": true }, - "String": { - "type": "string" - }, "ComplexNestedErrorData": { "type": "structure", "members": { @@ -599,6 +685,9 @@ "shape": "String" } } + }, + "String": { + "type": "string" } }, "cases": [ @@ -638,14 +727,104 @@ } ] }, + { + "description": "Test cases for HttpEmptyPrefixHeaders operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", + "protocol": "rest-xml", + "protocols": [ + "rest-xml" + ], + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" + }, + "shapes": { + "HttpEmptyPrefixHeadersOutput": { + "type": "structure", + "members": { + "prefixHeaders": { + "shape": "StringMap", + "location": "headers", + "locationName": "" + }, + "specificHeader": { + "shape": "String", + "location": "header", + "locationName": "hello" + } + } + }, + "String": { + "type": "string" + }, + "StringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "HttpEmptyPrefixHeadersResponseClient", + "description": "Deserializes all response headers with the same for prefix and specific", + "given": { + "name": "HttpEmptyPrefixHeaders", + "http": { + "method": "GET", + "requestUri": "/HttpEmptyPrefixHeaders", + "responseCode": 200 + }, + "output": { + "shape": "HttpEmptyPrefixHeadersOutput" + }, + "documentation": "

Clients that perform this test extract all headers from the response.

", + "readonly": true + }, + "result": { + "prefixHeaders": { + "x-foo": "Foo", + "hello": "There" + }, + "specificHeader": "There" + }, + "response": { + "status_code": 200, + "headers": { + "x-foo": "Foo", + "hello": "There" + } + } + } + ] + }, { "description": "Test cases for HttpEnumPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "EnumPayloadInput": { @@ -694,13 +873,25 @@ { "description": "Test cases for HttpPayloadTraits operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "HttpPayloadTraitsInputOutput": { "type": "structure", "members": { @@ -717,14 +908,12 @@ }, "String": { "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "HttpPayloadTraitsWithBlob", + "description": "Serializes a blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -737,7 +926,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no XML document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes a blob in the HTTP payload", "result": { "foo": "Foo", "blob": "blobby blob blob" @@ -752,6 +940,7 @@ }, { "id": "HttpPayloadTraitsWithNoBlobBody", + "description": "Serializes an empty blob in the HTTP payload", "given": { "name": "HttpPayloadTraits", "http": { @@ -764,7 +953,6 @@ }, "documentation": "

This example serializes a blob shape in the payload.

In this example, no XML document is synthesized because the payload is not a structure or a union type.

" }, - "description": "Serializes an empty blob in the HTTP payload", "result": { "foo": "Foo" }, @@ -781,11 +969,20 @@ { "description": "Test cases for HttpPayloadWithMemberXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithMemberXmlNameInputOutput": { @@ -814,6 +1011,7 @@ "cases": [ { "id": "HttpPayloadWithMemberXmlName", + "description": "Serializes a structure in the payload using a wrapper name based on member xmlName", "given": { "name": "HttpPayloadWithMemberXmlName", "http": { @@ -827,7 +1025,6 @@ "documentation": "

The following example serializes a payload that uses an XML name on the member, changing the wrapper name.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper name based on member xmlName", "result": { "nested": { "name": "Phreddy" @@ -846,11 +1043,20 @@ { "description": "Test cases for HttpPayloadWithStructure operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithStructureInputOutput": { @@ -881,6 +1087,7 @@ "cases": [ { "id": "HttpPayloadWithStructure", + "description": "Serializes a structure in the payload", "given": { "name": "HttpPayloadWithStructure", "http": { @@ -894,7 +1101,6 @@ "documentation": "

This example serializes a structure in the payload.

Note that serializing a structure changes the wrapper element name to match the targeted structure.

", "idempotent": true }, - "description": "Serializes a structure in the payload", "result": { "nested": { "greeting": "hello", @@ -914,11 +1120,20 @@ { "description": "Test cases for HttpPayloadWithUnion operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithUnionInputOutput": { @@ -931,6 +1146,9 @@ }, "payload": "nested" }, + "String": { + "type": "string" + }, "UnionPayload": { "type": "structure", "members": { @@ -939,14 +1157,12 @@ } }, "union": true - }, - "String": { - "type": "string" } }, "cases": [ { "id": "RestXmlHttpPayloadWithUnion", + "description": "Serializes a union in the payload.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -960,7 +1176,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "Serializes a union in the payload.", "result": { "nested": { "greeting": "hello" @@ -976,6 +1191,7 @@ }, { "id": "RestXmlHttpPayloadWithUnsetUnion", + "description": "No payload is sent if the union has no value.", "given": { "name": "HttpPayloadWithUnion", "http": { @@ -989,7 +1205,6 @@ "documentation": "

This example serializes a union in the payload.

", "idempotent": true }, - "description": "No payload is sent if the union has no value.", "result": {}, "response": { "status_code": 200, @@ -1004,11 +1219,20 @@ { "description": "Test cases for HttpPayloadWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithXmlNameInputOutput": { @@ -1037,6 +1261,7 @@ "cases": [ { "id": "HttpPayloadWithXmlName", + "description": "Serializes a structure in the payload using a wrapper name based on xmlName", "given": { "name": "HttpPayloadWithXmlName", "http": { @@ -1050,7 +1275,6 @@ "documentation": "

The following example serializes a payload that uses an XML name, changing the wrapper name.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper name based on xmlName", "result": { "nested": { "name": "Phreddy" @@ -1069,11 +1293,20 @@ { "description": "Test cases for HttpPayloadWithXmlNamespace operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithXmlNamespaceInputOutput": { @@ -1102,6 +1335,7 @@ "cases": [ { "id": "HttpPayloadWithXmlNamespace", + "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "given": { "name": "HttpPayloadWithXmlNamespace", "http": { @@ -1115,7 +1349,6 @@ "documentation": "

The following example serializes a payload that uses an XML namespace.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "result": { "nested": { "name": "Phreddy" @@ -1134,11 +1367,20 @@ { "description": "Test cases for HttpPayloadWithXmlNamespaceAndPrefix operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpPayloadWithXmlNamespaceAndPrefixInputOutput": { @@ -1170,6 +1412,7 @@ "cases": [ { "id": "HttpPayloadWithXmlNamespaceAndPrefix", + "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "given": { "name": "HttpPayloadWithXmlNamespaceAndPrefix", "http": { @@ -1183,7 +1426,6 @@ "documentation": "

The following example serializes a payload that uses an XML namespace.

", "idempotent": true }, - "description": "Serializes a structure in the payload using a wrapper with an XML namespace", "result": { "nested": { "name": "Phreddy" @@ -1202,13 +1444,31 @@ { "description": "Test cases for HttpPrefixHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "FooPrefixHeaders": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + }, "HttpPrefixHeadersInputOutput": { "type": "structure", "members": { @@ -1226,20 +1486,12 @@ }, "String": { "type": "string" - }, - "FooPrefixHeaders": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "String" - } } }, "cases": [ { "id": "HttpPrefixHeadersArePresent", + "description": "Adds headers by prefix", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1250,9 +1502,9 @@ "output": { "shape": "HttpPrefixHeadersInputOutput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "Adds headers by prefix", "result": { "foo": "Foo", "fooMap": { @@ -1264,14 +1516,15 @@ "status_code": 200, "headers": { "x-foo": "Foo", - "x-foo-abc": "Abc value", - "x-foo-def": "Def value" + "x-foo-def": "Def value", + "x-foo-abc": "Abc value" }, "body": "" } }, { "id": "HttpPrefixHeadersAreNotPresent", + "description": "No prefix headers are serialized because the value is empty", "given": { "name": "HttpPrefixHeaders", "http": { @@ -1282,9 +1535,9 @@ "output": { "shape": "HttpPrefixHeadersInputOutput" }, - "documentation": "

This examples adds headers to the input of a request and response by prefix.

" + "documentation": "

This examples adds headers to the input of a request and response by prefix.

", + "readonly": true }, - "description": "No prefix headers are serialized because the value is empty", "result": { "foo": "Foo", "fooMap": {} @@ -1302,11 +1555,20 @@ { "description": "Test cases for HttpResponseCode operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "HttpResponseCodeOutput": { @@ -1326,6 +1588,7 @@ "cases": [ { "id": "RestXmlHttpResponseCode", + "description": "Binds the http response code to an output structure.", "given": { "name": "HttpResponseCode", "http": { @@ -1338,7 +1601,6 @@ }, "idempotent": true }, - "description": "Binds the http response code to an output structure.", "result": { "Status": 201 }, @@ -1355,13 +1617,25 @@ { "description": "Test cases for HttpStringPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "StringPayloadInput": { "type": "structure", "members": { @@ -1370,9 +1644,6 @@ } }, "payload": "payload" - }, - "String": { - "type": "string" } }, "cases": [ @@ -1405,11 +1676,20 @@ { "description": "Test cases for IgnoreQueryParamsInResponse operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "IgnoreQueryParamsInResponseOutput": { @@ -1429,6 +1709,7 @@ "cases": [ { "id": "IgnoreQueryParamsInResponse", + "description": "Query parameters must be ignored when serializing the output of an operation", "given": { "name": "IgnoreQueryParamsInResponse", "http": { @@ -1439,9 +1720,9 @@ "output": { "shape": "IgnoreQueryParamsInResponseOutput" }, - "documentation": "

This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.

" + "documentation": "

This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.

", + "readonly": true }, - "description": "Query parameters must be ignored when serializing the output of an operation", "result": { "baz": "bam" }, @@ -1458,13 +1739,56 @@ { "description": "Test cases for InputAndOutputWithHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "BooleanList": { + "type": "list", + "member": { + "shape": "Boolean" + } + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] + }, + "FooEnumList": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "InputAndOutputWithHeadersIO": { "type": "structure", "members": { @@ -1550,28 +1874,22 @@ } } }, - "String": { - "type": "string" - }, "Integer": { "type": "integer", "box": true }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } }, - "Double": { - "type": "double", + "Long": { + "type": "long", "box": true }, - "Boolean": { - "type": "boolean", - "box": true + "String": { + "type": "string" }, "StringList": { "type": "list", @@ -1585,47 +1903,20 @@ "shape": "String" } }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } - }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Timestamp": { + "type": "timestamp" }, "TimestampList": { "type": "list", "member": { "shape": "Timestamp" } - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, - "FooEnumList": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, - "Timestamp": { - "type": "timestamp" } }, "cases": [ { "id": "InputAndOutputWithStringHeaders", + "description": "Tests responses with string header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1638,7 +1929,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with string header bindings", "result": { "headerString": "Hello", "headerStringList": [ @@ -1655,8 +1945,8 @@ "response": { "status_code": 200, "headers": { - "X-String": "Hello", "X-StringList": "a, b, c", + "X-String": "Hello", "X-StringSet": "a, b, c" }, "body": "" @@ -1664,6 +1954,7 @@ }, { "id": "InputAndOutputWithNumericHeaders", + "description": "Tests responses with numeric header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1676,7 +1967,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with numeric header bindings", "result": { "headerByte": 1, "headerShort": 123, @@ -1693,19 +1983,20 @@ "response": { "status_code": 200, "headers": { + "X-Integer": "123", + "X-Short": "123", "X-Byte": "1", + "X-Long": "123", "X-Double": "1.1", "X-Float": "1.1", - "X-Integer": "123", - "X-IntegerList": "1, 2, 3", - "X-Long": "123", - "X-Short": "123" + "X-IntegerList": "1, 2, 3" }, "body": "" } }, { "id": "InputAndOutputWithBooleanHeaders", + "description": "Tests responses with boolean header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1718,7 +2009,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with boolean header bindings", "result": { "headerTrueBool": true, "headerFalseBool": false, @@ -1731,15 +2021,16 @@ "response": { "status_code": 200, "headers": { + "X-BooleanList": "true, false, true", "X-Boolean1": "true", - "X-Boolean2": "false", - "X-BooleanList": "true, false, true" + "X-Boolean2": "false" }, "body": "" } }, { "id": "InputAndOutputWithTimestampHeaders", + "description": "Tests responses with timestamp header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1752,7 +2043,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with timestamp header bindings", "result": { "headerTimestampList": [ 1576540098, @@ -1769,6 +2059,7 @@ }, { "id": "InputAndOutputWithEnumHeaders", + "description": "Tests responses with enum header bindings", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1781,7 +2072,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Tests responses with enum header bindings", "result": { "headerEnum": "Foo", "headerEnumList": [ @@ -1793,14 +2083,15 @@ "response": { "status_code": 200, "headers": { - "X-Enum": "Foo", - "X-EnumList": "Foo, Bar, Baz" + "X-EnumList": "Foo, Bar, Baz", + "X-Enum": "Foo" }, "body": "" } }, { "id": "RestXmlSupportsNaNFloatHeaderOutputs", + "description": "Supports handling NaN float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1813,7 +2104,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling NaN float header values.", "result": { "headerFloat": "NaN", "headerDouble": "NaN" @@ -1821,14 +2111,15 @@ "response": { "status_code": 200, "headers": { - "X-Double": "NaN", - "X-Float": "NaN" + "X-Float": "NaN", + "X-Double": "NaN" }, "body": "" } }, { "id": "RestXmlSupportsInfinityFloatHeaderOutputs", + "description": "Supports handling Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1841,7 +2132,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling Infinity float header values.", "result": { "headerFloat": "Infinity", "headerDouble": "Infinity" @@ -1849,14 +2139,15 @@ "response": { "status_code": 200, "headers": { - "X-Double": "Infinity", - "X-Float": "Infinity" + "X-Float": "Infinity", + "X-Double": "Infinity" }, "body": "" } }, { "id": "RestXmlSupportsNegativeInfinityFloatHeaderOutputs", + "description": "Supports handling -Infinity float header values.", "given": { "name": "InputAndOutputWithHeaders", "http": { @@ -1869,7 +2160,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.

" }, - "description": "Supports handling -Infinity float header values.", "result": { "headerFloat": "-Infinity", "headerDouble": "-Infinity" @@ -1877,8 +2167,8 @@ "response": { "status_code": 200, "headers": { - "X-Double": "-Infinity", - "X-Float": "-Infinity" + "X-Float": "-Infinity", + "X-Double": "-Infinity" }, "body": "" } @@ -1888,52 +2178,61 @@ { "description": "Test cases for NestedXmlMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "NestedXmlMapsResponse": { - "type": "structure", - "members": { - "nestedMap": { - "shape": "NestedMap" - }, - "flatNestedMap": { - "shape": "NestedMap", - "flattened": true - } - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "NestedMap": { + "FooEnumMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "FooEnumMap" + "shape": "FooEnum" } }, - "FooEnumMap": { + "NestedMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "FooEnum" + "shape": "FooEnumMap" } }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] + "NestedXmlMapsResponse": { + "type": "structure", + "members": { + "nestedMap": { + "shape": "NestedMap" + }, + "flatNestedMap": { + "shape": "NestedMap", + "flattened": true + } + } }, "String": { "type": "string" @@ -1942,6 +2241,7 @@ "cases": [ { "id": "NestedXmlMapResponse", + "description": "Tests responses with nested maps.", "given": { "name": "NestedXmlMaps", "http": { @@ -1953,7 +2253,6 @@ "shape": "NestedXmlMapsResponse" } }, - "description": "Tests responses with nested maps.", "result": { "nestedMap": { "foo": { @@ -1971,6 +2270,7 @@ }, { "id": "FlatNestedXmlMapResponse", + "description": "Tests responses with nested flat maps. Since maps can only be\nflattened when they're structure members, only the outer map is flat.", "given": { "name": "NestedXmlMaps", "http": { @@ -1982,7 +2282,6 @@ "shape": "NestedXmlMapsResponse" } }, - "description": "Tests responses with nested flat maps. Since maps can only be\nflattened when they're structure members, only the outer map is flat.", "result": { "flatNestedMap": { "foo": { @@ -2003,40 +2302,49 @@ { "description": "Test cases for NestedXmlMapWithXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "NestedXmlMapWithXmlNameInputOutput": { - "type": "structure", - "members": { - "nestedXmlMapWithXmlNameMap": { - "shape": "NestedXmlMapWithXmlNameMap" - } - } - }, - "NestedXmlMapWithXmlNameMap": { + "NestedXmlMapWithXmlNameInnerMap": { "type": "map", "key": { "shape": "String", - "locationName": "OuterKey" + "locationName": "InnerKey" }, "value": { - "shape": "NestedXmlMapWithXmlNameInnerMap" + "shape": "String", + "locationName": "InnerValue" } }, - "NestedXmlMapWithXmlNameInnerMap": { + "NestedXmlMapWithXmlNameMap": { "type": "map", "key": { "shape": "String", - "locationName": "InnerKey" + "locationName": "OuterKey" }, "value": { - "shape": "String", - "locationName": "InnerValue" + "shape": "NestedXmlMapWithXmlNameInnerMap" + } + }, + "NestedXmlMapWithXmlNameResponse": { + "type": "structure", + "members": { + "nestedXmlMapWithXmlNameMap": { + "shape": "NestedXmlMapWithXmlNameMap" + } } }, "String": { @@ -2046,6 +2354,7 @@ "cases": [ { "id": "NestedXmlMapWithXmlNameDeserializes", + "description": "Serializes nested XML maps in responses that have xmlName on members", "given": { "name": "NestedXmlMapWithXmlName", "http": { @@ -2054,11 +2363,10 @@ "responseCode": 200 }, "output": { - "shape": "NestedXmlMapWithXmlNameInputOutput" + "shape": "NestedXmlMapWithXmlNameResponse" }, "documentation": "

Nested Xml Maps with key/values with @xmlName

" }, - "description": "Serializes nested XML maps in responses that have xmlName on members", "result": { "nestedXmlMapWithXmlNameMap": { "foo": { @@ -2076,7 +2384,7 @@ "headers": { "Content-Type": "application/xml" }, - "body": " \n \n \n foo\n \n \n bar\n Baz\n \n \n fizz\n Buzz\n \n \n \n \n qux\n \n \n foobar\n Bar\n \n \n fizzbuzz\n Buzz\n \n \n \n \n \n" + "body": " \n \n \n foo\n \n \n bar\n Baz\n \n \n fizz\n Buzz\n \n \n \n \n qux\n \n \n foobar\n Bar\n \n \n fizzbuzz\n Buzz\n \n \n \n \n \n" } } ] @@ -2084,16 +2392,26 @@ { "description": "Test cases for NoInputAndNoOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": {}, "cases": [ { "id": "NoInputAndNoOutput", + "description": "No output serializes no payload", "given": { "name": "NoInputAndNoOutput", "http": { @@ -2103,7 +2421,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.

" }, - "description": "No output serializes no payload", "result": {}, "response": { "status_code": 200, @@ -2115,11 +2432,20 @@ { "description": "Test cases for NoInputAndOutput operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { "NoInputAndOutputOutput": { @@ -2130,6 +2456,7 @@ "cases": [ { "id": "NoInputAndOutput", + "description": "Empty output serializes no payload", "given": { "name": "NoInputAndOutput", "http": { @@ -2142,7 +2469,6 @@ }, "documentation": "

The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.

" }, - "description": "Empty output serializes no payload", "result": {}, "response": { "status_code": 200, @@ -2154,21 +2480,22 @@ { "description": "Test cases for RecursiveShapes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "RecursiveShapesResponse": { - "type": "structure", - "members": { - "nested": { - "shape": "RecursiveShapesInputOutputNested1" - } - } - }, "RecursiveShapesInputOutputNested1": { "type": "structure", "members": { @@ -2180,9 +2507,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveShapesInputOutputNested2": { "type": "structure", "members": { @@ -2193,11 +2517,23 @@ "shape": "RecursiveShapesInputOutputNested1" } } + }, + "RecursiveShapesResponse": { + "type": "structure", + "members": { + "nested": { + "shape": "RecursiveShapesInputOutputNested1" + } + } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveShapes", "http": { @@ -2211,7 +2547,6 @@ "documentation": "

Recursive shapes

", "idempotent": true }, - "description": "Serializes recursive structures", "result": { "nested": { "foo": "Foo1", @@ -2239,13 +2574,42 @@ { "description": "Test cases for SimpleScalarProperties operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarPropertiesResponse": { "type": "structure", "members": { @@ -2286,31 +2650,12 @@ }, "String": { "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "SimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarProperties", "http": { @@ -2323,7 +2668,6 @@ }, "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "foo": "Foo", "stringValue": "string", @@ -2339,14 +2683,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" }, "body": "\n string\n true\n false\n 1\n 2\n 3\n 4\n 5.5\n 6.5\n\n" } }, { "id": "SimpleScalarPropertiesComplexEscapes", + "description": "Serializes string with escaping.\n\nThis validates the three escape types: literal, decimal and hexadecimal. It also validates that unescaping properly\nhandles the case where unescaping an & produces a newly formed escape sequence (this should not be re-unescaped).\n\nServers may produce different output, this test is designed different unescapes clients must handle\n", "given": { "name": "SimpleScalarProperties", "http": { @@ -2359,7 +2704,6 @@ }, "idempotent": true }, - "description": "Serializes string with escaping.\n\nThis validates the three escape types: literal, decimal and hexadecimal. It also validates that unescaping properly\nhandles the case where unescaping an & produces a newly formed escape sequence (this should not be re-unescaped).\n\nServers may produce different output, this test is designed different unescapes clients must handle\n", "result": { "foo": "Foo", "stringValue": "escaped data: <\r\n" @@ -2367,14 +2711,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" }, "body": "\n escaped data: &lt; \n\n" } }, { "id": "SimpleScalarPropertiesWithEscapedCharacter", + "description": "Serializes string with escaping", "given": { "name": "SimpleScalarProperties", "http": { @@ -2387,7 +2732,6 @@ }, "idempotent": true }, - "description": "Serializes string with escaping", "result": { "foo": "Foo", "stringValue": "" @@ -2395,14 +2739,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" }, "body": "\n <string>\n\n" } }, { "id": "SimpleScalarPropertiesWithXMLPreamble", + "description": "Serializes simple scalar properties with xml preamble, comments and CDATA", "given": { "name": "SimpleScalarProperties", "http": { @@ -2415,7 +2760,6 @@ }, "idempotent": true }, - "description": "Serializes simple scalar properties with xml preamble, comments and CDATA", "result": { "foo": "Foo", "stringValue": "string" @@ -2423,14 +2767,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" }, "body": "\n\n \n string\n \n\n" } }, { "id": "SimpleScalarPropertiesWithWhiteSpace", + "description": "Serializes string containing white space", "given": { "name": "SimpleScalarProperties", "http": { @@ -2443,7 +2788,6 @@ }, "idempotent": true }, - "description": "Serializes string containing white space", "result": { "foo": "Foo", "stringValue": " string with white space " @@ -2451,14 +2795,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" }, "body": "\n\n string with white space \n\n" } }, { "id": "SimpleScalarPropertiesPureWhiteSpace", + "description": "Serializes string containing white space", "given": { "name": "SimpleScalarProperties", "http": { @@ -2471,7 +2816,6 @@ }, "idempotent": true }, - "description": "Serializes string containing white space", "result": { "foo": "Foo", "stringValue": " " @@ -2479,14 +2823,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/xml", - "X-Foo": "Foo" + "X-Foo": "Foo", + "Content-Type": "application/xml" }, "body": "\n\n \n\n" } }, { "id": "RestXmlSupportsNaNFloatOutputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2499,7 +2844,6 @@ }, "idempotent": true }, - "description": "Supports handling NaN float values.", "result": { "floatValue": "NaN", "doubleValue": "NaN" @@ -2514,6 +2858,7 @@ }, { "id": "RestXmlSupportsInfinityFloatOutputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2526,7 +2871,6 @@ }, "idempotent": true }, - "description": "Supports handling Infinity float values.", "result": { "floatValue": "Infinity", "doubleValue": "Infinity" @@ -2541,6 +2885,7 @@ }, { "id": "RestXmlSupportsNegativeInfinityFloatOutputs", + "description": "Supports handling -Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -2553,7 +2898,6 @@ }, "idempotent": true }, - "description": "Supports handling -Infinity float values.", "result": { "floatValue": "-Infinity", "doubleValue": "-Infinity" @@ -2571,13 +2915,49 @@ { "description": "Test cases for TimestampFormatHeaders operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "TimestampFormatHeadersIO": { "type": "structure", "members": { @@ -2617,38 +2997,12 @@ "locationName": "X-targetDateTime" } } - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "Timestamp": { - "type": "timestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "TimestampFormatHeaders", + "description": "Tests how timestamp response headers are serialized", "given": { "name": "TimestampFormatHeaders", "http": { @@ -2661,7 +3015,6 @@ }, "documentation": "

The example tests how timestamp request and response headers are serialized.

" }, - "description": "Tests how timestamp response headers are serialized", "result": { "memberEpochSeconds": 1576540098, "memberHttpDate": 1576540098, @@ -2674,13 +3027,13 @@ "response": { "status_code": 200, "headers": { - "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberDateTime": "2019-12-16T23:48:18Z", - "X-memberEpochSeconds": "1576540098", + "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-memberHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT", "X-targetDateTime": "2019-12-16T23:48:18Z", "X-targetEpochSeconds": "1576540098", - "X-targetHttpDate": "Mon, 16 Dec 2019 23:48:18 GMT" + "X-memberEpochSeconds": "1576540098", + "X-defaultFormat": "Mon, 16 Dec 2019 23:48:18 GMT" }, "body": "" } @@ -2690,13 +3043,25 @@ { "description": "Test cases for XmlAttributes operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "XmlAttributesResponse": { "type": "structure", "members": { @@ -2709,14 +3074,12 @@ "xmlAttribute": true } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlAttributes", + "description": "Serializes simple scalar properties", "given": { "name": "XmlAttributes", "http": { @@ -2730,7 +3093,6 @@ "documentation": "

This example serializes an XML attributes on synthesized document.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "foo": "hi", "attr": "test" @@ -2745,16 +3107,110 @@ } ] }, + { + "description": "Test cases for XmlAttributesInMiddle operation", + "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", + "protocol": "rest-xml", + "protocols": [ + "rest-xml" + ], + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" + }, + "shapes": { + "String": { + "type": "string" + }, + "XmlAttributesInMiddlePayloadResponse": { + "type": "structure", + "members": { + "foo": { + "shape": "String" + }, + "attr": { + "shape": "String", + "locationName": "test", + "xmlAttribute": true + }, + "baz": { + "shape": "String" + } + } + }, + "XmlAttributesInMiddleResponse": { + "type": "structure", + "members": { + "payload": { + "shape": "XmlAttributesInMiddlePayloadResponse" + } + }, + "payload": "payload" + } + }, + "cases": [ + { + "id": "XmlAttributesInMiddle", + "description": "Deserializes XML attributes on a payload when the xmlAttribute trait targets a member in the middle of the member list", + "given": { + "name": "XmlAttributesInMiddle", + "http": { + "method": "PUT", + "requestUri": "/XmlAttributesInMiddle", + "responseCode": 200 + }, + "output": { + "shape": "XmlAttributesInMiddleResponse" + }, + "documentation": "

This example serializes an XML attribute on a payload when it's defined in the middle of the member list. This tests that implementations correctly write attributes immediately after the element start tag, which is critical for languages like C# where attribute writing must happen before child elements.

", + "idempotent": true + }, + "result": { + "payload": { + "foo": "Foo", + "attr": "attributeValue", + "baz": "Baz" + } + }, + "response": { + "status_code": 200, + "headers": { + "Content-Type": "application/xml" + }, + "body": "\n Foo\n Baz\n\n" + } + } + ] + }, { "description": "Test cases for XmlAttributesOnPayload operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "XmlAttributesOnPayloadResponse": { "type": "structure", "members": { @@ -2776,14 +3232,12 @@ "xmlAttribute": true } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlAttributesOnPayload", + "description": "Serializes simple scalar properties", "given": { "name": "XmlAttributesOnPayload", "http": { @@ -2797,7 +3251,6 @@ "documentation": "

This example serializes an XML attributes on a document targeted by httpPayload.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "payload": { "foo": "hi", @@ -2817,13 +3270,25 @@ { "description": "Test cases for XmlBlobs operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlBlobsResponse": { "type": "structure", "members": { @@ -2831,14 +3296,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "XmlBlobs", + "description": "Blobs are base64 encoded", "given": { "name": "XmlBlobs", "http": { @@ -2851,7 +3314,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Blobs are base64 encoded", "result": { "data": "value" }, @@ -2868,13 +3330,25 @@ { "description": "Test cases for XmlEmptyBlobs operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "Blob": { + "type": "blob" + }, "XmlEmptyBlobsResponse": { "type": "structure", "members": { @@ -2882,14 +3356,12 @@ "shape": "Blob" } } - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "XmlEmptyBlobs", + "description": "Empty blobs are deserialized as empty string", "given": { "name": "XmlEmptyBlobs", "http": { @@ -2902,7 +3374,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Empty blobs are deserialized as empty string", "result": { "data": "" }, @@ -2916,6 +3387,7 @@ }, { "id": "XmlEmptySelfClosedBlobs", + "description": "Empty self closed blobs are deserialized as empty string", "given": { "name": "XmlEmptyBlobs", "http": { @@ -2928,7 +3400,6 @@ }, "documentation": "

Blobs are base64 encoded

" }, - "description": "Empty self closed blobs are deserialized as empty string", "result": { "data": "" }, @@ -2945,112 +3416,82 @@ { "description": "Test cases for XmlEmptyLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlEmptyListsResponse": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - }, - "flattenedStructureList": { - "shape": "StructureList", - "flattened": true - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { - "type": "list", - "member": { - "shape": "Boolean" - } + "Integer": { + "type": "integer", + "box": true }, - "TimestampList": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "IntegerEnum" } }, - "FooEnumList": { + "IntegerList": { "type": "list", "member": { - "shape": "FooEnum" + "shape": "Integer" } }, - "IntegerEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" + }, + "ListWithNamespace": { + "type": "list", + "member": { + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -3066,20 +3507,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -3101,38 +3542,78 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlEmptyListsResponse": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + }, + "flattenedStructureList": { + "shape": "StructureList", + "flattened": true + } + } } }, "cases": [ { "id": "XmlEmptyLists", + "description": "Deserializes Empty XML lists", "given": { "name": "XmlEmptyLists", "http": { @@ -3145,7 +3626,6 @@ }, "idempotent": true }, - "description": "Deserializes Empty XML lists", "result": { "stringList": [], "stringSet": [] @@ -3163,13 +3643,33 @@ { "description": "Test cases for XmlEmptyMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "String": { + "type": "string" + }, "XmlEmptyMapsResponse": { "type": "structure", "members": { @@ -3186,22 +3686,12 @@ "value": { "shape": "GreetingStruct" } - }, - "GreetingStruct": { - "type": "structure", - "members": { - "hi": { - "shape": "String" - } - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlEmptyMaps", + "description": "Deserializes Empty XML maps", "given": { "name": "XmlEmptyMaps", "http": { @@ -3213,7 +3703,6 @@ "shape": "XmlEmptyMapsResponse" } }, - "description": "Deserializes Empty XML maps", "result": { "myMap": {} }, @@ -3227,6 +3716,7 @@ }, { "id": "XmlEmptySelfClosedMaps", + "description": "Deserializes Empty Self-closed XML maps", "given": { "name": "XmlEmptyMaps", "http": { @@ -3238,7 +3728,6 @@ "shape": "XmlEmptyMapsResponse" } }, - "description": "Deserializes Empty Self-closed XML maps", "result": { "myMap": {} }, @@ -3255,13 +3744,25 @@ { "description": "Test cases for XmlEmptyStrings operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "String": { + "type": "string" + }, "XmlEmptyStringsResponse": { "type": "structure", "members": { @@ -3269,14 +3770,12 @@ "shape": "String" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlEmptyStrings", + "description": "Deserializes xml empty strings", "given": { "name": "XmlEmptyStrings", "http": { @@ -3289,7 +3788,6 @@ }, "idempotent": true }, - "description": "Deserializes xml empty strings", "result": { "emptyString": "" }, @@ -3303,6 +3801,7 @@ }, { "id": "XmlEmptySelfClosedStrings", + "description": "Empty self closed string are deserialized as empty string", "given": { "name": "XmlEmptyStrings", "http": { @@ -3315,7 +3814,6 @@ }, "idempotent": true }, - "description": "Empty self closed string are deserialized as empty string", "result": { "emptyString": "" }, @@ -3332,36 +3830,22 @@ { "description": "Test cases for XmlEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlEnumsResponse": { - "type": "structure", - "members": { - "fooEnum1": { - "shape": "FooEnum" - }, - "fooEnum2": { - "shape": "FooEnum" - }, - "fooEnum3": { - "shape": "FooEnum" - }, - "fooEnumList": { - "shape": "FooEnumList" - }, - "fooEnumSet": { - "shape": "FooEnumSet" - }, - "fooEnumMap": { - "shape": "FooEnumMap" - } - } - }, "FooEnum": { "type": "string", "enum": [ @@ -3378,12 +3862,6 @@ "shape": "FooEnum" } }, - "FooEnumSet": { - "type": "list", - "member": { - "shape": "FooEnum" - } - }, "FooEnumMap": { "type": "map", "key": { @@ -3393,13 +3871,43 @@ "shape": "FooEnum" } }, + "FooEnumSet": { + "type": "list", + "member": { + "shape": "FooEnum" + } + }, "String": { "type": "string" + }, + "XmlEnumsResponse": { + "type": "structure", + "members": { + "fooEnum1": { + "shape": "FooEnum" + }, + "fooEnum2": { + "shape": "FooEnum" + }, + "fooEnum3": { + "shape": "FooEnum" + }, + "fooEnumList": { + "shape": "FooEnumList" + }, + "fooEnumSet": { + "shape": "FooEnumSet" + }, + "fooEnumMap": { + "shape": "FooEnumMap" + } + } } }, "cases": [ { "id": "XmlEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlEnums", "http": { @@ -3413,7 +3921,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "fooEnum1": "Foo", "fooEnum2": "0", @@ -3444,13 +3951,50 @@ { "description": "Test cases for XmlIntEnums operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "IntegerEnum" + } + }, + "IntegerEnumSet": { + "type": "list", + "member": { + "shape": "IntegerEnum" + } + }, + "String": { + "type": "string" + }, "XmlIntEnumsResponse": { "type": "structure", "members": { @@ -3473,39 +4017,12 @@ "shape": "IntegerEnumMap" } } - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "IntegerEnumList": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumSet": { - "type": "list", - "member": { - "shape": "IntegerEnum" - } - }, - "IntegerEnumMap": { - "type": "map", - "key": { - "shape": "String" - }, - "value": { - "shape": "IntegerEnum" - } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlIntEnums", + "description": "Serializes simple scalar properties", "given": { "name": "XmlIntEnums", "http": { @@ -3519,7 +4036,6 @@ "documentation": "

This example serializes enums as top level properties, in lists, sets, and maps.

", "idempotent": true }, - "description": "Serializes simple scalar properties", "result": { "intEnum1": 1, "intEnum2": 2, @@ -3550,112 +4066,82 @@ { "description": "Test cases for XmlLists operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlListsResponse": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "renamedListMembers": { - "shape": "RenamedListMembers", - "locationName": "renamed" - }, - "flattenedList": { - "shape": "RenamedListMembers", - "flattened": true - }, - "flattenedList2": { - "shape": "RenamedListMembers", - "flattened": true, - "locationName": "customName" - }, - "flattenedListWithMemberNamespace": { - "shape": "ListWithMemberNamespace", - "flattened": true - }, - "flattenedListWithNamespace": { - "shape": "ListWithNamespace", - "flattened": true - }, - "structureList": { - "shape": "StructureList", - "locationName": "myStructureList" - }, - "flattenedStructureList": { - "shape": "StructureList", - "flattened": true - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "StringList": { + "BooleanList": { "type": "list", "member": { - "shape": "String" + "shape": "Boolean" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, - "IntegerList": { + "FooEnumList": { "type": "list", "member": { - "shape": "Integer" + "shape": "FooEnum" } }, - "BooleanList": { + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, + "IntegerEnumList": { "type": "list", "member": { - "shape": "Boolean" + "shape": "IntegerEnum" } }, - "TimestampList": { + "IntegerList": { "type": "list", "member": { - "shape": "Timestamp" + "shape": "Integer" } }, - "FooEnumList": { + "ListWithMemberNamespace": { "type": "list", "member": { - "shape": "FooEnum" - } + "shape": "String", + "xmlNamespace": "https://xml-member.example.com" + }, + "xmlNamespace": "https://xml-list.example.com" }, - "IntegerEnumList": { + "ListWithNamespace": { "type": "list", "member": { - "shape": "IntegerEnum" - } + "shape": "String" + }, + "xmlNamespace": "https://xml-list.example.com" }, "NestedStringList": { "type": "list", @@ -3671,20 +4157,20 @@ "locationName": "item" } }, - "ListWithMemberNamespace": { + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "String", - "xmlNamespace": "https://xml-member.example.com" - }, - "xmlNamespace": "https://xml-list.example.com" + "shape": "String" + } }, - "ListWithNamespace": { + "StringSet": { "type": "list", "member": { "shape": "String" - }, - "xmlNamespace": "https://xml-list.example.com" + } }, "StructureList": { "type": "list", @@ -3706,38 +4192,78 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } }, - "Integer": { - "type": "integer", - "box": true + "XmlListsResponse": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "renamedListMembers": { + "shape": "RenamedListMembers", + "locationName": "renamed" + }, + "flattenedList": { + "shape": "RenamedListMembers", + "flattened": true + }, + "flattenedList2": { + "shape": "RenamedListMembers", + "flattened": true, + "locationName": "customName" + }, + "flattenedListWithMemberNamespace": { + "shape": "ListWithMemberNamespace", + "flattened": true + }, + "flattenedListWithNamespace": { + "shape": "ListWithNamespace", + "flattened": true + }, + "structureList": { + "shape": "StructureList", + "locationName": "myStructureList" + }, + "flattenedStructureList": { + "shape": "StructureList", + "flattened": true + } + } } }, "cases": [ { "id": "XmlLists", + "description": "Tests for XML list serialization", "given": { "name": "XmlLists", "http": { @@ -3751,7 +4277,6 @@ "documentation": "

This test case serializes XML lists for the following cases for both input and output:

  1. Normal XML lists.
  2. Normal XML sets.
  3. XML lists of lists.
  4. XML lists with @xmlName on its members
  5. Flattened XML lists.
  6. Flattened XML lists with @xmlName.
  7. Flattened XML lists with @xmlNamespace.
  8. Lists of structures.
  9. Flattened XML list of structures
", "idempotent": true }, - "description": "Tests for XML list serialization", "result": { "stringList": [ "foo", @@ -3845,21 +4370,33 @@ { "description": "Test cases for XmlMaps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlMapsResponse": { + "GreetingStruct": { "type": "structure", "members": { - "myMap": { - "shape": "XmlMapsInputOutputMap" + "hi": { + "shape": "String" } } }, + "String": { + "type": "string" + }, "XmlMapsInputOutputMap": { "type": "map", "key": { @@ -3869,21 +4406,19 @@ "shape": "GreetingStruct" } }, - "GreetingStruct": { + "XmlMapsResponse": { "type": "structure", "members": { - "hi": { - "shape": "String" + "myMap": { + "shape": "XmlMapsInputOutputMap" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlMaps", + "description": "Tests for XML map serialization", "given": { "name": "XmlMaps", "http": { @@ -3896,7 +4431,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Tests for XML map serialization", "result": { "myMap": { "foo": { @@ -3920,21 +4454,33 @@ { "description": "Test cases for XmlMapsXmlName operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlMapsXmlNameResponse": { + "GreetingStruct": { "type": "structure", "members": { - "myMap": { - "shape": "XmlMapsXmlNameInputOutputMap" + "hi": { + "shape": "String" } } }, + "String": { + "type": "string" + }, "XmlMapsXmlNameInputOutputMap": { "type": "map", "key": { @@ -3946,21 +4492,19 @@ "locationName": "Setting" } }, - "GreetingStruct": { + "XmlMapsXmlNameResponse": { "type": "structure", "members": { - "hi": { - "shape": "String" + "myMap": { + "shape": "XmlMapsXmlNameInputOutputMap" } } - }, - "String": { - "type": "string" } }, "cases": [ { "id": "XmlMapsXmlName", + "description": "Serializes XML lists", "given": { "name": "XmlMapsXmlName", "http": { @@ -3972,7 +4516,6 @@ "shape": "XmlMapsXmlNameResponse" } }, - "description": "Serializes XML lists", "result": { "myMap": { "foo": { @@ -3996,22 +4539,24 @@ { "description": "Test cases for XmlMapWithXmlNamespace operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlMapWithXmlNamespaceResponse": { - "type": "structure", - "members": { - "myMap": { - "shape": "XmlMapWithXmlNamespaceInputOutputMap", - "locationName": "KVP", - "xmlNamespace": "https://the-member.example.com" - } - } + "String": { + "type": "string" }, "XmlMapWithXmlNamespaceInputOutputMap": { "type": "map", @@ -4026,13 +4571,21 @@ "xmlNamespace": "https://the-value.example.com" } }, - "String": { - "type": "string" + "XmlMapWithXmlNamespaceResponse": { + "type": "structure", + "members": { + "myMap": { + "shape": "XmlMapWithXmlNamespaceInputOutputMap", + "locationName": "KVP", + "xmlNamespace": "https://the-member.example.com" + } + } } }, "cases": [ { "id": "RestXmlXmlMapWithXmlNamespace", + "description": "Serializes XML maps in responses that have xmlNamespace and xmlName on members", "given": { "name": "XmlMapWithXmlNamespace", "http": { @@ -4045,7 +4598,6 @@ }, "documentation": "

Maps with @xmlNamespace and @xmlName

" }, - "description": "Serializes XML maps in responses that have xmlNamespace and xmlName on members", "result": { "myMap": { "a": "A", @@ -4065,21 +4617,24 @@ { "description": "Test cases for XmlNamespaces operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlNamespacesResponse": { - "type": "structure", - "members": { - "nested": { - "shape": "XmlNamespaceNested" - } - }, - "xmlNamespace": "http://foo.com" + "String": { + "type": "string" }, "XmlNamespaceNested": { "type": "structure", @@ -4098,20 +4653,27 @@ }, "xmlNamespace": "http://foo.com" }, - "String": { - "type": "string" - }, "XmlNamespacedList": { "type": "list", "member": { "shape": "String", "xmlNamespace": "http://bux.com" } + }, + "XmlNamespacesResponse": { + "type": "structure", + "members": { + "nested": { + "shape": "XmlNamespaceNested" + } + }, + "xmlNamespace": "http://foo.com" } }, "cases": [ { "id": "XmlNamespaces", + "description": "Serializes XML namespaces", "given": { "name": "XmlNamespaces", "http": { @@ -4123,7 +4685,6 @@ "shape": "XmlNamespacesResponse" } }, - "description": "Serializes XML namespaces", "result": { "nested": { "foo": "Foo", @@ -4146,13 +4707,49 @@ { "description": "Test cases for XmlTimestamps operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "EpochSeconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "HttpDate": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "SyntheticTimestamp_date_time": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "SyntheticTimestamp_epoch_seconds": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "SyntheticTimestamp_http_date": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "Timestamp": { + "type": "timestamp" + }, "XmlTimestampsResponse": { "type": "structure", "members": { @@ -4178,38 +4775,12 @@ "shape": "HttpDate" } } - }, - "Timestamp": { - "type": "timestamp" - }, - "SyntheticTimestamp_date_time": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" - }, - "SyntheticTimestamp_epoch_seconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "EpochSeconds": { - "type": "timestamp", - "timestampFormat": "unixTimestamp" - }, - "SyntheticTimestamp_http_date": { - "type": "timestamp", - "timestampFormat": "rfc822" - }, - "HttpDate": { - "type": "timestamp", - "timestampFormat": "rfc822" } }, "cases": [ { "id": "XmlTimestamps", + "description": "Tests how normal timestamps are serialized", "given": { "name": "XmlTimestamps", "http": { @@ -4222,7 +4793,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Tests how normal timestamps are serialized", "result": { "normal": 1398796238 }, @@ -4236,6 +4806,7 @@ }, { "id": "XmlTimestampsWithDateTimeFormat", + "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -4248,7 +4819,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time works like normal timestamps", "result": { "dateTime": 1398796238 }, @@ -4262,6 +4832,7 @@ }, { "id": "XmlTimestampsWithDateTimeOnTargetFormat", + "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "given": { "name": "XmlTimestamps", "http": { @@ -4274,7 +4845,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of date-time on the target shape works like normal timestamps", "result": { "dateTimeOnTarget": 1398796238 }, @@ -4288,6 +4858,7 @@ }, { "id": "XmlTimestampsWithEpochSecondsFormat", + "description": "Ensures that the timestampFormat of epoch-seconds works", "given": { "name": "XmlTimestamps", "http": { @@ -4300,7 +4871,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds works", "result": { "epochSeconds": 1398796238 }, @@ -4314,6 +4884,7 @@ }, { "id": "XmlTimestampsWithEpochSecondsOnTargetFormat", + "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -4326,7 +4897,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of epoch-seconds on the target shape works", "result": { "epochSecondsOnTarget": 1398796238 }, @@ -4340,6 +4910,7 @@ }, { "id": "XmlTimestampsWithHttpDateFormat", + "description": "Ensures that the timestampFormat of http-date works", "given": { "name": "XmlTimestamps", "http": { @@ -4352,7 +4923,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date works", "result": { "httpDate": 1398796238 }, @@ -4366,6 +4936,7 @@ }, { "id": "XmlTimestampsWithHttpDateOnTargetFormat", + "description": "Ensures that the timestampFormat of http-date on the target shape works", "given": { "name": "XmlTimestamps", "http": { @@ -4378,7 +4949,6 @@ }, "documentation": "

This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.

" }, - "description": "Ensures that the timestampFormat of http-date on the target shape works", "result": { "httpDateOnTarget": 1398796238 }, @@ -4395,22 +4965,46 @@ { "description": "Test cases for XmlUnions operation", "metadata": { + "apiVersion": "2019-12-16", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "restxml", "protocol": "rest-xml", "protocols": [ "rest-xml" ], - "apiVersion": "2019-12-16" + "serviceFullName": "RestXml", + "serviceId": "Rest Xml Protocol", + "signatureVersion": "v4", + "signingName": "RestXml", + "uid": "rest-xml-protocol-2019-12-16" }, "shapes": { - "XmlUnionsResponse": { - "type": "structure", - "members": { - "unionValue": { - "shape": "XmlUnionShape" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "XmlUnionShape": { + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, + "String": { + "type": "string" + }, + "XmlNestedUnionStruct": { "type": "structure", "members": { "stringValue": { @@ -4436,40 +5030,10 @@ }, "doubleValue": { "shape": "Double" - }, - "unionValue": { - "shape": "XmlUnionShape" - }, - "structValue": { - "shape": "XmlNestedUnionStruct" } - }, - "union": true - }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Double": { - "type": "double", - "box": true + } }, - "XmlNestedUnionStruct": { + "XmlUnionShape": { "type": "structure", "members": { "stringValue": { @@ -4495,6 +5059,21 @@ }, "doubleValue": { "shape": "Double" + }, + "unionValue": { + "shape": "XmlUnionShape" + }, + "structValue": { + "shape": "XmlNestedUnionStruct" + } + }, + "union": true + }, + "XmlUnionsResponse": { + "type": "structure", + "members": { + "unionValue": { + "shape": "XmlUnionShape" } } } @@ -4502,6 +5081,7 @@ "cases": [ { "id": "XmlUnionsWithStructMember", + "description": "Serializes union struct member", "given": { "name": "XmlUnions", "http": { @@ -4514,7 +5094,6 @@ }, "idempotent": true }, - "description": "Serializes union struct member", "result": { "unionValue": { "structValue": { @@ -4539,6 +5118,7 @@ }, { "id": "XmlUnionsWithStringMember", + "description": "Serializes union string member", "given": { "name": "XmlUnions", "http": { @@ -4551,7 +5131,6 @@ }, "idempotent": true }, - "description": "Serializes union string member", "result": { "unionValue": { "stringValue": "some string" @@ -4567,6 +5146,7 @@ }, { "id": "XmlUnionsWithBooleanMember", + "description": "Serializes union boolean member", "given": { "name": "XmlUnions", "http": { @@ -4579,7 +5159,6 @@ }, "idempotent": true }, - "description": "Serializes union boolean member", "result": { "unionValue": { "booleanValue": true @@ -4595,6 +5174,7 @@ }, { "id": "XmlUnionsWithUnionMember", + "description": "Serializes union member", "given": { "name": "XmlUnions", "http": { @@ -4607,7 +5187,6 @@ }, "idempotent": true }, - "description": "Serializes union member", "result": { "unionValue": { "unionValue": { diff --git a/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor-query-compatible.json b/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor-query-compatible.json index 8a9e9ee30feb..8371b298f9d8 100644 --- a/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor-query-compatible.json +++ b/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor-query-compatible.json @@ -36,6 +36,7 @@ "cases": [ { "id": "QueryCompatibleRpcV2CborNoCustomCodeError", + "description": "Parses simple RpcV2 CBOR errors with no query error code", "given": { "name": "QueryCompatibleOperation", "http": { @@ -49,7 +50,6 @@ } ] }, - "description": "Parses simple RpcV2 CBOR errors with no query error code", "errorCode": "NoCustomCodeError", "errorMessage": "Hi", "error": { @@ -58,8 +58,8 @@ "response": { "status_code": 400, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "uQACZl9fdHlwZXgtYXdzLnByb3RvY29sdGVzdHMucnBjdjJjYm9yI05vQ3VzdG9tQ29kZUVycm9yZ21lc3NhZ2ViSGk=" } @@ -108,6 +108,7 @@ "cases": [ { "id": "QueryCompatibleRpcV2CborCustomCodeError", + "description": "Parses simple RpcV2 CBOR errors with query error code", "given": { "name": "QueryCompatibleOperation", "http": { @@ -121,7 +122,6 @@ } ] }, - "description": "Parses simple RpcV2 CBOR errors with query error code", "errorCode": "Customized", "errorMessage": "Hi", "error": { @@ -130,9 +130,9 @@ "response": { "status_code": 400, "headers": { - "Content-Type": "application/cbor", + "x-amzn-query-error": "Customized;Sender", "smithy-protocol": "rpc-v2-cbor", - "x-amzn-query-error": "Customized;Sender" + "Content-Type": "application/cbor" }, "body": "uQACZl9fdHlwZXgrYXdzLnByb3RvY29sdGVzdHMucnBjdjJjYm9yI0N1c3RvbUNvZGVFcnJvcmdtZXNzYWdlYkhp" } diff --git a/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor.json b/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor.json index e017c9cf73bb..5752fdc4dee3 100644 --- a/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor.json +++ b/tests/unit/botocore/protocols/output/smithy-rpc-v2-cbor.json @@ -2,12 +2,21 @@ { "description": "Test cases for EmptyInputOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "EmptyStructure": { @@ -18,6 +27,7 @@ "cases": [ { "id": "empty_output", + "description": "When output structure is empty we write CBOR equivalent of {}", "given": { "name": "EmptyInputOutput", "http": { @@ -28,19 +38,19 @@ "shape": "EmptyStructure" } }, - "description": "When output structure is empty we write CBOR equivalent of {}", "result": {}, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v/8=" } }, { "id": "empty_output_no_body", + "description": "When output structure is empty the client should accept an empty body", "given": { "name": "EmptyInputOutput", "http": { @@ -51,13 +61,12 @@ "shape": "EmptyStructure" } }, - "description": "When output structure is empty the client should accept an empty body", "result": {}, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "" } @@ -67,14 +76,27 @@ { "description": "Test cases for Float16 operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { + "Double": { + "type": "double", + "box": true + }, "Float16Output": { "type": "structure", "members": { @@ -82,15 +104,12 @@ "shape": "Double" } } - }, - "Double": { - "type": "double", - "box": true } }, "cases": [ { "id": "RpcV2CborFloat16Inf", + "description": "Ensures that clients can correctly parse float16 +Inf.", "given": { "name": "Float16", "http": { @@ -101,21 +120,21 @@ "shape": "Float16Output" } }, - "description": "Ensures that clients can correctly parse float16 +Inf.", "result": { "value": "Infinity" }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWV2YWx1Zfl8AA==" } }, { "id": "RpcV2CborFloat16NegInf", + "description": "Ensures that clients can correctly parse float16 -Inf.", "given": { "name": "Float16", "http": { @@ -126,21 +145,21 @@ "shape": "Float16Output" } }, - "description": "Ensures that clients can correctly parse float16 -Inf.", "result": { "value": "-Infinity" }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWV2YWx1Zfn8AA==" } }, { "id": "RpcV2CborFloat16LSBNaN", + "description": "Ensures that clients can correctly parse float16 NaN with high LSB.", "given": { "name": "Float16", "http": { @@ -151,21 +170,21 @@ "shape": "Float16Output" } }, - "description": "Ensures that clients can correctly parse float16 NaN with high LSB.", "result": { "value": "NaN" }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWV2YWx1Zfl8AQ==" } }, { "id": "RpcV2CborFloat16MSBNaN", + "description": "Ensures that clients can correctly parse float16 NaN with high MSB.", "given": { "name": "Float16", "http": { @@ -176,21 +195,21 @@ "shape": "Float16Output" } }, - "description": "Ensures that clients can correctly parse float16 NaN with high MSB.", "result": { "value": "NaN" }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWV2YWx1Zfl+AA==" } }, { "id": "RpcV2CborFloat16Subnormal", + "description": "Ensures that clients can correctly parse a subnormal float16.", "given": { "name": "Float16", "http": { @@ -201,15 +220,14 @@ "shape": "Float16Output" } }, - "description": "Ensures that clients can correctly parse a subnormal float16.", "result": { "value": 4.76837158203125E-6 }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWV2YWx1ZfkAUA==" } @@ -219,14 +237,27 @@ { "description": "Test cases for FractionalSeconds operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { + "DateTime": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, "FractionalSecondsOutput": { "type": "structure", "members": { @@ -234,15 +265,12 @@ "shape": "DateTime" } } - }, - "DateTime": { - "type": "timestamp", - "timestampFormat": "iso8601" } }, "cases": [ { "id": "RpcV2CborDateTimeWithFractionalSeconds", + "description": "Ensures that clients can correctly parse timestamps with fractional seconds", "given": { "name": "FractionalSeconds", "http": { @@ -253,15 +281,14 @@ "shape": "FractionalSecondsOutput" } }, - "description": "Ensures that clients can correctly parse timestamps with fractional seconds", "result": { "datetime": 9.46845296123E8 }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2hkYXRldGltZcH7Qcw32zgPvnf/" } @@ -271,12 +298,21 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "InvalidGreeting": { @@ -296,6 +332,7 @@ "cases": [ { "id": "RpcV2CborInvalidGreetingError", + "description": "Parses simple RpcV2 Cbor errors", "given": { "name": "GreetingWithErrors", "http": { @@ -310,7 +347,6 @@ } ] }, - "description": "Parses simple RpcV2 Cbor errors", "errorCode": "InvalidGreeting", "errorMessage": "Hi", "error": { @@ -319,8 +355,8 @@ "response": { "status_code": 400, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2ZfX3R5cGV4LnNtaXRoeS5wcm90b2NvbHRlc3RzLnJwY3YyQ2JvciNJbnZhbGlkR3JlZXRpbmdnTWVzc2FnZWJIaf8=" } @@ -330,12 +366,21 @@ { "description": "Test cases for GreetingWithErrors operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "ComplexError": { @@ -351,9 +396,6 @@ "documentation": "

This error is thrown when a request is invalid.

", "exception": true }, - "String": { - "type": "string" - }, "ComplexNestedErrorData": { "type": "structure", "members": { @@ -361,11 +403,15 @@ "shape": "String" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RpcV2CborComplexError", + "description": "Parses a complex error with no message member", "given": { "name": "GreetingWithErrors", "http": { @@ -380,7 +426,6 @@ } ] }, - "description": "Parses a complex error with no message member", "errorCode": "ComplexError", "error": { "TopLevel": "Top level", @@ -391,8 +436,8 @@ "response": { "status_code": 400, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2ZfX3R5cGV4K3NtaXRoeS5wcm90b2NvbHRlc3RzLnJwY3YyQ2JvciNDb21wbGV4RXJyb3JoVG9wTGV2ZWxpVG9wIGxldmVsZk5lc3RlZL9jRm9vY2Jhcv//" } @@ -418,8 +463,8 @@ "response": { "status_code": 400, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2ZfX3R5cGV4K3NtaXRoeS5wcm90b2NvbHRlc3RzLnJwY3YyQ2JvciNDb21wbGV4RXJyb3L/" } @@ -429,17 +474,27 @@ { "description": "Test cases for NoInputOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": {}, "cases": [ { "id": "no_output", + "description": "A `Content-Type` header should not be set if the response body is empty.", "given": { "name": "NoInputOutput", "http": { @@ -447,7 +502,6 @@ "requestUri": "/" } }, - "description": "A `Content-Type` header should not be set if the response body is empty.", "result": {}, "response": { "status_code": 200, @@ -459,6 +513,7 @@ }, { "id": "NoOutputClientAllowsEmptyCbor", + "description": "Clients should accept a CBOR empty struct if there is no output.", "given": { "name": "NoInputOutput", "http": { @@ -466,19 +521,19 @@ "requestUri": "/" } }, - "description": "Clients should accept a CBOR empty struct if there is no output.", "result": {}, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v/8=" } }, { "id": "NoOutputClientAllowsEmptyBody", + "description": "Clients should accept an empty body if there is no output and\nshould not raise an error if the `Content-Type` header is set.", "given": { "name": "NoInputOutput", "http": { @@ -486,13 +541,12 @@ "requestUri": "/" } }, - "description": "Clients should accept an empty body if there is no output and\nshould not raise an error if the `Content-Type` header is set.", "result": {}, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "" } @@ -502,12 +556,21 @@ { "description": "Test cases for OptionalInputOutput operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "SimpleStructure": { @@ -525,6 +588,7 @@ "cases": [ { "id": "optional_output", + "description": "When output is empty we write CBOR equivalent of {}", "given": { "name": "OptionalInputOutput", "http": { @@ -535,13 +599,12 @@ "shape": "SimpleStructure" } }, - "description": "When output is empty we write CBOR equivalent of {}", "result": {}, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v/8=" } @@ -551,12 +614,21 @@ { "description": "Test cases for RecursiveShapes operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { "RecursiveShapesInputOutput": { @@ -578,9 +650,6 @@ } } }, - "String": { - "type": "string" - }, "RecursiveShapesInputOutputNested2": { "type": "structure", "members": { @@ -591,11 +660,15 @@ "shape": "RecursiveShapesInputOutputNested1" } } + }, + "String": { + "type": "string" } }, "cases": [ { "id": "RpcV2CborRecursiveShapes", + "description": "Serializes recursive structures", "given": { "name": "RecursiveShapes", "http": { @@ -606,7 +679,6 @@ "shape": "RecursiveShapesInputOutput" } }, - "description": "Serializes recursive structures", "result": { "nested": { "foo": "Foo1", @@ -624,14 +696,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2ZuZXN0ZWS/Y2Zvb2RGb28xZm5lc3RlZL9jYmFyZEJhcjFvcmVjdXJzaXZlTWVtYmVyv2Nmb29kRm9vMmZuZXN0ZWS/Y2JhcmRCYXIy//////8=" } }, { "id": "RpcV2CborRecursiveShapesUsingDefiniteLength", + "description": "Deserializes recursive structures encoded using a map with definite length", "given": { "name": "RecursiveShapes", "http": { @@ -642,7 +715,6 @@ "shape": "RecursiveShapesInputOutput" } }, - "description": "Deserializes recursive structures encoded using a map with definite length", "result": { "nested": { "foo": "Foo1", @@ -660,8 +732,8 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWZuZXN0ZWSiY2Zvb2RGb28xZm5lc3RlZKJjYmFyZEJhcjFvcmVjdXJzaXZlTWVtYmVyomNmb29kRm9vMmZuZXN0ZWShY2JhcmRCYXIy" } @@ -671,41 +743,34 @@ { "description": "Test cases for RpcV2CborDenseMaps operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { - "RpcV2CborDenseMapsInputOutput": { - "type": "structure", - "members": { - "denseStructMap": { - "shape": "DenseStructMap" - }, - "denseNumberMap": { - "shape": "DenseNumberMap" - }, - "denseBooleanMap": { - "shape": "DenseBooleanMap" - }, - "denseStringMap": { - "shape": "DenseStringMap" - }, - "denseSetMap": { - "shape": "DenseSetMap" - } - } + "Boolean": { + "type": "boolean", + "box": true }, - "DenseStructMap": { + "DenseBooleanMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "GreetingStruct" + "shape": "Boolean" } }, "DenseNumberMap": { @@ -717,13 +782,13 @@ "shape": "Integer" } }, - "DenseBooleanMap": { + "DenseSetMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "Boolean" + "shape": "StringSet" } }, "DenseStringMap": { @@ -735,44 +800,61 @@ "shape": "String" } }, - "DenseSetMap": { + "DenseStructMap": { "type": "map", "key": { "shape": "String" }, "value": { - "shape": "StringSet" + "shape": "GreetingStruct" } }, - "StringSet": { - "type": "list", - "member": { - "shape": "String" + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } } }, - "String": { - "type": "string" - }, - "Boolean": { - "type": "boolean", - "box": true - }, "Integer": { "type": "integer", "box": true }, - "GreetingStruct": { + "RpcV2CborDenseMapsInputOutput": { "type": "structure", "members": { - "hi": { - "shape": "String" + "denseStructMap": { + "shape": "DenseStructMap" + }, + "denseNumberMap": { + "shape": "DenseNumberMap" + }, + "denseBooleanMap": { + "shape": "DenseBooleanMap" + }, + "denseStringMap": { + "shape": "DenseStringMap" + }, + "denseSetMap": { + "shape": "DenseSetMap" } } + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } } }, "cases": [ { "id": "RpcV2CborMaps", + "description": "Deserializes maps", "given": { "name": "RpcV2CborDenseMaps", "http": { @@ -784,7 +866,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Deserializes maps", "result": { "denseStructMap": { "foo": { @@ -798,14 +879,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oW5kZW5zZVN0cnVjdE1hcKJjZm9voWJoaWV0aGVyZWNiYXqhYmhpY2J5ZQ==" } }, { "id": "RpcV2CborDeserializesZeroValuesInMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "given": { "name": "RpcV2CborDenseMaps", "http": { @@ -817,7 +899,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Ensure that 0 and false are sent over the wire in all maps and lists", "result": { "denseNumberMap": { "x": 0 @@ -829,46 +910,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "om5kZW5zZU51bWJlck1hcKFheABvZGVuc2VCb29sZWFuTWFwoWF49A==" } }, { "id": "RpcV2CborDeserializesDenseSetMap", - "given": { - "name": "RpcV2CborDenseMaps", - "http": { - "method": "POST", - "requestUri": "/" - }, - "output": { - "shape": "RpcV2CborDenseMapsInputOutput" - }, - "documentation": "

The example tests basic map serialization.

" - }, "description": "A response that contains a dense map of sets", - "result": { - "denseSetMap": { - "x": [], - "y": [ - "a", - "b" - ] - } - }, - "response": { - "status_code": 200, - "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" - }, - "body": "oWtkZW5zZVNldE1hcKJheIBheYJhYWFi" - } - }, - { - "id": "RpcV2CborDeserializesDenseSetMapAndSkipsNull", "given": { "name": "RpcV2CborDenseMaps", "http": { @@ -880,7 +930,6 @@ }, "documentation": "

The example tests basic map serialization.

" }, - "description": "Clients SHOULD tolerate seeing a null value in a dense map, and they SHOULD\ndrop the null key-value pair.", "result": { "denseSetMap": { "x": [], @@ -893,10 +942,10 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, - "body": "oWtkZW5zZVNldE1hcKNheIBheYJhYWFiYXr2" + "body": "oWtkZW5zZVNldE1hcKJheIBheYJhYWFi" } } ] @@ -904,66 +953,35 @@ { "description": "Test cases for RpcV2CborLists operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { - "RpcV2CborListInputOutput": { - "type": "structure", - "members": { - "stringList": { - "shape": "StringList" - }, - "stringSet": { - "shape": "StringSet" - }, - "integerList": { - "shape": "IntegerList" - }, - "booleanList": { - "shape": "BooleanList" - }, - "timestampList": { - "shape": "TimestampList" - }, - "enumList": { - "shape": "FooEnumList" - }, - "intEnumList": { - "shape": "IntegerEnumList" - }, - "nestedStringList": { - "shape": "NestedStringList" - }, - "structureList": { - "shape": "StructureList" - }, - "blobList": { - "shape": "BlobList" - } - } - }, - "StringList": { - "type": "list", - "member": { - "shape": "String" - } + "Blob": { + "type": "blob" }, - "StringSet": { + "BlobList": { "type": "list", "member": { - "shape": "String" + "shape": "Blob" } }, - "IntegerList": { - "type": "list", - "member": { - "shape": "Integer" - } + "Boolean": { + "type": "boolean", + "box": true }, "BooleanList": { "type": "list", @@ -971,11 +989,15 @@ "shape": "Boolean" } }, - "TimestampList": { - "type": "list", - "member": { - "shape": "Timestamp" - } + "FooEnum": { + "type": "string", + "enum": [ + "Foo", + "Baz", + "Bar", + "1", + "0" + ] }, "FooEnumList": { "type": "list", @@ -983,12 +1005,26 @@ "shape": "FooEnum" } }, + "Integer": { + "type": "integer", + "box": true + }, + "IntegerEnum": { + "type": "integer", + "box": true + }, "IntegerEnumList": { "type": "list", "member": { "shape": "IntegerEnum" } }, + "IntegerList": { + "type": "list", + "member": { + "shape": "Integer" + } + }, "NestedStringList": { "type": "list", "member": { @@ -996,20 +1032,61 @@ }, "documentation": "

A list of lists of strings.

" }, - "StructureList": { + "RpcV2CborListInputOutput": { + "type": "structure", + "members": { + "stringList": { + "shape": "StringList" + }, + "stringSet": { + "shape": "StringSet" + }, + "integerList": { + "shape": "IntegerList" + }, + "booleanList": { + "shape": "BooleanList" + }, + "timestampList": { + "shape": "TimestampList" + }, + "enumList": { + "shape": "FooEnumList" + }, + "intEnumList": { + "shape": "IntegerEnumList" + }, + "nestedStringList": { + "shape": "NestedStringList" + }, + "structureList": { + "shape": "StructureList" + }, + "blobList": { + "shape": "BlobList" + } + } + }, + "String": { + "type": "string" + }, + "StringList": { "type": "list", "member": { - "shape": "StructureListMember" + "shape": "String" } }, - "BlobList": { + "StringSet": { "type": "list", "member": { - "shape": "Blob" + "shape": "String" } }, - "Blob": { - "type": "blob" + "StructureList": { + "type": "list", + "member": { + "shape": "StructureListMember" + } }, "StructureListMember": { "type": "structure", @@ -1022,38 +1099,20 @@ } } }, - "String": { - "type": "string" - }, - "IntegerEnum": { - "type": "integer", - "box": true - }, - "FooEnum": { - "type": "string", - "enum": [ - "Foo", - "Baz", - "Bar", - "1", - "0" - ] - }, "Timestamp": { "type": "timestamp" }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true + "TimestampList": { + "type": "list", + "member": { + "shape": "Timestamp" + } } }, "cases": [ { "id": "RpcV2CborLists", + "description": "Serializes RpcV2 Cbor lists", "given": { "name": "RpcV2CborLists", "http": { @@ -1066,7 +1125,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes RpcV2 Cbor lists", "result": { "stringList": [ "foo", @@ -1124,14 +1182,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2pzdHJpbmdMaXN0n2Nmb29jYmFy/2lzdHJpbmdTZXSfY2Zvb2NiYXL/a2ludGVnZXJMaXN0nwEC/2tib29sZWFuTGlzdJ/19P9tdGltZXN0YW1wTGlzdJ/B+0HU1/vzgAAAwftB1Nf784AAAP9oZW51bUxpc3SfY0Zvb2Ew/2tpbnRFbnVtTGlzdJ8BAv9wbmVzdGVkU3RyaW5nTGlzdJ+fY2Zvb2NiYXL/n2NiYXpjcXV4//9tc3RydWN0dXJlTGlzdJ+/YWFhMWFiYTL/v2FhYTNhYmE0//9oYmxvYkxpc3SfQ2Zvb0NiYXL//w==" } }, { "id": "RpcV2CborListsEmpty", + "description": "Serializes empty RpcV2 Cbor lists", "given": { "name": "RpcV2CborLists", "http": { @@ -1144,21 +1203,21 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Serializes empty RpcV2 Cbor lists", "result": { "stringList": [] }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2pzdHJpbmdMaXN0n///" } }, { "id": "RpcV2CborIndefiniteStringInsideIndefiniteListCanDeserialize", + "description": "Can deserialize indefinite length text strings inside an indefinite length list", "given": { "name": "RpcV2CborLists", "http": { @@ -1171,7 +1230,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Can deserialize indefinite length text strings inside an indefinite length list", "result": { "stringList": [ "An example indefinite string, which will be chunked, on each comma", @@ -1182,14 +1240,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2pzdHJpbmdMaXN0n394HUFuIGV4YW1wbGUgaW5kZWZpbml0ZSBzdHJpbmcsdyB3aGljaCB3aWxsIGJlIGNodW5rZWQsbiBvbiBlYWNoIGNvbW1h/394NUFub3RoZXIgZXhhbXBsZSBpbmRlZmluaXRlIHN0cmluZyB3aXRoIG9ubHkgb25lIGNodW5r/3ZUaGlzIGlzIGEgcGxhaW4gc3RyaW5n//8=" } }, { "id": "RpcV2CborIndefiniteStringInsideDefiniteListCanDeserialize", + "description": "Can deserialize indefinite length text strings inside a definite length list", "given": { "name": "RpcV2CborLists", "http": { @@ -1202,7 +1261,6 @@ "documentation": "

This test case serializes JSON lists for the following cases for both input and output:

  1. Normal lists.
  2. Normal sets.
  3. Lists of lists.
  4. Lists of structures.
", "idempotent": true }, - "description": "Can deserialize indefinite length text strings inside a definite length list", "result": { "stringList": [ "An example indefinite string, which will be chunked, on each comma", @@ -1213,8 +1271,8 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "oWpzdHJpbmdMaXN0g394HUFuIGV4YW1wbGUgaW5kZWZpbml0ZSBzdHJpbmcsdyB3aGljaCB3aWxsIGJlIGNodW5rZWQsbiBvbiBlYWNoIGNvbW1h/394NUFub3RoZXIgZXhhbXBsZSBpbmRlZmluaXRlIHN0cmluZyB3aXRoIG9ubHkgb25lIGNodW5r/3ZUaGlzIGlzIGEgcGxhaW4gc3RyaW5n" } @@ -1222,16 +1280,328 @@ ] }, { - "description": "Test cases for SimpleScalarProperties operation", + "description": "Test cases for RpcV2CborSparseMaps operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" + }, + "shapes": { + "Boolean": { + "type": "boolean", + "box": true + }, + "GreetingStruct": { + "type": "structure", + "members": { + "hi": { + "shape": "String" + } + } + }, + "Integer": { + "type": "integer", + "box": true + }, + "RpcV2CborSparseMapsInputOutput": { + "type": "structure", + "members": { + "sparseStructMap": { + "shape": "SparseStructMap" + }, + "sparseNumberMap": { + "shape": "SparseNumberMap" + }, + "sparseBooleanMap": { + "shape": "SparseBooleanMap" + }, + "sparseStringMap": { + "shape": "SparseStringMap" + }, + "sparseSetMap": { + "shape": "SparseSetMap" + } + } + }, + "SparseBooleanMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Boolean" + }, + "sparse": true + }, + "SparseNumberMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "Integer" + }, + "sparse": true + }, + "SparseSetMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "StringSet" + }, + "sparse": true + }, + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + }, + "sparse": true + }, + "SparseStructMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "GreetingStruct" + }, + "sparse": true + }, + "String": { + "type": "string" + }, + "StringSet": { + "type": "list", + "member": { + "shape": "String" + } + } + }, + "cases": [ + { + "id": "RpcV2CborSparseJsonMaps", + "description": "Deserializes sparse maps", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "result": { + "sparseStructMap": { + "foo": { + "hi": "there" + }, + "baz": { + "hi": "bye" + } + } + }, + "response": { + "status_code": 200, + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" + }, + "body": "v29zcGFyc2VTdHJ1Y3RNYXC/Y2Zvb79iaGlldGhlcmX/Y2Jher9iaGljYnll////" + } + }, + { + "id": "RpcV2CborDeserializesNullMapValues", + "description": "Deserializes null map values", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "result": { + "sparseBooleanMap": { + "x": null + }, + "sparseNumberMap": { + "x": null + }, + "sparseStringMap": { + "x": null + }, + "sparseStructMap": { + "x": null + } + }, + "response": { + "status_code": 200, + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" + }, + "body": "v3BzcGFyc2VCb29sZWFuTWFwv2F49v9vc3BhcnNlTnVtYmVyTWFwv2F49v9vc3BhcnNlU3RyaW5nTWFwv2F49v9vc3BhcnNlU3RydWN0TWFwv2F49v//" + } + }, + { + "id": "RpcV2CborDeserializesSparseSetMap", + "description": "A response that contains a sparse map of sets", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "result": { + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ] + } + }, + "response": { + "status_code": 200, + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" + }, + "body": "v2xzcGFyc2VTZXRNYXC/YXmfYWFhYv9heJ////8=" + } + }, + { + "id": "RpcV2CborDeserializesSparseSetMapAndRetainsNull", + "description": "A response that contains a sparse map of sets with a null", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "result": { + "sparseSetMap": { + "x": [], + "y": [ + "a", + "b" + ], + "z": null + } + }, + "response": { + "status_code": 200, + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" + }, + "body": "v2xzcGFyc2VTZXRNYXC/YXif/2F5n2FhYWL/YXr2//8=" + } + }, + { + "id": "RpcV2CborDeserializesZeroValuesInSparseMaps", + "description": "Ensure that 0 and false are sent over the wire in all maps and lists", + "given": { + "name": "RpcV2CborSparseMaps", + "http": { + "method": "POST", + "requestUri": "/" + }, + "output": { + "shape": "RpcV2CborSparseMapsInputOutput" + } + }, + "result": { + "sparseNumberMap": { + "x": 0 + }, + "sparseBooleanMap": { + "x": false + } + }, + "response": { + "status_code": 200, + "headers": { + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" + }, + "body": "v29zcGFyc2VOdW1iZXJNYXC/YXgA/3BzcGFyc2VCb29sZWFuTWFwv2F49P//" + } + } + ] + }, + { + "description": "Test cases for SimpleScalarProperties operation", + "metadata": { "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", + "protocol": "smithy-rpc-v2-cbor", + "protocols": [ + "smithy-rpc-v2-cbor" + ], + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { + "Blob": { + "type": "blob" + }, + "Boolean": { + "type": "boolean", + "box": true + }, + "Double": { + "type": "double", + "box": true + }, + "Float": { + "type": "float", + "box": true + }, + "Integer": { + "type": "integer", + "box": true + }, + "Long": { + "type": "long", + "box": true + }, "SimpleScalarStructure": { "type": "structure", "members": { @@ -1267,36 +1637,14 @@ } } }, - "Boolean": { - "type": "boolean", - "box": true - }, - "Integer": { - "type": "integer", - "box": true - }, - "Double": { - "type": "double", - "box": true - }, - "Float": { - "type": "float", - "box": true - }, - "Long": { - "type": "long", - "box": true - }, "String": { "type": "string" - }, - "Blob": { - "type": "blob" } }, "cases": [ { "id": "RpcV2CborSimpleScalarProperties", + "description": "Serializes simple scalar properties", "given": { "name": "SimpleScalarProperties", "http": { @@ -1307,7 +1655,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Serializes simple scalar properties", "result": { "trueBooleanValue": true, "falseBooleanValue": false, @@ -1322,14 +1669,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v3B0cnVlQm9vbGVhblZhbHVl9XFmYWxzZUJvb2xlYW5WYWx1ZfRpYnl0ZVZhbHVlBWtkb3VibGVWYWx1Zfs//jlYEGJN02pmbG9hdFZhbHVl+kD0AABsaW50ZWdlclZhbHVlGQEAanNob3J0VmFsdWUZJqprc3RyaW5nVmFsdWVmc2ltcGxlaWJsb2JWYWx1ZUNmb2//" } }, { "id": "RpcV2CborSimpleScalarPropertiesUsingDefiniteLength", + "description": "Deserializes simple scalar properties encoded using a map with definite length", "given": { "name": "SimpleScalarProperties", "http": { @@ -1340,7 +1688,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Deserializes simple scalar properties encoded using a map with definite length", "result": { "trueBooleanValue": true, "falseBooleanValue": false, @@ -1355,14 +1702,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "qXB0cnVlQm9vbGVhblZhbHVl9XFmYWxzZUJvb2xlYW5WYWx1ZfRpYnl0ZVZhbHVlBWtkb3VibGVWYWx1Zfs//jlYEGJN02pmbG9hdFZhbHVl+kD0AABsaW50ZWdlclZhbHVlGQEAanNob3J0VmFsdWUZJqprc3RyaW5nVmFsdWVmc2ltcGxlaWJsb2JWYWx1ZUNmb28=" } }, { "id": "RpcV2CborClientDoesntDeserializeNullStructureValues", + "description": "RpcV2 Cbor should not deserialize null structure values", "given": { "name": "SimpleScalarProperties", "http": { @@ -1373,19 +1721,19 @@ "shape": "SimpleScalarStructure" } }, - "description": "RpcV2 Cbor should not deserialize null structure values", "result": {}, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2tzdHJpbmdWYWx1Zfb/" } }, { "id": "RpcV2CborSupportsNaNFloatOutputs", + "description": "Supports handling NaN float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1396,7 +1744,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports handling NaN float values.", "result": { "doubleValue": "NaN", "floatValue": "NaN" @@ -1404,14 +1751,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2tkb3VibGVWYWx1Zft/+AAAAAAAAGpmbG9hdFZhbHVl+n/AAAD/" } }, { "id": "RpcV2CborSupportsInfinityFloatOutputs", + "description": "Supports handling Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1422,7 +1770,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports handling Infinity float values.", "result": { "doubleValue": "Infinity", "floatValue": "Infinity" @@ -1430,14 +1777,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2tkb3VibGVWYWx1Zft/8AAAAAAAAGpmbG9hdFZhbHVl+n+AAAD/" } }, { "id": "RpcV2CborSupportsNegativeInfinityFloatOutputs", + "description": "Supports handling Negative Infinity float values.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1448,7 +1796,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports handling Negative Infinity float values.", "result": { "doubleValue": "-Infinity", "floatValue": "-Infinity" @@ -1456,14 +1803,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2tkb3VibGVWYWx1Zfv/8AAAAAAAAGpmbG9hdFZhbHVl+v+AAAD/" } }, { "id": "RpcV2CborSupportsUpcastingDataOnDeserialize", + "description": "Supports upcasting from a smaller byte representation of the same data type.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1474,7 +1822,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "Supports upcasting from a smaller byte representation of the same data type.", "result": { "doubleValue": 1.5, "floatValue": 7.625, @@ -1485,14 +1832,15 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2tkb3VibGVWYWx1Zfk+AGpmbG9hdFZhbHVl+UegbGludGVnZXJWYWx1ZRg4aWxvbmdWYWx1ZRkBAGpzaG9ydFZhbHVlCv8=" } }, { "id": "RpcV2CborExtraFieldsInTheBodyShouldBeSkippedByClients", + "description": "The client should skip over additional fields that are not part of the structure. This allows a\nclient generated against an older Smithy model to be able to communicate with a server that is\ngenerated against a newer Smithy model.", "given": { "name": "SimpleScalarProperties", "http": { @@ -1503,7 +1851,6 @@ "shape": "SimpleScalarStructure" } }, - "description": "The client should skip over additional fields that are not part of the structure. This allows a\nclient generated against an older Smithy model to be able to communicate with a server that is\ngenerated against a newer Smithy model.", "result": { "byteValue": 5, "doubleValue": 1.889, @@ -1519,8 +1866,8 @@ "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, "body": "v2lieXRlVmFsdWUFa2RvdWJsZVZhbHVl+z/+OVgQYk3TcWZhbHNlQm9vbGVhblZhbHVl9GpmbG9hdFZhbHVl+kD0AABrZXh0cmFPYmplY3S/c2luZGVmaW5pdGVMZW5ndGhNYXC/a3dpdGhBbkFycmF5nwECA///cWRlZmluaXRlTGVuZ3RoTWFwo3J3aXRoQURlZmluaXRlQXJyYXmDAQIDeB1hbmRTb21lSW5kZWZpbml0ZUxlbmd0aFN0cmluZ3gfdGhhdCBoYXMsIGJlZW4gY2h1bmtlZCBvbiBjb21tYWxub3JtYWxTdHJpbmdjZm9vanNob3J0VmFsdWUZJw9uc29tZU90aGVyRmllbGR2dGhpcyBzaG91bGQgYmUgc2tpcHBlZP9saW50ZWdlclZhbHVlGQEAaWxvbmdWYWx1ZRkmkWpzaG9ydFZhbHVlGSaqa3N0cmluZ1ZhbHVlZnNpbXBsZXB0cnVlQm9vbGVhblZhbHVl9WlibG9iVmFsdWVDZm9v/w==" } @@ -1528,33 +1875,52 @@ ] }, { - "description": "Test cases for HttpPayloadWithUnion operation", + "description": "Test cases for SparseNullsOperation operation", "metadata": { + "apiVersion": "2020-07-14", + "auth": [ + "aws.auth#sigv4" + ], + "endpointPrefix": "rpcv2protocol", "protocol": "smithy-rpc-v2-cbor", "protocols": [ "smithy-rpc-v2-cbor" ], - "apiVersion": "2020-07-14", - "targetPrefix": "RpcV2Protocol" + "serviceFullName": "RpcV2Protocol", + "serviceId": "RpcV2Protocol", + "signatureVersion": "v4", + "signingName": "RpcV2Protocol", + "targetPrefix": "RpcV2Protocol", + "uid": "rpcv2protocol-2020-07-14" }, "shapes": { - "HttpPayloadWithUnionInputOutput": { + "SparseNullsOperationInputOutput": { "type": "structure", "members": { - "nested": { - "shape": "UnionPayload" + "sparseStringList": { + "shape": "SparseStringList" + }, + "sparseStringMap": { + "shape": "SparseStringMap" } + } + }, + "SparseStringList": { + "type": "list", + "member": { + "shape": "String" }, - "payload": "nested" + "sparse": true }, - "UnionPayload": { - "type": "structure", - "members": { - "greeting": { - "shape": "String" - } + "SparseStringMap": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" }, - "union": true + "sparse": true }, "String": { "type": "string" @@ -1562,57 +1928,57 @@ }, "cases": [ { - "id": "RpcV2CborPayloadWithUnion", + "id": "RpcV2CborSparseMapsDeserializeNullValues", + "description": "Deserializes null values in maps", "given": { - "name": "HttpPayloadWithUnion", + "name": "SparseNullsOperation", "http": { - "method": "PUT", - "requestUri": "/HttpPayloadWithUnion", - "responseCode": 200 + "method": "POST", + "requestUri": "/" }, "output": { - "shape": "HttpPayloadWithUnionInputOutput" - }, - "documentation": "

This example serializes a union in the payload.

", - "idempotent": true + "shape": "SparseNullsOperationInputOutput" + } }, - "description": "Serializes a union in the payload.", "result": { - "nested": { - "greeting": "hello" + "sparseStringMap": { + "foo": null } }, "response": { "status_code": 200, "headers": { - "Content-Type": "application/cbor", - "smithy-protocol": "rpc-v2-cbor" }, - "body": "oWZuZXN0ZWShaGdyZWV0aW5nZWhlbGxv" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" + }, + "body": "v29zcGFyc2VTdHJpbmdNYXC/Y2Zvb/b//w==" } }, { - "id": "RpcV2CborPayloadWithUnsetUnion", + "id": "RpcV2CborSparseListsDeserializeNull", + "description": "Deserializes null values in lists", "given": { - "name": "HttpPayloadWithUnion", + "name": "SparseNullsOperation", "http": { - "method": "PUT", - "requestUri": "/HttpPayloadWithUnion", - "responseCode": 200 + "method": "POST", + "requestUri": "/" }, "output": { - "shape": "HttpPayloadWithUnionInputOutput" - }, - "documentation": "

This example serializes a union in the payload.

", - "idempotent": true + "shape": "SparseNullsOperationInputOutput" + } + }, + "result": { + "sparseStringList": [ + null + ] }, - "description": "No payload is sent if the union has no value.", - "result": {}, "response": { "status_code": 200, "headers": { - "Content-Length": "0" + "smithy-protocol": "rpc-v2-cbor", + "Content-Type": "application/cbor" }, - "body": "v2tkb3VibGVWYWx1Zfv/8AAAAAAAAGpmbG9hdFZhbHVl+v+AAAD/" + "body": "v3BzcGFyc2VTdHJpbmdMaXN0n/b//w==" } } ] diff --git a/tests/unit/botocore/protocols/protocol-tests-ignore-list.json b/tests/unit/botocore/protocols/protocol-tests-ignore-list.json index e392a4e92184..396bf9de67c9 100644 --- a/tests/unit/botocore/protocols/protocol-tests-ignore-list.json +++ b/tests/unit/botocore/protocols/protocol-tests-ignore-list.json @@ -1,6 +1,6 @@ { "general": { - "input": { + "input": { "suites": [ "Test cases for PutWithContentEncoding operation", "Test cases for QueryIdempotencyTokenAutoFill operation", @@ -10,7 +10,7 @@ } }, "protocols": { - "query" : { + "query": { "input": { "cases": [ "QueryFlattenedListArgWithXmlName" @@ -19,12 +19,14 @@ "output": { "cases": [ "QueryXmlLists", - "QueryComplexError" + "QueryComplexError", + "QueryEmptyInputAndEmptyOutput", + "QueryNoInputAndOutput" ] } }, - "ec2" : { - "input" : { + "ec2": { + "input": { "cases": [ "Ec2QueryEndpointTraitWithHostLabel", "Ec2Lists", @@ -38,13 +40,13 @@ ] } }, - "json" : { + "json": { "input": { "cases": [ "AwsJson11StructuresDontSerializeNullValues" ] }, - "output" : { + "output": { "cases": [ "AwsJson11FooErrorUsingXAmznErrorType", "AwsJson11FooErrorUsingXAmznErrorTypeWithUri", @@ -55,8 +57,8 @@ ] } }, - "json_1_0" : { - "output" : { + "json_1_0": { + "output": { "cases": [ "AwsJson10FooErrorUsingXAmznErrorType", "AwsJson10FooErrorUsingXAmznErrorTypeWithUri", @@ -67,8 +69,8 @@ ] } }, - "rest-json" : { - "input" : { + "rest-json": { + "input": { "cases": [ "MediaTypeHeaderInputBase64", "RestJsonHttpChecksumRequired", @@ -79,7 +81,7 @@ "DocumentTypeAsPayloadInput" ] }, - "output" : { + "output": { "cases": [ "RestJsonFooErrorUsingXAmznErrorType", "RestJsonFooErrorUsingXAmznErrorTypeWithUri", @@ -89,7 +91,8 @@ "RestJsonInputAndOutputWithTimestampHeaders", "RestJsonInputAndOutputWithQuotedStringHeaders", "RestJsonDeserializesDenseSetMapAndSkipsNull", - "MediaTypeHeaderOutputBase64" + "MediaTypeHeaderOutputBase64", + "RestJsonHttpPayloadWithStructureAndEmptyResponseBody" ] } }, @@ -102,6 +105,7 @@ "HttpPayloadWithXmlNamespace", "HttpPayloadWithXmlNamespaceAndPrefix", "XmlAttributesOnPayload", + "XmlAttributesInMiddle", "NullAndEmptyHeaders", "RestXmlQueryPrecedence" ] From 6d144efc8f07030596ae9b2e1054908ed8e7e688 Mon Sep 17 00:00:00 2001 From: Antonio Aranda <102337110+arandito@users.noreply.github.com> Date: Fri, 29 May 2026 13:57:08 -0400 Subject: [PATCH 46/73] [v2] Fix parent reference warning (#10361) --- .changes/next-release/bugfix-s3-52243.json | 5 +++++ awscli/customizations/s3/s3handler.py | 7 ++++--- .../unit/customizations/s3/test_s3handler.py | 21 +++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 .changes/next-release/bugfix-s3-52243.json diff --git a/.changes/next-release/bugfix-s3-52243.json b/.changes/next-release/bugfix-s3-52243.json new file mode 100644 index 000000000000..d17fa89a8178 --- /dev/null +++ b/.changes/next-release/bugfix-s3-52243.json @@ -0,0 +1,5 @@ +{ + "type": "bugfix", + "category": "s3", + "description": "Fix false negative in parent-directory escape detection that allowed keys like ``/../foo`` to bypass warning during downloads" +} diff --git a/awscli/customizations/s3/s3handler.py b/awscli/customizations/s3/s3handler.py index 2867c04b7528..0ff38de72612 100644 --- a/awscli/customizations/s3/s3handler.py +++ b/awscli/customizations/s3/s3handler.py @@ -335,9 +335,10 @@ def _warn_parent_reference(self, fileinfo): # normpath() will use the OS path separator so we # need to take that into account when checking for a parent prefix. parent_prefix = '..' + os.path.sep - escapes_cwd = os.path.normpath(fileinfo.compare_key).startswith( - parent_prefix - ) + # Anchor compare_key against '.' (the destination directory root) + # to avoid false negatives on paths like '/../foo' + normalized = os.path.normpath('.' + os.path.sep + fileinfo.compare_key) + escapes_cwd = normalized.startswith(parent_prefix) if escapes_cwd: warning = create_warning( fileinfo.compare_key, "File references a parent directory." diff --git a/tests/unit/customizations/s3/test_s3handler.py b/tests/unit/customizations/s3/test_s3handler.py index ec57fcdd6d4a..d19fffaf979d 100644 --- a/tests/unit/customizations/s3/test_s3handler.py +++ b/tests/unit/customizations/s3/test_s3handler.py @@ -646,6 +646,27 @@ def test_allow_double_dots_that_dont_escape_cwd(self): future = self.transfer_request_submitter.submit(fileinfo) self.assertIsInstance(self.result_queue.get(), DryRunResult) + def test_warn_and_ignore_on_leading_slash_parent_reference(self): + fileinfo = self.create_file_info('/../foo.txt') + future = self.transfer_request_submitter.submit(fileinfo) + warning_result = self.result_queue.get() + self.assertIsInstance(warning_result, WarningResult) + self.assert_no_downloads_happened() + + def test_warn_and_ignore_on_leading_slash_stacked_parent_reference(self): + fileinfo = self.create_file_info('/../../../foo/bar.txt') + future = self.transfer_request_submitter.submit(fileinfo) + warning_result = self.result_queue.get() + self.assertIsInstance(warning_result, WarningResult) + self.assert_no_downloads_happened() + + def test_warn_and_ignore_on_double_leading_slash_parent_reference(self): + fileinfo = self.create_file_info('//../foo') + future = self.transfer_request_submitter.submit(fileinfo) + warning_result = self.result_queue.get() + self.assertIsInstance(warning_result, WarningResult) + self.assert_no_downloads_happened() + def test_dry_run(self): self.cli_params['dryrun'] = True self.transfer_request_submitter = DownloadRequestSubmitter( From 21beeadd052eb5fb43c9d3509a62c2f45e310114 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 29 May 2026 18:11:19 +0000 Subject: [PATCH 47/73] Merge customizations for QuickSight --- .../data/quicksight/2018-04-01/paginators-1.sdk-extras.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/awscli/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json b/awscli/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json index b87908d193fe..a04d263dc65a 100644 --- a/awscli/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json +++ b/awscli/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json @@ -74,6 +74,12 @@ "RequestId" ] }, + "ListOAuthClientApplications": { + "non_aggregate_keys": [ + "Status", + "RequestId" + ] + }, "ListIngestions": { "non_aggregate_keys": [ "Status", From 1ad80aa78ea48e52631d0b9d2ba16cacc0a1272a Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 29 May 2026 18:11:22 +0000 Subject: [PATCH 48/73] Update to latest models --- .../next-release/api-change-bedrock-9880.json | 5 + ...-change-bedrockagentcorecontrol-31783.json | 5 + .../api-change-groundstation-16640.json | 5 + .../next-release/api-change-omics-37757.json | 5 + .../api-change-quicksight-91046.json | 5 + .../api-change-rdsdata-42211.json | 5 + .../api-change-route53resolver-59742.json | 5 + .../next-release/api-change-sesv2-95302.json | 5 + .../2023-06-05/service-2.json | 409 ++++++++---- .../data/bedrock/2023-04-20/service-2.json | 35 +- .../groundstation/2019-05-23/service-2.json | 6 +- .../data/omics/2022-11-28/service-2.json | 39 ++ .../quicksight/2018-04-01/paginators-1.json | 6 + .../data/quicksight/2018-04-01/service-2.json | 503 +++++++++++++++ .../data/rds-data/2018-08-01/service-2.json | 48 +- .../2018-04-01/paginators-1.json | 6 + .../route53resolver/2018-04-01/service-2.json | 602 +++++++++++++++++- .../data/sesv2/2019-09-27/service-2.json | 191 ++++-- 18 files changed, 1705 insertions(+), 180 deletions(-) create mode 100644 .changes/next-release/api-change-bedrock-9880.json create mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-31783.json create mode 100644 .changes/next-release/api-change-groundstation-16640.json create mode 100644 .changes/next-release/api-change-omics-37757.json create mode 100644 .changes/next-release/api-change-quicksight-91046.json create mode 100644 .changes/next-release/api-change-rdsdata-42211.json create mode 100644 .changes/next-release/api-change-route53resolver-59742.json create mode 100644 .changes/next-release/api-change-sesv2-95302.json diff --git a/.changes/next-release/api-change-bedrock-9880.json b/.changes/next-release/api-change-bedrock-9880.json new file mode 100644 index 000000000000..9b73aba15352 --- /dev/null +++ b/.changes/next-release/api-change-bedrock-9880.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock``", + "description": "Automated Reasoning checks - Added two build workflows for policies. Iterative Refine Policy uses AI to update policy definitions based on test results and feedback. Resolve Policy Ambiguities consolidates ambiguous variables in Automated Reasoning policies, a common source of ambiguous validation." +} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-31783.json b/.changes/next-release/api-change-bedrockagentcorecontrol-31783.json new file mode 100644 index 000000000000..3ddfe3fede1f --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcorecontrol-31783.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore-control``", + "description": "Reference your own AWS Secrets Manager secrets when configuring credential providers, giving you control over encryption, rotation, and access policies instead of using service-managed secrets." +} diff --git a/.changes/next-release/api-change-groundstation-16640.json b/.changes/next-release/api-change-groundstation-16640.json new file mode 100644 index 000000000000..05ea5f9d8d0c --- /dev/null +++ b/.changes/next-release/api-change-groundstation-16640.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``groundstation``", + "description": "Adds support for Alpha-5 satellite number encoding in the Two-Line Element ephemeris format." +} diff --git a/.changes/next-release/api-change-omics-37757.json b/.changes/next-release/api-change-omics-37757.json new file mode 100644 index 000000000000..aee37ca14a78 --- /dev/null +++ b/.changes/next-release/api-change-omics-37757.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``omics``", + "description": "Add engineSettings to StartRun and GetRun. Add profiles and profileParameterTemplates to GetWorkflow and GetWorkflowVersion." +} diff --git a/.changes/next-release/api-change-quicksight-91046.json b/.changes/next-release/api-change-quicksight-91046.json new file mode 100644 index 000000000000..c21ce2a5f497 --- /dev/null +++ b/.changes/next-release/api-change-quicksight-91046.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``quicksight``", + "description": "Adds support for creating, updating, describing, listing, and deleting an OAuthClientApplication resource, a new quicksight resource that allows customers to store OAuth configurations to connect to their databases via 3 Legged OAuth." +} diff --git a/.changes/next-release/api-change-rdsdata-42211.json b/.changes/next-release/api-change-rdsdata-42211.json new file mode 100644 index 000000000000..2e2873e56400 --- /dev/null +++ b/.changes/next-release/api-change-rdsdata-42211.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``rds-data``", + "description": "RDS Data API arrays (longValues, doubleValues, stringValues, booleanValues) in ExecuteStatement responses now correctly support null elements. Runtime change for JS v3 and .NET. Compile-time change for C plus plus, .NET, Kotlin, Rust. No impact for Java, Python, Ruby, PHP, Go." +} diff --git a/.changes/next-release/api-change-route53resolver-59742.json b/.changes/next-release/api-change-route53resolver-59742.json new file mode 100644 index 000000000000..7dd038ab8a88 --- /dev/null +++ b/.changes/next-release/api-change-route53resolver-59742.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``route53resolver``", + "description": "Added BatchCreateFirewallRule, BatchUpdateFirewallRule, BatchDeleteFirewallRule, and ListFirewallRuleTypes APIs. Added FirewallRuleType support to Firewall Rule APIs." +} diff --git a/.changes/next-release/api-change-sesv2-95302.json b/.changes/next-release/api-change-sesv2-95302.json new file mode 100644 index 000000000000..0d4035ff557e --- /dev/null +++ b/.changes/next-release/api-change-sesv2-95302.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sesv2``", + "description": "This release introduces support for Tenant Suppression Lists" +} diff --git a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json index 7c9f15e9e280..a356a95a61fe 100644 --- a/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json +++ b/awscli/botocore/data/bedrock-agentcore-control/2023-06-05/service-2.json @@ -3485,12 +3485,6 @@ "type":"list", "member":{"shape":"ApiKeyCredentialProviderItem"} }, - "ApiKeyType":{ - "type":"string", - "max":65536, - "min":1, - "sensitive":true - }, "ApiSchemaConfiguration":{ "type":"structure", "members":{ @@ -3519,18 +3513,23 @@ }, "AtlassianOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the Atlassian OAuth2 provider. This identifier is assigned by Atlassian when you register your application.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the Atlassian OAuth2 provider. This secret is assigned by Atlassian and used along with the client ID to authenticate your application.

" + }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret for the Atlassian OAuth2 provider. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } }, "documentation":"

Configuration settings for connecting to Atlassian services using OAuth2 authentication. This includes the client credentials required to authenticate with Atlassian's OAuth2 authorization server.

" @@ -3956,12 +3955,6 @@ "max":256, "min":1 }, - "ClientSecretType":{ - "type":"string", - "max":2048, - "min":1, - "sensitive":true - }, "ClientToken":{ "type":"string", "max":256, @@ -4152,32 +4145,37 @@ "min":1, "pattern":"[a-zA-Z0-9\\-_]+" }, - "CoinbaseCdpApiKeySecretType":{ - "type":"string", - "max":2048, - "min":1, - "pattern":"[a-zA-Z0-9+/=\\-_\\s]+", - "sensitive":true - }, "CoinbaseCdpConfigurationInput":{ "type":"structure", - "required":[ - "apiKeyId", - "apiKeySecret", - "walletSecret" - ], + "required":["apiKeyId"], "members":{ "apiKeyId":{ "shape":"CoinbaseCdpApiKeyIdType", "documentation":"

The API key identifier provided by Coinbase Developer Platform.

" }, "apiKeySecret":{ - "shape":"CoinbaseCdpApiKeySecretType", + "shape":"DefaultCoinbaseCdpApiKeySecretType", "documentation":"

The API key secret provided by Coinbase Developer Platform.

" }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret for the Coinbase Developer Platform. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, + "apiKeySecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the API key secret. This includes the secret ID and the JSON key used to extract the API key secret value from the secret. Required when apiKeySecretSource is set to EXTERNAL.

" + }, "walletSecret":{ - "shape":"CoinbaseCdpWalletSecretType", + "shape":"DefaultCoinbaseCdpWalletSecretType", "documentation":"

The wallet secret provided by Coinbase Developer Platform.

" + }, + "walletSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the wallet secret for the Coinbase Developer Platform. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, + "walletSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the wallet secret. This includes the secret ID and the JSON key used to extract the wallet secret value from the secret. Required when walletSecretSource is set to EXTERNAL.

" } }, "documentation":"

Coinbase CDP configuration — credentials provided by Coinbase Developer Platform.

" @@ -4195,17 +4193,26 @@ "documentation":"

The API key identifier provided by Coinbase Developer Platform.

" }, "apiKeySecretArn":{"shape":"Secret"}, - "walletSecretArn":{"shape":"Secret"} + "apiKeySecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the API key secret value from the AWS Secrets Manager secret.

" + }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, + "walletSecretArn":{"shape":"Secret"}, + "walletSecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the wallet secret value from the AWS Secrets Manager secret.

" + }, + "walletSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the wallet secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + } }, "documentation":"

Coinbase CDP configuration output with secret ARNs.

" }, - "CoinbaseCdpWalletSecretType":{ - "type":"string", - "max":2048, - "min":1, - "pattern":"[a-zA-Z0-9+/=\\-_\\s]+", - "sensitive":true - }, "ComponentConfiguration":{ "type":"structure", "required":["configuration"], @@ -4656,19 +4663,24 @@ }, "CreateApiKeyCredentialProviderRequest":{ "type":"structure", - "required":[ - "name", - "apiKey" - ], + "required":["name"], "members":{ "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the API key credential provider. The name must be unique within your account.

" }, "apiKey":{ - "shape":"ApiKeyType", + "shape":"DefaultApiKeyType", "documentation":"

The API key to use for authentication. This value is encrypted and stored securely.

" }, + "apiKeySecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the API key. This includes the secret ID and the JSON key used to extract the API key value from the secret. Required when apiKeySecretSource is set to EXTERNAL.

" + }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, "tags":{ "shape":"TagsMap", "documentation":"

A map of tag keys and values to assign to the API key credential provider. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.

" @@ -4687,6 +4699,14 @@ "shape":"Secret", "documentation":"

The Amazon Resource Name (ARN) of the secret containing the API key.

" }, + "apiKeySecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the API key value from the AWS Secrets Manager secret.

" + }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the created API key credential provider.

" @@ -5709,6 +5729,14 @@ "shape":"Secret", "documentation":"

The Amazon Resource Name (ARN) of the client secret in AWS Secrets Manager.

" }, + "clientSecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the client secret value from the AWS Secrets Manager secret.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the OAuth2 credential provider.

" @@ -6707,13 +6735,13 @@ "shape":"DefaultClientSecretType", "documentation":"

The client secret for the custom OAuth2 provider.

" }, - "privateEndpoint":{ - "shape":"PrivateEndpoint", - "documentation":"

The default private endpoint for the custom OAuth2 provider, enabling secure connectivity through a VPC Lattice resource configuration.

" + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" }, - "privateEndpointOverrides":{ - "shape":"PrivateEndpointOverrides", - "documentation":"

The private endpoint overrides for the custom OAuth2 provider configuration.

" + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" }, "onBehalfOfTokenExchangeConfig":{ "shape":"OnBehalfOfTokenExchangeConfigType", @@ -6722,6 +6750,14 @@ "clientAuthenticationMethod":{ "shape":"ClientAuthenticationMethodType", "documentation":"

The client authentication method to use when authenticating with the token endpoint.

" + }, + "privateEndpoint":{ + "shape":"PrivateEndpoint", + "documentation":"

The default private endpoint for the custom OAuth2 provider, enabling secure connectivity through a VPC Lattice resource configuration.

" + }, + "privateEndpointOverrides":{ + "shape":"PrivateEndpointOverrides", + "documentation":"

The private endpoint overrides for the custom OAuth2 provider configuration.

" } }, "documentation":"

Input configuration for a custom OAuth2 provider.

" @@ -6954,6 +6990,12 @@ }, "exception":true }, + "DefaultApiKeyType":{ + "type":"string", + "max":65536, + "min":0, + "sensitive":true + }, "DefaultClientIdType":{ "type":"string", "max":256, @@ -6965,6 +7007,34 @@ "min":0, "sensitive":true }, + "DefaultCoinbaseCdpApiKeySecretType":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[a-zA-Z0-9+/=\\-_\\s]*", + "sensitive":true + }, + "DefaultCoinbaseCdpWalletSecretType":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[a-zA-Z0-9+/=\\-_\\s]*", + "sensitive":true + }, + "DefaultStripePrivyAppSecretType":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[a-zA-Z0-9+/=\\-_\\s]*", + "sensitive":true + }, + "DefaultStripePrivyAuthorizationPrivateKeyType":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[a-zA-Z0-9+/=\\-_\\s]*", + "sensitive":true + }, "Definition":{ "type":"string", "max":1000, @@ -9215,6 +9285,14 @@ "shape":"Secret", "documentation":"

The Amazon Resource Name (ARN) of the API key secret in AWS Secrets Manager.

" }, + "apiKeySecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the API key value from the AWS Secrets Manager secret.

" + }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the API key credential provider.

" @@ -10102,6 +10180,14 @@ "shape":"Secret", "documentation":"

The Amazon Resource Name (ARN) of the client secret in AWS Secrets Manager.

" }, + "clientSecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the client secret value from the AWS Secrets Manager secret.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the OAuth2 credential provider.

" @@ -11073,18 +11159,23 @@ }, "GithubOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the GitHub OAuth2 provider.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the GitHub OAuth2 provider.

" + }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } }, "documentation":"

Input configuration for a GitHub OAuth2 provider.

" @@ -11106,18 +11197,23 @@ }, "GoogleOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the Google OAuth2 provider.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the Google OAuth2 provider.

" + }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } }, "documentation":"

Input configuration for a Google OAuth2 provider.

" @@ -12104,19 +12200,24 @@ }, "IncludedOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the supported OAuth2 provider. This identifier is assigned by the OAuth2 provider when you register your application.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the supported OAuth2 provider. This secret is assigned by the OAuth2 provider and used along with the client ID to authenticate your application.

" }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, "issuer":{ "shape":"IssuerUrlType", "documentation":"

Token issuer of your isolated OAuth2 application tenant. This URL identifies the authorization server that issues tokens for this provider.

" @@ -12439,18 +12540,23 @@ }, "LinkedinOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the LinkedIn OAuth2 provider. This identifier is assigned by LinkedIn when you register your application.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the LinkedIn OAuth2 provider. This secret is assigned by LinkedIn and used along with the client ID to authenticate your application.

" + }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } }, "documentation":"

Configuration settings for connecting to LinkedIn services using OAuth2 authentication. This includes the client credentials required to authenticate with LinkedIn's OAuth2 authorization server.

" @@ -14442,19 +14548,24 @@ }, "MicrosoftOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the Microsoft OAuth2 provider.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the Microsoft OAuth2 provider.

" }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, "tenantId":{ "shape":"TenantIdType", "documentation":"

The Microsoft Entra ID (formerly Azure AD) tenant ID for your organization. This identifies the specific tenant within Microsoft's identity platform where your application is registered.

" @@ -16631,18 +16742,23 @@ }, "SalesforceOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the Salesforce OAuth2 provider.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the Salesforce OAuth2 provider.

" + }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } }, "documentation":"

Input configuration for a Salesforce OAuth2 provider.

" @@ -16763,6 +16879,41 @@ "type":"string", "pattern":"arn:(aws|aws-us-gov):secretsmanager:[A-Za-z0-9-]{1,64}:[0-9]{12}:secret:[a-zA-Z0-9-_/+=.@!]+" }, + "SecretIdType":{ + "type":"string", + "max":2048, + "min":1 + }, + "SecretJsonKeyType":{ + "type":"string", + "max":128, + "min":1 + }, + "SecretReference":{ + "type":"structure", + "required":[ + "secretId", + "jsonKey" + ], + "members":{ + "secretId":{ + "shape":"SecretIdType", + "documentation":"

The ID of the AWS Secrets Manager secret that stores the secret value.

" + }, + "jsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the secret value from the AWS Secrets Manager secret.

" + } + }, + "documentation":"

Contains a reference to a secret stored in AWS Secrets Manager.

" + }, + "SecretSourceType":{ + "type":"string", + "enum":[ + "MANAGED", + "EXTERNAL" + ] + }, "SecretsManagerLocation":{ "type":"structure", "required":["secretArn"], @@ -17135,18 +17286,23 @@ }, "SlackOauth2ProviderConfigInput":{ "type":"structure", - "required":[ - "clientId", - "clientSecret" - ], + "required":["clientId"], "members":{ "clientId":{ "shape":"ClientIdType", "documentation":"

The client ID for the Slack OAuth2 provider.

" }, "clientSecret":{ - "shape":"ClientSecretType", + "shape":"DefaultClientSecretType", "documentation":"

The client secret for the Slack OAuth2 provider.

" + }, + "clientSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the client secret. This includes the secret ID and the JSON key used to extract the client secret value from the secret. Required when clientSecretSource is set to EXTERNAL.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } }, "documentation":"

Input configuration for a Slack OAuth2 provider.

" @@ -17419,32 +17575,16 @@ "min":1, "pattern":"[a-zA-Z0-9\\-_]+" }, - "StripePrivyAppSecretType":{ - "type":"string", - "max":2048, - "min":1, - "pattern":"[a-zA-Z0-9+/=\\-_\\s]+", - "sensitive":true - }, "StripePrivyAuthorizationIdType":{ "type":"string", "max":512, "min":1, "pattern":"[a-zA-Z0-9\\-_]+" }, - "StripePrivyAuthorizationPrivateKeyType":{ - "type":"string", - "max":2048, - "min":1, - "pattern":"[a-zA-Z0-9+/=\\-_\\s]+", - "sensitive":true - }, "StripePrivyConfigurationInput":{ "type":"structure", "required":[ "appId", - "appSecret", - "authorizationPrivateKey", "authorizationId" ], "members":{ @@ -17453,13 +17593,29 @@ "documentation":"

The app ID provided by Privy.

" }, "appSecret":{ - "shape":"StripePrivyAppSecretType", + "shape":"DefaultStripePrivyAppSecretType", "documentation":"

The app secret provided by Privy.

" }, + "appSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the app secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, + "appSecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the app secret. This includes the secret ID and the JSON key used to extract the app secret value from the secret. Required when appSecretSource is set to EXTERNAL.

" + }, "authorizationPrivateKey":{ - "shape":"StripePrivyAuthorizationPrivateKeyType", + "shape":"DefaultStripePrivyAuthorizationPrivateKeyType", "documentation":"

The authorization private key for the Stripe Privy integration.

" }, + "authorizationPrivateKeySource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the authorization private key. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" + }, + "authorizationPrivateKeyConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the authorization private key. This includes the secret ID and the JSON key used to extract the authorization private key value from the secret. Required when authorizationPrivateKeySource is set to EXTERNAL.

" + }, "authorizationId":{ "shape":"StripePrivyAuthorizationIdType", "documentation":"

The authorization ID for the Stripe Privy integration.

" @@ -17481,7 +17637,23 @@ "documentation":"

The app ID provided by Privy.

" }, "appSecretArn":{"shape":"Secret"}, + "appSecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the app secret value from the AWS Secrets Manager secret.

" + }, + "appSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the app secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "authorizationPrivateKeyArn":{"shape":"Secret"}, + "authorizationPrivateKeyJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the authorization private key value from the AWS Secrets Manager secret.

" + }, + "authorizationPrivateKeySource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the authorization private key. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "authorizationId":{ "shape":"StripePrivyAuthorizationIdType", "documentation":"

The authorization ID for the Stripe Privy integration.

" @@ -18452,18 +18624,23 @@ }, "UpdateApiKeyCredentialProviderRequest":{ "type":"structure", - "required":[ - "name", - "apiKey" - ], + "required":["name"], "members":{ "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the API key credential provider to update.

" }, "apiKey":{ - "shape":"ApiKeyType", + "shape":"DefaultApiKeyType", "documentation":"

The new API key to use for authentication. This value replaces the existing API key and is encrypted and stored securely.

" + }, + "apiKeySecretConfig":{ + "shape":"SecretReference", + "documentation":"

A reference to the AWS Secrets Manager secret that stores the API key. This includes the secret ID and the JSON key used to extract the API key value from the secret. Required when apiKeySecretSource is set to EXTERNAL.

" + }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret. Use MANAGED if the secret is managed by the service, or EXTERNAL if you manage the secret yourself in AWS Secrets Manager.

" } } }, @@ -18481,6 +18658,14 @@ "shape":"Secret", "documentation":"

The Amazon Resource Name (ARN) of the API key secret in AWS Secrets Manager.

" }, + "apiKeySecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the API key value from the AWS Secrets Manager secret.

" + }, + "apiKeySecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the API key secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the API key credential provider.

" @@ -19286,6 +19471,14 @@ "shape":"Secret", "documentation":"

The Amazon Resource Name (ARN) of the client secret in AWS Secrets Manager.

" }, + "clientSecretJsonKey":{ + "shape":"SecretJsonKeyType", + "documentation":"

The JSON key used to extract the client secret value from the AWS Secrets Manager secret.

" + }, + "clientSecretSource":{ + "shape":"SecretSourceType", + "documentation":"

The source type of the client secret. Either MANAGED if the secret is managed by the service, or EXTERNAL if managed by the user in AWS Secrets Manager.

" + }, "name":{ "shape":"CredentialProviderName", "documentation":"

The name of the OAuth2 credential provider.

" diff --git a/awscli/botocore/data/bedrock/2023-04-20/service-2.json b/awscli/botocore/data/bedrock/2023-04-20/service-2.json index 0a4d153aca90..cc628c018c8a 100644 --- a/awscli/botocore/data/bedrock/2023-04-20/service-2.json +++ b/awscli/botocore/data/bedrock/2023-04-20/service-2.json @@ -3056,6 +3056,12 @@ "min":0, "sensitive":true }, + "AutomatedReasoningPolicyBuildFeedback":{ + "type":"string", + "max":4000, + "min":0, + "sensitive":true + }, "AutomatedReasoningPolicyBuildLog":{ "type":"structure", "required":["entries"], @@ -3391,7 +3397,9 @@ "REFINE_POLICY", "IMPORT_POLICY", "GENERATE_FIDELITY_REPORT", - "GENERATE_POLICY_SCENARIOS" + "GENERATE_POLICY_SCENARIOS", + "RESOLVE_POLICY_AMBIGUITIES", + "ITERATIVELY_REFINE_POLICY" ] }, "AutomatedReasoningPolicyConflictedRuleIdList":{ @@ -3939,6 +3947,27 @@ }, "documentation":"

An annotation for processing and incorporating new content into an Automated Reasoning policy.

" }, + "AutomatedReasoningPolicyIterativeRefinementContent":{ + "type":"structure", + "required":["documents"], + "members":{ + "documents":{ + "shape":"AutomatedReasoningPolicyIterativeRefinementDocumentList", + "documentation":"

Source documents used for iterative policy refinement. These documents provide context for refining the policy definition.

" + }, + "feedback":{ + "shape":"AutomatedReasoningPolicyBuildFeedback", + "documentation":"

Optional feedback to guide the iterative refinement workflow. Provide specific instructions or constraints for policy refinement.

" + } + }, + "documentation":"

Configuration for an iterative policy refinement workflow, including source documents to process and optional feedback to guide the refinement.

" + }, + "AutomatedReasoningPolicyIterativeRefinementDocumentList":{ + "type":"list", + "member":{"shape":"AutomatedReasoningPolicyBuildWorkflowDocument"}, + "max":5, + "min":1 + }, "AutomatedReasoningPolicyJustificationList":{ "type":"list", "member":{"shape":"AutomatedReasoningPolicyJustificationText"} @@ -4622,6 +4651,10 @@ "generateFidelityReportContent":{ "shape":"AutomatedReasoningPolicyGenerateFidelityReportContent", "documentation":"

The content configuration for generating a fidelity report workflow. This can include source documents to analyze or an existing fidelity report to update with a new policy definition.

" + }, + "iterativeRefinementContent":{ + "shape":"AutomatedReasoningPolicyIterativeRefinementContent", + "documentation":"

Content configuration to start an iterative policy refinement workflow that uses generative AI to automatically make changes to the policy based on test results and the optional feedback provided.

" } }, "documentation":"

Defines the content and configuration for different types of policy build workflows.

", diff --git a/awscli/botocore/data/groundstation/2019-05-23/service-2.json b/awscli/botocore/data/groundstation/2019-05-23/service-2.json index 44707c35e062..294946f824c6 100644 --- a/awscli/botocore/data/groundstation/2019-05-23/service-2.json +++ b/awscli/botocore/data/groundstation/2019-05-23/service-2.json @@ -4338,13 +4338,13 @@ "type":"string", "max":69, "min":69, - "pattern":"1 [ 0-9]{5}[A-Z] [ 0-9]{5}[ A-Z]{3} [ 0-9]{5}[.][ 0-9]{8} (?:(?:[ 0+-][.][ 0-9]{8})|(?: [ +-][.][ 0-9]{7})) [ +-][ 0-9]{5}[+-][ 0-9] [ +-][ 0-9]{5}[+-][ 0-9] [ 0-9] [ 0-9]{4}[ 0-9]" + "pattern":"1 [ 0-9A-HJ-NP-Z][ 0-9]{4}[A-Z] [ 0-9]{5}[ A-Z]{3} [ 0-9]{5}[.][ 0-9]{8} (?:(?:[ 0+-][.][ 0-9]{8})|(?: [ +-][.][ 0-9]{7})) [ +-][ 0-9]{5}[+-][ 0-9] [ +-][ 0-9]{5}[+-][ 0-9] [ 0-9] [ 0-9]{4}[ 0-9]" }, "TleLineTwo":{ "type":"string", "max":69, "min":69, - "pattern":"2 [ 0-9]{5} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{7} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{2}[.][ 0-9]{13}[ 0-9]" + "pattern":"2 [ 0-9A-HJ-NP-Z][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{7} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{2}[.][ 0-9]{13}[ 0-9]" }, "TleProgramTrackSettings":{ "type":"structure", @@ -4754,7 +4754,7 @@ }, "noradSatelliteID":{ "type":"integer", - "max":99999, + "max":339999, "min":0 }, "satelliteArn":{ diff --git a/awscli/botocore/data/omics/2022-11-28/service-2.json b/awscli/botocore/data/omics/2022-11-28/service-2.json index 86529ed5e0f1..70a96e0f2d2c 100644 --- a/awscli/botocore/data/omics/2022-11-28/service-2.json +++ b/awscli/botocore/data/omics/2022-11-28/service-2.json @@ -4670,6 +4670,11 @@ "type":"string", "pattern":"[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+" }, + "EngineSettings":{ + "type":"structure", + "members":{}, + "document":true + }, "EngineVersion":{ "type":"string", "pattern":"[0-9]{2}.[0-9]{2}.[0-9]" @@ -6202,6 +6207,10 @@ "vpcConfig":{ "shape":"VpcConfigResponse", "documentation":"

VPC configuration for the workflow run.

" + }, + "engineSettings":{ + "shape":"EngineSettings", + "documentation":"

The engine-specific settings for the workflow run.

" } } }, @@ -6731,6 +6740,14 @@ "readmePath":{ "shape":"ReadmePath", "documentation":"

The path to the workflow README markdown file within the repository. This file provides documentation and usage information for the workflow. If not specified, the README.md file from the root directory of the repository will be used.

" + }, + "profiles":{ + "shape":"WorkflowProfileList", + "documentation":"

The list of Nextflow profiles that are available for this workflow. Profiles allow you to select predefined configuration settings at runtime.

" + }, + "profileParameterTemplates":{ + "shape":"WorkflowProfileParameterTemplates", + "documentation":"

A mapping of profile names to their parameter templates. Each profile defines its own set of parameters that you can use when starting a run with that profile.

" } } }, @@ -6877,6 +6894,14 @@ "readmePath":{ "shape":"ReadmePath", "documentation":"

The path to the workflow version README markdown file within the repository. This file provides documentation and usage information for the workflow. If not specified, the README.md file from the root directory of the repository will be used.

" + }, + "profiles":{ + "shape":"WorkflowProfileList", + "documentation":"

The list of Nextflow profiles that are available for this workflow version. Profiles allow you to select predefined configuration settings at runtime.

" + }, + "profileParameterTemplates":{ + "shape":"WorkflowProfileParameterTemplates", + "documentation":"

A mapping of profile names to their parameter templates. Each profile defines its own set of parameters that you can use when starting a run with that profile.

" } } }, @@ -10934,6 +10959,10 @@ "configurationName":{ "shape":"ConfigurationName", "documentation":"

Optional configuration name to use for the workflow run.

" + }, + "engineSettings":{ + "shape":"EngineSettings", + "documentation":"

Engine-specific settings for the workflow run. Use this field to specify configuration options that are specific to the workflow engine (for example, Nextflow profiles).

" } } }, @@ -12472,6 +12501,16 @@ "max":2000, "min":1 }, + "WorkflowProfileList":{ + "type":"list", + "member":{"shape":"WorkflowProfileName"} + }, + "WorkflowProfileName":{"type":"string"}, + "WorkflowProfileParameterTemplates":{ + "type":"map", + "key":{"shape":"WorkflowProfileName"}, + "value":{"shape":"WorkflowParameterTemplate"} + }, "WorkflowRequestId":{ "type":"string", "max":128, diff --git a/awscli/botocore/data/quicksight/2018-04-01/paginators-1.json b/awscli/botocore/data/quicksight/2018-04-01/paginators-1.json index 9045a1129046..138ca2aac9ba 100644 --- a/awscli/botocore/data/quicksight/2018-04-01/paginators-1.json +++ b/awscli/botocore/data/quicksight/2018-04-01/paginators-1.json @@ -233,6 +233,12 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "FlowSummaryList" + }, + "ListOAuthClientApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "OAuthClientApplications" } } } diff --git a/awscli/botocore/data/quicksight/2018-04-01/service-2.json b/awscli/botocore/data/quicksight/2018-04-01/service-2.json index 4df49c958efa..b426d8b0bd92 100644 --- a/awscli/botocore/data/quicksight/2018-04-01/service-2.json +++ b/awscli/botocore/data/quicksight/2018-04-01/service-2.json @@ -392,6 +392,26 @@ ], "documentation":"

(Enterprise edition only) Creates a new namespace for you to use with Amazon Quick Sight.

A namespace allows you to isolate the Quick Sight users and groups that are registered for that namespace. Users that access the namespace can share assets only with other users or groups in the same namespace. They can't see users and groups in other namespaces. You can create a namespace after your Amazon Web Services account is subscribed to Quick Sight. The namespace must be unique within the Amazon Web Services account. By default, there is a limit of 100 namespaces per Amazon Web Services account. To increase your limit, create a ticket with Amazon Web Services Support.

" }, + "CreateOAuthClientApplication":{ + "name":"CreateOAuthClientApplication", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/oauth-client-applications" + }, + "input":{"shape":"CreateOAuthClientApplicationRequest"}, + "output":{"shape":"CreateOAuthClientApplicationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Creates an OAuthClientApplication.

" + }, "CreateRefreshSchedule":{ "name":"CreateRefreshSchedule", "http":{ @@ -945,6 +965,24 @@ ], "documentation":"

Deletes a namespace and the users and groups that are associated with the namespace. This is an asynchronous process. Assets including dashboards, analyses, datasets and data sources are not deleted. To delete these assets, you use the API operations for the relevant asset.

" }, + "DeleteOAuthClientApplication":{ + "name":"DeleteOAuthClientApplication", + "http":{ + "method":"DELETE", + "requestUri":"/accounts/{AwsAccountId}/oauth-client-applications/{OAuthClientApplicationId}" + }, + "input":{"shape":"DeleteOAuthClientApplicationRequest"}, + "output":{"shape":"DeleteOAuthClientApplicationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Deletes an OAuthClientApplication.

" + }, "DeleteRefreshSchedule":{ "name":"DeleteRefreshSchedule", "http":{ @@ -1875,6 +1913,23 @@ ], "documentation":"

Describes the current namespace.

" }, + "DescribeOAuthClientApplication":{ + "name":"DescribeOAuthClientApplication", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/oauth-client-applications/{OAuthClientApplicationId}" + }, + "input":{"shape":"DescribeOAuthClientApplicationRequest"}, + "output":{"shape":"DescribeOAuthClientApplicationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Describes an OAuthClientApplication.

" + }, "DescribeQPersonalizationConfiguration":{ "name":"DescribeQPersonalizationConfiguration", "http":{ @@ -2749,6 +2804,24 @@ ], "documentation":"

Lists the namespaces for the specified Amazon Web Services account. This operation doesn't list deleted namespaces.

" }, + "ListOAuthClientApplications":{ + "name":"ListOAuthClientApplications", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/oauth-client-applications" + }, + "input":{"shape":"ListOAuthClientApplicationsRequest"}, + "output":{"shape":"ListOAuthClientApplicationsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Lists all OAuthClientApplications in the current Amazon Web Services Region that belong to this Amazon Web Services account.

" + }, "ListRefreshSchedules":{ "name":"ListRefreshSchedules", "http":{ @@ -3987,6 +4060,25 @@ ], "documentation":"

Updates a customer managed key in a Quick Sight account.

" }, + "UpdateOAuthClientApplication":{ + "name":"UpdateOAuthClientApplication", + "http":{ + "method":"PUT", + "requestUri":"/accounts/{AwsAccountId}/oauth-client-applications/{OAuthClientApplicationId}" + }, + "input":{"shape":"UpdateOAuthClientApplicationRequest"}, + "output":{"shape":"UpdateOAuthClientApplicationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Updates an OAuthClientApplication.

" + }, "UpdatePublicSharingSettings":{ "name":"UpdatePublicSharingSettings", "http":{ @@ -12261,6 +12353,93 @@ } } }, + "CreateOAuthClientApplicationRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "OAuthClientApplicationId", + "Name", + "OAuthClientAuthenticationType", + "ClientId", + "ClientSecret", + "OAuthTokenEndpointUrl" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

An ID for the OAuthClientApplication that you want to create. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The display name for the OAuthClientApplication.

" + }, + "OAuthClientAuthenticationType":{ + "shape":"OAuthClientAuthenticationType", + "documentation":"

The authentication type to use for the OAuthClientApplication. This determines the OAuth 2.0 grant flow that is used when the data source connects to the identity provider. Valid values are TOKEN.

" + }, + "ClientId":{ + "shape":"OAuthClientId", + "documentation":"

The client ID of the OAuth application that is registered with the identity provider.

" + }, + "ClientSecret":{ + "shape":"OAuthClientSecret", + "documentation":"

The client secret of the OAuth application that is registered with the identity provider.

" + }, + "OAuthTokenEndpointUrl":{ + "shape":"OAuthTokenEndpointUrl", + "documentation":"

The token endpoint URL of the identity provider that is used to obtain access tokens.

" + }, + "OAuthAuthorizationEndpointUrl":{ + "shape":"OAuthAuthorizationEndpointUrl", + "documentation":"

The authorization endpoint URL of the identity provider that is used to obtain authorization codes.

" + }, + "OAuthScopes":{ + "shape":"OAuthScopesString", + "documentation":"

The OAuth scopes that are requested when the OAuthClientApplication obtains an access token from the identity provider.

" + }, + "DataSourceType":{ + "shape":"DataSourceType", + "documentation":"

The type of data source that the OAuthClientApplication is used with. Valid values are SNOWFLAKE.

" + }, + "IdentityProviderVpcConnectionProperties":{"shape":"VpcConnectionProperties"}, + "Tags":{ + "shape":"TagList", + "documentation":"

Contains a map of the key-value pairs for the resource tag or tags assigned to the OAuthClientApplication.

" + } + } + }, + "CreateOAuthClientApplicationResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the OAuthClientApplication.

" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "CreationStatus":{ + "shape":"ResourceStatus", + "documentation":"

The status of creating the OAuthClientApplication.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "CreateRefreshScheduleRequest":{ "type":"structure", "required":[ @@ -17059,6 +17238,49 @@ } } }, + "DeleteOAuthClientApplicationRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "OAuthClientApplicationId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication that you want to delete.

", + "location":"uri", + "locationName":"OAuthClientApplicationId" + } + } + }, + "DeleteOAuthClientApplicationResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the OAuthClientApplication that you deleted.

" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "DeleteRefreshScheduleRequest":{ "type":"structure", "required":[ @@ -19578,6 +19800,45 @@ } } }, + "DescribeOAuthClientApplicationRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "OAuthClientApplicationId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication that you want to describe.

", + "location":"uri", + "locationName":"OAuthClientApplicationId" + } + } + }, + "DescribeOAuthClientApplicationResponse":{ + "type":"structure", + "members":{ + "OAuthClientApplication":{ + "shape":"OAuthClientApplication", + "documentation":"

The information about the OAuthClientApplication.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "DescribeQPersonalizationConfigurationRequest":{ "type":"structure", "required":["AwsAccountId"], @@ -28050,6 +28311,53 @@ } } }, + "ListOAuthClientApplicationsRequest":{ + "type":"structure", + "required":["AwsAccountId"], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a subsequent request.

", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return.

", + "box":true, + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListOAuthClientApplicationsResponse":{ + "type":"structure", + "members":{ + "OAuthClientApplications":{ + "shape":"OAuthClientApplicationSummaryList", + "documentation":"

A list of OAuthClientApplication summaries.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a subsequent request.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "ListRefreshSchedulesRequest":{ "type":"structure", "required":[ @@ -30069,6 +30377,109 @@ }, "documentation":"

The measure type field with numerical type columns.

" }, + "OAuthAuthorizationEndpointUrl":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^https://[^\\p{Cc}]+", + "sensitive":true + }, + "OAuthClientApplication":{ + "type":"structure", + "members":{ + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The display name of the OAuthClientApplication.

" + }, + "OAuthClientAuthenticationType":{ + "shape":"OAuthClientAuthenticationType", + "documentation":"

The OAuth client authentication type used by the OAuthClientApplication. Valid values are TOKEN.

" + }, + "OAuthTokenEndpointUrl":{ + "shape":"OAuthTokenEndpointUrl", + "documentation":"

The token endpoint URL of the identity provider that is used to obtain access tokens.

" + }, + "OAuthAuthorizationEndpointUrl":{ + "shape":"OAuthAuthorizationEndpointUrl", + "documentation":"

The authorization endpoint URL of the identity provider that is used to obtain authorization codes.

" + }, + "OAuthScopes":{ + "shape":"OAuthScopesString", + "documentation":"

The OAuth scopes that are requested when the OAuthClientApplication obtains an access token from the identity provider.

" + }, + "DataSourceType":{ + "shape":"DataSourceType", + "documentation":"

The type of data source that the OAuthClientApplication is used with. Valid values are SNOWFLAKE.

" + }, + "IdentityProviderVpcConnectionProperties":{"shape":"VpcConnectionProperties"}, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The time that the OAuthClientApplication was created.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The time that the OAuthClientApplication was last updated.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the OAuthClientApplication.

" + } + }, + "documentation":"

An OAuth client application that is used to authenticate connections to a data source through an OAuth identity provider.

" + }, + "OAuthClientApplicationId":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[^/][^\\p{Cc}]*" + }, + "OAuthClientApplicationSummary":{ + "type":"structure", + "members":{ + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The display name of the OAuthClientApplication.

" + }, + "OAuthClientAuthenticationType":{ + "shape":"OAuthClientAuthenticationType", + "documentation":"

The OAuth client authentication type used by the OAuthClientApplication. Valid values are TOKEN.

" + }, + "DataSourceType":{ + "shape":"DataSourceType", + "documentation":"

The type of data source that the OAuthClientApplication is used with. Valid values are SNOWFLAKE.

" + }, + "IdentityProviderVpcConnectionProperties":{"shape":"VpcConnectionProperties"}, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The time that the OAuthClientApplication was created.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The time that the OAuthClientApplication was last updated.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the OAuthClientApplication.

" + } + }, + "documentation":"

A summary of an OAuthClientApplication.

" + }, + "OAuthClientApplicationSummaryList":{ + "type":"list", + "member":{"shape":"OAuthClientApplicationSummary"} + }, + "OAuthClientAuthenticationType":{ + "type":"string", + "enum":["TOKEN"] + }, "OAuthClientCredentials":{ "type":"structure", "members":{ @@ -30091,12 +30502,14 @@ "type":"string", "max":256, "min":1, + "pattern":"[^\\p{Cc}]+", "sensitive":true }, "OAuthClientSecret":{ "type":"string", "max":2048, "min":1, + "pattern":"[^\\p{Cc}]+", "sensitive":true }, "OAuthParameters":{ @@ -30128,6 +30541,19 @@ "max":128, "min":1 }, + "OAuthScopesString":{ + "type":"string", + "max":4096, + "min":1, + "pattern":"[^\\p{Cc}]+" + }, + "OAuthTokenEndpointUrl":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^https://[^\\p{Cc}]+", + "sensitive":true + }, "OAuthUsername":{ "type":"string", "max":64, @@ -42687,6 +43113,83 @@ "member":{"shape":"ResourcePermission"}, "max":100 }, + "UpdateOAuthClientApplicationRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "OAuthClientApplicationId", + "Name" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication that you want to update.

", + "location":"uri", + "locationName":"OAuthClientApplicationId" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The display name for the OAuthClientApplication.

" + }, + "ClientId":{ + "shape":"OAuthClientId", + "documentation":"

The client ID of the OAuth application that is registered with the identity provider.

" + }, + "ClientSecret":{ + "shape":"OAuthClientSecret", + "documentation":"

The client secret of the OAuth application that is registered with the identity provider.

" + }, + "OAuthTokenEndpointUrl":{ + "shape":"OAuthTokenEndpointUrl", + "documentation":"

The token endpoint URL of the identity provider that is used to obtain access tokens.

" + }, + "OAuthAuthorizationEndpointUrl":{ + "shape":"OAuthAuthorizationEndpointUrl", + "documentation":"

The authorization endpoint URL of the identity provider that is used to obtain authorization codes.

" + }, + "OAuthScopes":{ + "shape":"OAuthScopesString", + "documentation":"

The OAuth scopes that are requested when the OAuthClientApplication obtains an access token from the identity provider.

" + }, + "DataSourceType":{ + "shape":"DataSourceType", + "documentation":"

The type of data source that the OAuthClientApplication is used with. Valid values are SNOWFLAKE.

" + }, + "IdentityProviderVpcConnectionProperties":{"shape":"VpcConnectionProperties"} + } + }, + "UpdateOAuthClientApplicationResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the OAuthClientApplication.

" + }, + "OAuthClientApplicationId":{ + "shape":"OAuthClientApplicationId", + "documentation":"

The ID of the OAuthClientApplication. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "UpdateStatus":{ + "shape":"ResourceStatus", + "documentation":"

The status of updating the OAuthClientApplication.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "UpdatePublicSharingSettingsRequest":{ "type":"structure", "required":["AwsAccountId"], diff --git a/awscli/botocore/data/rds-data/2018-08-01/service-2.json b/awscli/botocore/data/rds-data/2018-08-01/service-2.json index 38f24957d695..04ed03b78187 100644 --- a/awscli/botocore/data/rds-data/2018-08-01/service-2.json +++ b/awscli/botocore/data/rds-data/2018-08-01/service-2.json @@ -31,8 +31,8 @@ {"shape":"TransactionNotFoundException"}, {"shape":"InvalidSecretException"}, {"shape":"InvalidResourceStateException"}, - {"shape":"ServiceUnavailableError"}, {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableError"}, {"shape":"DatabaseNotFoundException"}, {"shape":"AccessDeniedException"}, {"shape":"BadRequestException"}, @@ -59,8 +59,8 @@ {"shape":"TransactionNotFoundException"}, {"shape":"InvalidSecretException"}, {"shape":"InvalidResourceStateException"}, - {"shape":"ServiceUnavailableError"}, {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableError"}, {"shape":"DatabaseNotFoundException"}, {"shape":"AccessDeniedException"}, {"shape":"BadRequestException"}, @@ -86,8 +86,8 @@ {"shape":"TransactionNotFoundException"}, {"shape":"InvalidSecretException"}, {"shape":"InvalidResourceStateException"}, - {"shape":"ServiceUnavailableError"}, {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableError"}, {"shape":"DatabaseNotFoundException"}, {"shape":"AccessDeniedException"}, {"shape":"BadRequestException"}, @@ -136,8 +136,8 @@ {"shape":"TransactionNotFoundException"}, {"shape":"InvalidSecretException"}, {"shape":"InvalidResourceStateException"}, - {"shape":"ServiceUnavailableError"}, {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableError"}, {"shape":"DatabaseNotFoundException"}, {"shape":"AccessDeniedException"}, {"shape":"BadRequestException"}, @@ -164,8 +164,8 @@ {"shape":"TransactionNotFoundException"}, {"shape":"InvalidSecretException"}, {"shape":"InvalidResourceStateException"}, - {"shape":"ServiceUnavailableError"}, {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableError"}, {"shape":"DatabaseNotFoundException"}, {"shape":"AccessDeniedException"}, {"shape":"BadRequestException"}, @@ -191,36 +191,37 @@ }, "Arn":{ "type":"string", - "max":100, + "max":570, "min":11 }, "ArrayOfArray":{ "type":"list", "member":{"shape":"ArrayValue"}, - "documentation":"

An array of arrays.

Some array entries can be null.

" + "documentation":"

An array of arrays. Can contain null values.

", + "sparse":true }, "ArrayValue":{ "type":"structure", "members":{ "booleanValues":{ "shape":"BooleanArray", - "documentation":"

An array of Boolean values.

" + "documentation":"

An array of Boolean values. Can contain null values.

" }, "longValues":{ "shape":"LongArray", - "documentation":"

An array of integers.

" + "documentation":"

An array of integers. Can contain null values.

" }, "doubleValues":{ "shape":"DoubleArray", - "documentation":"

An array of floating-point numbers.

" + "documentation":"

An array of floating-point numbers. Can contain null values.

" }, "stringValues":{ "shape":"StringArray", - "documentation":"

An array of strings.

" + "documentation":"

An array of strings. Can contain null values.

" }, "arrayValues":{ "shape":"ArrayOfArray", - "documentation":"

An array of arrays.

" + "documentation":"

An array of arrays. Can contain null values.

" } }, "documentation":"

Contains an array.

", @@ -335,7 +336,8 @@ "BooleanArray":{ "type":"list", "member":{"shape":"BoxedBoolean"}, - "documentation":"

An array of Boolean values.

Some array entries can be null.

" + "documentation":"

An array of Boolean values. Can contain null values.

", + "sparse":true }, "BoxedBoolean":{ "type":"boolean", @@ -490,8 +492,7 @@ }, "DatabaseUnavailableException":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The writer instance in the DB cluster isn't available.

", "error":{"httpStatusCode":504}, "exception":true, @@ -512,7 +513,8 @@ "DoubleArray":{ "type":"list", "member":{"shape":"BoxedDouble"}, - "documentation":"

An array of floating-point numbers.

Some array entries can be null.

" + "documentation":"

An array of floating-point numbers. Can contain null values.

", + "sparse":true }, "ErrorMessage":{"type":"string"}, "ExecuteSqlRequest":{ @@ -570,7 +572,7 @@ }, "secretArn":{ "shape":"Arn", - "documentation":"

The ARN of the secret that enables access to the DB cluster. Enter the database user name and password for the credentials in the secret.

For information about creating the secret, see Create a database secret.

" + "documentation":"

The ARN of the secret that enables access to the DB cluster. Enter the database user name and password for the credentials in the secret.

For information about creating the secret, see Create a database secret.

When you use the CLI on Linux to reference a secret created in the RDS console, the ARN might include special characters like rds!cluster. If you enclose the ARN in double quotes, the ! character might trigger a shell expansion error, such as -bash: !cluster: event not found. To avoid this, escape the exclamation mark (\\!) in the ARN or enclose the entire ARN in single quotes (') instead of double quotes.

Alternatively, disable shell history expansion by running set +H before you execute the command.

" }, "sql":{ "shape":"SqlStatement", @@ -712,8 +714,7 @@ "Integer":{"type":"integer"}, "InternalServerErrorException":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

An internal error occurred.

", "error":{"httpStatusCode":500}, "exception":true, @@ -747,7 +748,8 @@ "LongArray":{ "type":"list", "member":{"shape":"BoxedLong"}, - "documentation":"

An array of integers.

Some array entries can be null.

" + "documentation":"

An array of integers. Can contain null values.

", + "sparse":true }, "LongReturnType":{ "type":"string", @@ -891,8 +893,7 @@ }, "ServiceUnavailableError":{ "type":"structure", - "members":{ - }, + "members":{}, "documentation":"

The service specified by the resourceArn parameter isn't available.

", "error":{"httpStatusCode":503}, "exception":true, @@ -974,7 +975,8 @@ "StringArray":{ "type":"list", "member":{"shape":"String"}, - "documentation":"

An array of strings.

Some array entries can be null.

" + "documentation":"

An array of strings. Can contain null values.

", + "sparse":true }, "StructValue":{ "type":"structure", diff --git a/awscli/botocore/data/route53resolver/2018-04-01/paginators-1.json b/awscli/botocore/data/route53resolver/2018-04-01/paginators-1.json index d6529438ffd2..9d9358838bbf 100644 --- a/awscli/botocore/data/route53resolver/2018-04-01/paginators-1.json +++ b/awscli/botocore/data/route53resolver/2018-04-01/paginators-1.json @@ -95,6 +95,12 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "OutpostResolvers" + }, + "ListFirewallRuleTypes": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "FirewallRuleTypes" } } } diff --git a/awscli/botocore/data/route53resolver/2018-04-01/service-2.json b/awscli/botocore/data/route53resolver/2018-04-01/service-2.json index eddda4a04d34..9d03bfacec13 100644 --- a/awscli/botocore/data/route53resolver/2018-04-01/service-2.json +++ b/awscli/botocore/data/route53resolver/2018-04-01/service-2.json @@ -93,6 +93,57 @@ ], "documentation":"

Associates a Resolver rule with a VPC. When you associate a rule with a VPC, Resolver forwards all DNS queries for the domain name that is specified in the rule and that originate in the VPC. The queries are forwarded to the IP addresses for the DNS resolvers that are specified in the rule. For more information about rules, see CreateResolverRule.

" }, + "BatchCreateFirewallRule":{ + "name":"BatchCreateFirewallRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchCreateFirewallRuleRequest"}, + "output":{"shape":"BatchCreateFirewallRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates multiple DNS Firewall rules in the specified rule group.

" + }, + "BatchDeleteFirewallRule":{ + "name":"BatchDeleteFirewallRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeleteFirewallRuleRequest"}, + "output":{"shape":"BatchDeleteFirewallRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes multiple DNS Firewall rules from the specified rule group.

" + }, + "BatchUpdateFirewallRule":{ + "name":"BatchUpdateFirewallRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchUpdateFirewallRuleRequest"}, + "output":{"shape":"BatchUpdateFirewallRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates multiple DNS Firewall rules in the specified rule group.

" + }, "CreateFirewallDomainList":{ "name":"CreateFirewallDomainList", "http":{ @@ -770,6 +821,22 @@ ], "documentation":"

Retrieves the minimal high-level information for the rule groups that you have defined.

A single call might return only a partial list of the rule groups. For information, see MaxResults.

" }, + "ListFirewallRuleTypes":{ + "name":"ListFirewallRuleTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFirewallRuleTypesRequest"}, + "output":{"shape":"ListFirewallRuleTypesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the available rule types that can be used in DNS Firewall rules.

" + }, "ListFirewallRules":{ "name":"ListFirewallRules", "http":{ @@ -1389,6 +1456,141 @@ "USE_LOCAL_RESOURCE_SETTING" ] }, + "BatchCreateFirewallRuleError":{ + "type":"structure", + "members":{ + "FirewallRule":{ + "shape":"CreateFirewallRuleEntry", + "documentation":"

The firewall rule entry that caused the error.

" + }, + "Code":{ + "shape":"String", + "documentation":"

The error code for the failure.

" + }, + "Message":{ + "shape":"String", + "documentation":"

A message that provides details about the error.

" + } + }, + "documentation":"

An error that occurred while creating a firewall rule in a batch operation.

" + }, + "BatchCreateFirewallRuleErrors":{ + "type":"list", + "member":{"shape":"BatchCreateFirewallRuleError"} + }, + "BatchCreateFirewallRuleRequest":{ + "type":"structure", + "required":["CreateFirewallRuleEntries"], + "members":{ + "CreateFirewallRuleEntries":{ + "shape":"CreateFirewallRuleEntries", + "documentation":"

The list of firewall rules to create.

" + } + } + }, + "BatchCreateFirewallRuleResponse":{ + "type":"structure", + "members":{ + "CreatedFirewallRules":{ + "shape":"FirewallRules", + "documentation":"

The firewall rules that were successfully created by the request.

" + }, + "CreateErrors":{ + "shape":"BatchCreateFirewallRuleErrors", + "documentation":"

A list of errors that occurred while creating the firewall rules.

" + } + } + }, + "BatchDeleteFirewallRuleError":{ + "type":"structure", + "members":{ + "FirewallRule":{ + "shape":"DeleteFirewallRuleEntry", + "documentation":"

The firewall rule entry that caused the error.

" + }, + "Code":{ + "shape":"String", + "documentation":"

The error code for the failure.

" + }, + "Message":{ + "shape":"String", + "documentation":"

A message that provides details about the error.

" + } + }, + "documentation":"

An error that occurred while deleting a firewall rule in a batch operation.

" + }, + "BatchDeleteFirewallRuleErrors":{ + "type":"list", + "member":{"shape":"BatchDeleteFirewallRuleError"} + }, + "BatchDeleteFirewallRuleRequest":{ + "type":"structure", + "required":["DeleteFirewallRuleEntries"], + "members":{ + "DeleteFirewallRuleEntries":{ + "shape":"DeleteFirewallRuleEntries", + "documentation":"

The list of firewall rules to delete.

" + } + } + }, + "BatchDeleteFirewallRuleResponse":{ + "type":"structure", + "members":{ + "DeletedFirewallRules":{ + "shape":"FirewallRules", + "documentation":"

The firewall rules that were successfully deleted by the request.

" + }, + "DeleteErrors":{ + "shape":"BatchDeleteFirewallRuleErrors", + "documentation":"

A list of errors that occurred while deleting the firewall rules.

" + } + } + }, + "BatchUpdateFirewallRuleError":{ + "type":"structure", + "members":{ + "FirewallRule":{ + "shape":"UpdateFirewallRuleEntry", + "documentation":"

The firewall rule entry that caused the error.

" + }, + "Code":{ + "shape":"String", + "documentation":"

The error code for the failure.

" + }, + "Message":{ + "shape":"String", + "documentation":"

A message that provides details about the error.

" + } + }, + "documentation":"

An error that occurred while updating a firewall rule in a batch operation.

" + }, + "BatchUpdateFirewallRuleErrors":{ + "type":"list", + "member":{"shape":"BatchUpdateFirewallRuleError"} + }, + "BatchUpdateFirewallRuleRequest":{ + "type":"structure", + "required":["UpdateFirewallRuleEntries"], + "members":{ + "UpdateFirewallRuleEntries":{ + "shape":"UpdateFirewallRuleEntries", + "documentation":"

The list of firewall rules to update.

" + } + } + }, + "BatchUpdateFirewallRuleResponse":{ + "type":"structure", + "members":{ + "UpdatedFirewallRules":{ + "shape":"FirewallRules", + "documentation":"

The firewall rules that were successfully updated by the request.

" + }, + "UpdateErrors":{ + "shape":"BatchUpdateFirewallRuleErrors", + "documentation":"

A list of errors that occurred while updating the firewall rules.

" + } + } + }, "BlockOverrideDnsType":{ "type":"string", "enum":["CNAME"] @@ -1412,6 +1614,10 @@ ] }, "Boolean":{"type":"boolean"}, + "Category":{ + "type":"string", + "max":256 + }, "ConfidenceThreshold":{ "type":"string", "enum":[ @@ -1461,6 +1667,93 @@ } } }, + "CreateFirewallRuleEntries":{ + "type":"list", + "member":{"shape":"CreateFirewallRuleEntry"} + }, + "CreateFirewallRuleEntry":{ + "type":"structure", + "required":[ + "CreatorRequestId", + "FirewallRuleGroupId", + "Priority", + "Action", + "Name" + ], + "members":{ + "CreatorRequestId":{ + "shape":"CreatorRequestId", + "documentation":"

A unique string that identifies the request and that allows you to retry failed requests without the risk of running the operation twice. CreatorRequestId can be any unique string, for example, a date/time stamp.

" + }, + "FirewallRuleGroupId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the firewall rule group where you want to create the rule.

" + }, + "FirewallDomainListId":{ + "shape":"ResourceId", + "documentation":"

The ID of the domain list that you want to use in the rule. This setting is mutually exclusive with DnsThreatProtection and FirewallRuleType.

", + "box":true + }, + "Priority":{ + "shape":"Priority", + "documentation":"

The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.

" + }, + "Action":{ + "shape":"Action", + "documentation":"

The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule:

  • ALLOW - Permit the request to go through. Not available for DNS Firewall Advanced rules.

  • ALERT - Permit the request and send metrics and logs to CloudWatch.

  • BLOCK - Disallow the request. This option requires additional details in the rule's BlockResponse.

" + }, + "BlockResponse":{ + "shape":"BlockResponse", + "documentation":"

The way that you want DNS Firewall to block the request, used with the rule action setting BLOCK.

  • NODATA - Respond indicating that the query was successful, but no response is available for it.

  • NXDOMAIN - Respond indicating that the domain name that's in the query doesn't exist.

  • OVERRIDE - Provide a custom override in the response. This option requires custom handling details in the rule's BlockOverride* settings.

", + "box":true + }, + "BlockOverrideDomain":{ + "shape":"BlockOverrideDomain", + "documentation":"

The custom DNS record to send back in response to the query. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE.

", + "box":true + }, + "BlockOverrideDnsType":{ + "shape":"BlockOverrideDnsType", + "documentation":"

The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE.

", + "box":true + }, + "BlockOverrideTtl":{ + "shape":"BlockOverrideTtl", + "documentation":"

The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE.

This setting is required if the BlockResponse setting is OVERRIDE.

", + "box":true + }, + "Name":{ + "shape":"Name", + "documentation":"

A name that lets you identify the rule in the rule group.

" + }, + "FirewallDomainRedirectionAction":{ + "shape":"FirewallDomainRedirectionAction", + "documentation":"

How you want the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.

INSPECT_REDIRECTION_DOMAIN: (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be added to the domain list.

TRUST_REDIRECTION_DOMAIN: Inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the redirection list to the domain list.

", + "box":true + }, + "Qtype":{ + "shape":"Qtype", + "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are:

  • A: Returns an IPv4 address.

  • AAAA: Returns an IPv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see List of DNS record types.

", + "box":true + }, + "DnsThreatProtection":{ + "shape":"DnsThreatProtection", + "documentation":"

The type of the DNS Firewall Advanced rule. This setting is mutually exclusive with FirewallDomainListId and FirewallRuleType. Valid values are:

  • DGA: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to launch malware attacks.

  • DNS_TUNNELING: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without making a network connection to the client.

  • DICT_DGA: Dictionary-based domain generation algorithms detection. Dictionary DGAs use wordlists to generate domains that appear more legitimate, making them harder to detect than traditional DGAs.

", + "box":true + }, + "ConfidenceThreshold":{ + "shape":"ConfidenceThreshold", + "documentation":"

The confidence threshold for DNS Firewall Advanced. You must provide this value when you create or update a DNS Firewall Advanced rule. The confidence level values mean:

  • LOW: Provides the highest detection rate for threats, but also increases false positives.

  • MEDIUM: Provides a balance between detecting threats and false positives.

  • HIGH: Detects only the most well corroborated threats with a low rate of false positives.

", + "box":true + }, + "FirewallRuleType":{ + "shape":"FirewallRuleType", + "documentation":"

The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level FirewallDomainListId and DnsThreatProtection fields.

", + "box":true + } + }, + "documentation":"

The details for creating a single firewall rule in a batch operation.

" + }, "CreateFirewallRuleGroupRequest":{ "type":"structure", "required":[ @@ -1556,7 +1849,7 @@ }, "Qtype":{ "shape":"Qtype", - "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65334, for example, TYPE28. For more information, see List of DNS record types.

", + "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see List of DNS record types.

", "box":true }, "DnsThreatProtection":{ @@ -1568,6 +1861,11 @@ "shape":"ConfidenceThreshold", "documentation":"

The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence level values mean:

  • LOW: Provides the highest detection rate for threats, but also increases false positives.

  • MEDIUM: Provides a balance between detecting threats and false positives.

  • HIGH: Detects only the most well corroborated threats with a low rate of false positives.

", "box":true + }, + "FirewallRuleType":{ + "shape":"FirewallRuleType", + "documentation":"

The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level FirewallDomainListId and DnsThreatProtection fields.

", + "box":true } } }, @@ -1833,6 +2131,35 @@ } } }, + "DeleteFirewallRuleEntries":{ + "type":"list", + "member":{"shape":"DeleteFirewallRuleEntry"} + }, + "DeleteFirewallRuleEntry":{ + "type":"structure", + "required":["FirewallRuleGroupId"], + "members":{ + "FirewallRuleGroupId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the firewall rule group for the rule.

" + }, + "FirewallDomainListId":{ + "shape":"ResourceId", + "documentation":"

The ID of the domain list that's used in the rule.

", + "box":true + }, + "FirewallThreatProtectionId":{ + "shape":"ResourceId", + "documentation":"

The ID of the DNS Firewall Advanced rule.

", + "box":true + }, + "Qtype":{ + "shape":"Qtype", + "documentation":"

The DNS query type that the rule evaluates.

" + } + }, + "documentation":"

The details for deleting a single firewall rule in a batch operation.

" + }, "DeleteFirewallRuleGroupRequest":{ "type":"structure", "required":["FirewallRuleGroupId"], @@ -1872,7 +2199,7 @@ }, "Qtype":{ "shape":"Qtype", - "documentation":"

The DNS query type that the rule you are deleting evaluates. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65334, for example, TYPE28. For more information, see List of DNS record types.

" + "documentation":"

The DNS query type that the rule you are deleting evaluates. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see List of DNS record types.

" } } }, @@ -2063,6 +2390,10 @@ } } }, + "DisplayName":{ + "type":"string", + "max":256 + }, "Dns64Enabled":{"type":"boolean"}, "DnsThreatProtection":{ "type":"string", @@ -2072,11 +2403,41 @@ "DICTIONARY_DGA" ] }, + "DnsThreatProtectionRuleTypeConfig":{ + "type":"structure", + "required":[ + "Value", + "ConfidenceThreshold" + ], + "members":{ + "Value":{ + "shape":"DnsThreatProtectionRuleTypeValue", + "documentation":"

The type of DNS threat protection. Valid values are:

  • DGA: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to launch malware attacks.

  • DNS_TUNNELING: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without making a network connection to the client.

  • DICT_DGA: Dictionary-based domain generation algorithms detection. Dictionary DGAs use wordlists to generate domains that appear more legitimate, making them harder to detect than traditional DGAs.

" + }, + "ConfidenceThreshold":{ + "shape":"ConfidenceThreshold", + "documentation":"

The confidence threshold for DNS Firewall Advanced. You must provide this value when you create or update a DNS Firewall Advanced rule. The confidence level values mean:

  • LOW: Provides the highest detection rate for threats, but also increases false positives.

  • MEDIUM: Provides a balance between detecting threats and false positives.

  • HIGH: Detects only the most well corroborated threats with a low rate of false positives.

" + } + }, + "documentation":"

The configuration for a DNS threat protection rule type within the rule type framework.

" + }, + "DnsThreatProtectionRuleTypeValue":{ + "type":"string", + "max":128, + "min":1 + }, "DomainListFileUrl":{ "type":"string", "max":1024, "min":1 }, + "DomainListType":{ + "type":"string", + "enum":[ + "THREAT", + "CONTENT" + ] + }, "DomainName":{ "type":"string", "max":256, @@ -2115,6 +2476,38 @@ "type":"list", "member":{"shape":"Filter"} }, + "FirewallAdvancedContentCategoryConfig":{ + "type":"structure", + "required":["Category"], + "members":{ + "Category":{ + "shape":"FirewallAdvancedContentCategoryValue", + "documentation":"

The content category identifier. To retrieve the list of available content categories, call ListFirewallRuleTypes with RuleType set to FirewallAdvancedContentCategory.

" + } + }, + "documentation":"

The configuration for a content category-based filtering rule. This specifies which content category to use for DNS query evaluation.

" + }, + "FirewallAdvancedContentCategoryValue":{ + "type":"string", + "max":128, + "min":1 + }, + "FirewallAdvancedThreatCategoryConfig":{ + "type":"structure", + "required":["Category"], + "members":{ + "Category":{ + "shape":"FirewallAdvancedThreatCategoryValue", + "documentation":"

The threat category identifier. To retrieve the list of available threat categories, call ListFirewallRuleTypes with RuleType set to FirewallAdvancedThreatCategory.

" + } + }, + "documentation":"

The configuration for a threat category-based filtering rule. This specifies which threat category to use for DNS query evaluation.

" + }, + "FirewallAdvancedThreatCategoryValue":{ + "type":"string", + "max":128, + "min":1 + }, "FirewallConfig":{ "type":"structure", "members":{ @@ -2187,6 +2580,14 @@ "ModificationTime":{ "shape":"Rfc3339TimeString", "documentation":"

The date and time that the domain list was last modified, in Unix time format and Coordinated Universal Time (UTC).

" + }, + "Category":{ + "shape":"Category", + "documentation":"

The category of the domain list.

" + }, + "ManagedListType":{ + "shape":"DomainListType", + "documentation":"

The type of the managed domain list, for example THREAT.

" } }, "documentation":"

High-level information about a list of firewall domains for use in a FirewallRule. This is returned by GetFirewallDomainList.

To retrieve the domains that are defined for this domain list, call ListFirewallDomains.

" @@ -2213,6 +2614,14 @@ "ManagedOwnerName":{ "shape":"ServicePrinciple", "documentation":"

The owner of the list, used only for lists that are not managed by you. For example, the managed domain list AWSManagedDomainsMalwareDomainList has the managed owner name Route 53 Resolver DNS Firewall.

" + }, + "ManagedListType":{ + "shape":"DomainListType", + "documentation":"

The type of the managed domain list, for example THREAT.

" + }, + "Category":{ + "shape":"Category", + "documentation":"

The category of the domain list.

" } }, "documentation":"

Minimal high-level information for a firewall domain list. The action ListFirewallDomainLists returns an array of these objects.

To retrieve full information for a firewall domain list, call GetFirewallDomainList and ListFirewallDomains.

" @@ -2324,7 +2733,7 @@ }, "Qtype":{ "shape":"Qtype", - "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65334, for example, TYPE28. For more information, see List of DNS record types.

" + "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see List of DNS record types.

" }, "DnsThreatProtection":{ "shape":"DnsThreatProtection", @@ -2333,6 +2742,10 @@ "ConfidenceThreshold":{ "shape":"ConfidenceThreshold", "documentation":"

The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence level values mean:

  • LOW: Provides the highest detection rate for threats, but also increases false positives.

  • MEDIUM: Provides a balance between detecting threats and false positives.

  • HIGH: Detects only the most well corroborated threats with a low rate of false positives.

" + }, + "FirewallRuleType":{ + "shape":"FirewallRuleType", + "documentation":"

The rule type configuration for the firewall rule. Exactly one member of this union should be set.

" } }, "documentation":"

A single firewall rule in a rule group.

" @@ -2503,6 +2916,53 @@ "UPDATING" ] }, + "FirewallRuleType":{ + "type":"structure", + "members":{ + "FirewallAdvancedContentCategory":{ + "shape":"FirewallAdvancedContentCategoryConfig", + "documentation":"

The configuration for a content category-based filtering rule.

", + "box":true + }, + "FirewallAdvancedThreatCategory":{ + "shape":"FirewallAdvancedThreatCategoryConfig", + "documentation":"

The configuration for a threat category-based filtering rule.

", + "box":true + }, + "DnsThreatProtection":{ + "shape":"DnsThreatProtectionRuleTypeConfig", + "documentation":"

The configuration for a DNS threat protection rule type, such as DGA or DNS tunneling detection.

", + "box":true + } + }, + "documentation":"

The configuration for a rule type in a DNS Firewall rule. This is a union type — exactly one member should be set.

" + }, + "FirewallRuleTypeDefinition":{ + "type":"structure", + "members":{ + "RuleType":{ + "shape":"RuleTypeName", + "documentation":"

The category or class of the rule type, such as FirewallAdvancedContentCategory or FirewallAdvancedThreatCategory.

" + }, + "Value":{ + "shape":"RuleTypeValue", + "documentation":"

The specific identifier within the rule type category, such as VIOLENCE_AND_HATE_SPEECH or PHISHING.

" + }, + "DisplayName":{ + "shape":"DisplayName", + "documentation":"

The display name of the rule type.

" + }, + "Description":{ + "shape":"RuleTypeDescription", + "documentation":"

A description of the rule type.

" + } + }, + "documentation":"

The definition of an available rule type that can be used in DNS Firewall rules. This is returned by ListFirewallRuleTypes.

" + }, + "FirewallRuleTypeDefinitions":{ + "type":"list", + "member":{"shape":"FirewallRuleTypeDefinition"} + }, "FirewallRules":{ "type":"list", "member":{"shape":"FirewallRule"} @@ -3201,6 +3661,39 @@ } } }, + "ListFirewallRuleTypesRequest":{ + "type":"structure", + "members":{ + "RuleType":{ + "shape":"RuleTypeName", + "documentation":"

The rule type to filter by. If specified, only rule types matching this value are returned.

", + "box":true + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

", + "box":true + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for retrieval, Resolver provides a NextToken value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.

", + "box":true + } + } + }, + "ListFirewallRuleTypesResponse":{ + "type":"structure", + "members":{ + "FirewallRuleTypes":{ + "shape":"FirewallRuleTypeDefinitions", + "documentation":"

A list of the available rule type definitions.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.

" + } + } + }, "ListFirewallRulesRequest":{ "type":"structure", "required":["FirewallRuleGroupId"], @@ -4350,6 +4843,14 @@ "min":20 }, "RniEnhancedMetricsEnabled":{"type":"boolean"}, + "RuleTypeDescription":{ + "type":"string", + "max":1024 + }, + "RuleTypeName":{ + "type":"string", + "max":128 + }, "RuleTypeOption":{ "type":"string", "enum":[ @@ -4359,6 +4860,10 @@ "DELEGATE" ] }, + "RuleTypeValue":{ + "type":"string", + "max":128 + }, "SecurityGroupIds":{ "type":"list", "member":{"shape":"ResourceId"} @@ -4614,6 +5119,90 @@ } } }, + "UpdateFirewallRuleEntries":{ + "type":"list", + "member":{"shape":"UpdateFirewallRuleEntry"} + }, + "UpdateFirewallRuleEntry":{ + "type":"structure", + "required":["FirewallRuleGroupId"], + "members":{ + "FirewallRuleGroupId":{ + "shape":"ResourceId", + "documentation":"

The unique identifier of the firewall rule group for the rule.

" + }, + "FirewallDomainListId":{ + "shape":"ResourceId", + "documentation":"

The ID of the domain list to use in the rule. This setting is mutually exclusive with DnsThreatProtection and FirewallRuleType.

", + "box":true + }, + "FirewallThreatProtectionId":{ + "shape":"ResourceId", + "documentation":"

The ID of the DNS Firewall Advanced rule.

", + "box":true + }, + "Priority":{ + "shape":"Priority", + "documentation":"

The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.

", + "box":true + }, + "Action":{ + "shape":"Action", + "documentation":"

The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule:

  • ALLOW - Permit the request to go through. Not available for DNS Firewall Advanced rules.

  • ALERT - Permit the request and send metrics and logs to CloudWatch.

  • BLOCK - Disallow the request. This option requires additional details in the rule's BlockResponse.

", + "box":true + }, + "BlockResponse":{ + "shape":"BlockResponse", + "documentation":"

The way that you want DNS Firewall to block the request, used with the rule action setting BLOCK.

  • NODATA - Respond indicating that the query was successful, but no response is available for it.

  • NXDOMAIN - Respond indicating that the domain name that's in the query doesn't exist.

  • OVERRIDE - Provide a custom override in the response. This option requires custom handling details in the rule's BlockOverride* settings.

", + "box":true + }, + "BlockOverrideDomain":{ + "shape":"BlockOverrideDomain", + "documentation":"

The custom DNS record to send back in response to the query. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE.

", + "box":true + }, + "BlockOverrideDnsType":{ + "shape":"BlockOverrideDnsType", + "documentation":"

The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE.

", + "box":true + }, + "BlockOverrideTtl":{ + "shape":"BlockOverrideTtl", + "documentation":"

The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE.

This setting is required if the BlockResponse setting is OVERRIDE.

", + "box":true + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the rule.

", + "box":true + }, + "FirewallDomainRedirectionAction":{ + "shape":"FirewallDomainRedirectionAction", + "documentation":"

How you want the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.

INSPECT_REDIRECTION_DOMAIN: (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be added to the domain list.

TRUST_REDIRECTION_DOMAIN: Inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the redirection list to the domain list.

", + "box":true + }, + "Qtype":{ + "shape":"Qtype", + "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are:

  • A: Returns an IPv4 address.

  • AAAA: Returns an IPv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see List of DNS record types.

" + }, + "DnsThreatProtection":{ + "shape":"DnsThreatProtection", + "documentation":"

The type of the DNS Firewall Advanced rule. This setting is mutually exclusive with FirewallDomainListId and FirewallRuleType. Valid values are:

  • DGA: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to launch malware attacks.

  • DNS_TUNNELING: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without making a network connection to the client.

  • DICT_DGA: Dictionary-based domain generation algorithms detection. Dictionary DGAs use wordlists to generate domains that appear more legitimate, making them harder to detect than traditional DGAs.

", + "box":true + }, + "ConfidenceThreshold":{ + "shape":"ConfidenceThreshold", + "documentation":"

The confidence threshold for DNS Firewall Advanced. You must provide this value when you create or update a DNS Firewall Advanced rule. The confidence level values mean:

  • LOW: Provides the highest detection rate for threats, but also increases false positives.

  • MEDIUM: Provides a balance between detecting threats and false positives.

  • HIGH: Detects only the most well corroborated threats with a low rate of false positives.

", + "box":true + }, + "FirewallRuleType":{ + "shape":"FirewallRuleType", + "documentation":"

The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level FirewallDomainListId and DnsThreatProtection fields.

", + "box":true + } + }, + "documentation":"

The details for updating a single firewall rule in a batch operation.

" + }, "UpdateFirewallRuleGroupAssociationRequest":{ "type":"structure", "required":["FirewallRuleGroupAssociationId"], @@ -4708,7 +5297,7 @@ }, "Qtype":{ "shape":"Qtype", - "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65334, for example, TYPE28. For more information, see List of DNS record types.

    If you set up a firewall BLOCK rule with action NXDOMAIN on query type equals AAAA, this action will not be applied to synthetic IPv6 addresses generated when DNS64 is enabled.

" + "documentation":"

The DNS query type you want the rule to evaluate. Allowed values are;

  • A: Returns an IPv4 address.

  • AAAA: Returns an Ipv6 address.

  • CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

  • CNAME: Returns another domain name.

  • DS: Record that identifies the DNSSEC signing key of a delegated zone.

  • MX: Specifies mail servers.

  • NAPTR: Regular-expression-based rewriting of domain names.

  • NS: Authoritative name servers.

  • PTR: Maps an IP address to a domain name.

  • SOA: Start of authority record for the zone.

  • SPF: Lists the servers authorized to send emails from a domain.

  • SRV: Application specific values that identify servers.

  • TXT: Verifies email senders and application-specific values.

  • A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see List of DNS record types.

    If you set up a firewall BLOCK rule with action NXDOMAIN on query type equals AAAA, this action will not be applied to synthetic IPv6 addresses generated when DNS64 is enabled.

" }, "DnsThreatProtection":{ "shape":"DnsThreatProtection", @@ -4719,6 +5308,11 @@ "shape":"ConfidenceThreshold", "documentation":"

The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence level values mean:

  • LOW: Provides the highest detection rate for threats, but also increases false positives.

  • MEDIUM: Provides a balance between detecting threats and false positives.

  • HIGH: Detects only the most well corroborated threats with a low rate of false positives.

", "box":true + }, + "FirewallRuleType":{ + "shape":"FirewallRuleType", + "documentation":"

The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level FirewallDomainListId and DnsThreatProtection fields.

", + "box":true } } }, diff --git a/awscli/botocore/data/sesv2/2019-09-27/service-2.json b/awscli/botocore/data/sesv2/2019-09-27/service-2.json index 7e63d6833265..5419ffd9c724 100644 --- a/awscli/botocore/data/sesv2/2019-09-27/service-2.json +++ b/awscli/botocore/data/sesv2/2019-09-27/service-2.json @@ -280,7 +280,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Create a tenant.

Tenants are logical containers that group related SES resources together. Each tenant can have its own set of resources like email identities, configuration sets, and templates, along with reputation metrics and sending status. This helps isolate and manage email sending for different customers or business units within your Amazon SES API v2 account.

" + "documentation":"

Create a tenant.

Tenants are logical containers that group related SES resources together. Each tenant can have its own set of resources like email identities, configuration sets, and templates, along with reputation metrics and sending status. This helps isolate and manage email sending for different customers or business units within your Amazon SES API v2 account.

You can optionally specify SuppressionAttributes to configure tenant-level suppression at creation time. When tenant-level suppression is enabled, Amazon SES maintains a separate suppression list for the tenant instead of using the account-level suppression list.

" }, "CreateTenantResourceAssociation":{ "name":"CreateTenantResourceAssociation", @@ -466,7 +466,7 @@ {"shape":"BadRequestException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Removes an email address from the suppression list for your account.

" + "documentation":"

Removes an email address from the suppression list for your account or for a specific tenant. To target a tenant's suppression list, specify the TenantName parameter. If you omit TenantName, the address is removed from the account-level suppression list.

" }, "DeleteTenant":{ "name":"DeleteTenant", @@ -764,7 +764,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Displays the template object (which includes the subject line, HTML part and text part) for the template you specify.

You can execute this operation no more than once per second.

" + "documentation":"

Displays the template object (which includes the subject line, HTML part and text part) for the template you specify.

You can execute this operation no more than 50 times per second.

" }, "GetExportJob":{ "name":"GetExportJob", @@ -854,7 +854,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"} ], - "documentation":"

Retrieves information about a specific email address that's on the suppression list for your account.

" + "documentation":"

Retrieves information about a specific email address that's on the suppression list for your account or for a specific tenant. To target a tenant's suppression list, specify the TenantName parameter. If you omit TenantName, the operation targets the account-level suppression list.

" }, "GetTenant":{ "name":"GetTenant", @@ -869,7 +869,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Get information about a specific tenant, including the tenant's name, ID, ARN, creation timestamp, tags, and sending status.

" + "documentation":"

Get information about a specific tenant, including the tenant's name, ID, ARN, creation timestamp, tags, sending status, and suppression attributes.

" }, "ListConfigurationSets":{ "name":"ListConfigurationSets", @@ -1097,9 +1097,10 @@ "errors":[ {"shape":"BadRequestException"}, {"shape":"TooManyRequestsException"}, - {"shape":"InvalidNextTokenException"} + {"shape":"InvalidNextTokenException"}, + {"shape":"NotFoundException"} ], - "documentation":"

Retrieves a list of email addresses that are on the suppression list for your account.

" + "documentation":"

Retrieves a list of email addresses that are on the suppression list for your account or for a specific tenant. To target a tenant's suppression list, specify the TenantName parameter. If you omit TenantName, the operation targets the account-level suppression list.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -1290,7 +1291,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Specify the account suppression list preferences for a configuration set.

" + "documentation":"

Specify the suppression list preferences for a configuration set. You can also use this operation to specify a SuppressionScope to override the suppression scope of the tenant or account for emails sent using this configuration set.

" }, "PutConfigurationSetTrackingOptions":{ "name":"PutConfigurationSetTrackingOptions", @@ -1471,9 +1472,25 @@ "output":{"shape":"PutSuppressedDestinationResponse"}, "errors":[ {"shape":"BadRequestException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Adds an email address to the suppression list for your account or for a specific tenant. To target a tenant's suppression list, specify the TenantName parameter. If you omit TenantName, the address is added to the account-level suppression list.

" + }, + "PutTenantSuppressionAttributes":{ + "name":"PutTenantSuppressionAttributes", + "http":{ + "method":"POST", + "requestUri":"/v2/email/tenant/suppression" + }, + "input":{"shape":"PutTenantSuppressionAttributesRequest"}, + "output":{"shape":"PutTenantSuppressionAttributesResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} ], - "documentation":"

Adds an email address to the suppression list for your account.

" + "documentation":"

Configure the suppression list preferences for a tenant. Use this operation to enable or disable tenant-level suppression, or to change the suppressed reasons for a tenant.

When you set the suppression scope to TENANT, Amazon SES maintains a separate suppression list for the tenant. When you set the scope to ACCOUNT, the tenant uses the account-level suppression list.

" }, "SendBulkEmail":{ "name":"SendBulkEmail", @@ -2144,7 +2161,7 @@ "members":{ "DimensionName":{ "shape":"DimensionName", - "documentation":"

The name of an Amazon CloudWatch dimension associated with an email sending metric. The name has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 256 characters.

" + "documentation":"

The name of an Amazon CloudWatch dimension associated with an email sending metric. The name has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 255 characters.

" }, "DimensionValueSource":{ "shape":"DimensionValueSource", @@ -2152,7 +2169,7 @@ }, "DefaultDimensionValue":{ "shape":"DefaultDimensionValue", - "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • Can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-), at signs (@), and periods (.).

  • It can contain no more than 256 characters.

" + "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • Can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-), at signs (@), and periods (.).

  • It can contain no more than 255 characters.

" } }, "documentation":"

An object that defines the dimension configuration to use when you send email events to Amazon CloudWatch.

" @@ -2347,7 +2364,10 @@ "shape":"TagList", "documentation":"

An array of objects that define the tags (keys and values) to associate with the configuration set.

" }, - "SuppressionOptions":{"shape":"SuppressionOptions"}, + "SuppressionOptions":{ + "shape":"SuppressionOptions", + "documentation":"

An object that contains information about the suppression list preferences for the configuration set. You can optionally include a SuppressionScope to override the tenant or account suppression scope for emails sent using this configuration set.

" + }, "VdmOptions":{ "shape":"VdmOptions", "documentation":"

An object that defines the VDM options for emails that you send using the configuration set.

" @@ -2743,6 +2763,10 @@ "Tags":{ "shape":"TagList", "documentation":"

An array of objects that define the tags (keys and values) to associate with the tenant

" + }, + "SuppressionAttributes":{ + "shape":"TenantSuppressionAttributes", + "documentation":"

An object that contains information about the suppression list preferences for the tenant. Use this to configure tenant-level suppression at creation time.

" } }, "documentation":"

Represents a request to create a tenant.

Tenants are logical containers that group related SES resources together. Each tenant can have its own set of resources like email identities, configuration sets, and templates, along with reputation metrics and sending status. This helps isolate and manage email sending for different customers or business units within your Amazon SES API v2 account.

" @@ -2796,7 +2820,8 @@ "SendingStatus":{ "shape":"SendingStatus", "documentation":"

The status of email sending capability for the tenant.

" - } + }, + "SuppressionAttributes":{"shape":"TenantSuppressionAttributes"} }, "documentation":"

Information about a newly created tenant.

" }, @@ -2937,7 +2962,7 @@ }, "DefaultDimensionValue":{ "type":"string", - "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 256 characters.

" + "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 255 characters.

" }, "DeleteConfigurationSetEventDestinationRequest":{ "type":"structure", @@ -3153,12 +3178,18 @@ "members":{ "EmailAddress":{ "shape":"EmailAddress", - "documentation":"

The suppressed email destination to remove from the account suppression list.

", + "documentation":"

The suppressed email destination to remove from the suppression list for your account or for the specified tenant.

", "location":"uri", "locationName":"EmailAddress" + }, + "TenantName":{ + "shape":"TenantName", + "documentation":"

The name of the tenant whose suppression list you want to remove the address from. If you omit this parameter, the address is removed from the account-level suppression list.

", + "location":"querystring", + "locationName":"TenantName" } }, - "documentation":"

A request to remove an email address from the suppression list for your account.

" + "documentation":"

A request to remove an email address from the suppression list for your account or for a specific tenant.

" }, "DeleteSuppressedDestinationResponse":{ "type":"structure", @@ -3322,7 +3353,7 @@ "DiagnosticCode":{"type":"string"}, "DimensionName":{ "type":"string", - "documentation":"

The name of an Amazon CloudWatch dimension associated with an email sending metric. The name has to meet the following criteria:

  • It can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).

  • It can contain no more than 256 characters.

" + "documentation":"

The name of an Amazon CloudWatch dimension associated with an email sending metric. The name has to meet the following criteria:

  • It can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).

  • It can contain no more than 255 characters.

" }, "DimensionValueSource":{ "type":"string", @@ -4169,7 +4200,7 @@ }, "SuppressionOptions":{ "shape":"SuppressionOptions", - "documentation":"

An object that contains information about the suppression list preferences for your account.

" + "documentation":"

An object that contains information about the suppression list preferences for your account or for a specific tenant.

" }, "VdmOptions":{ "shape":"VdmOptions", @@ -4927,12 +4958,18 @@ "members":{ "EmailAddress":{ "shape":"EmailAddress", - "documentation":"

The email address that's on the account suppression list.

", + "documentation":"

The email address that's on the suppression list for your account or for the specified tenant.

", "location":"uri", "locationName":"EmailAddress" + }, + "TenantName":{ + "shape":"TenantName", + "documentation":"

The name of the tenant whose suppression list you want to query. If you omit this parameter, the operation targets the account-level suppression list.

", + "location":"querystring", + "locationName":"TenantName" } }, - "documentation":"

A request to retrieve information about an email address that's on the suppression list for your account.

" + "documentation":"

A request to retrieve information about an email address that's on the suppression list for your account or for a specific tenant.

" }, "GetSuppressedDestinationResponse":{ "type":"structure", @@ -5834,9 +5871,15 @@ "ListSuppressedDestinationsRequest":{ "type":"structure", "members":{ + "TenantName":{ + "shape":"TenantName", + "documentation":"

The name of the tenant whose suppression list you want to retrieve. If you omit this parameter, the operation targets the account-level suppression list.

", + "location":"querystring", + "locationName":"TenantName" + }, "Reasons":{ "shape":"SuppressionListReasons", - "documentation":"

The factors that caused the email address to be added to .

", + "documentation":"

The factors that caused the email address to be added to the suppression list for your account or for a specific tenant.

", "location":"querystring", "locationName":"Reason" }, @@ -5865,7 +5908,7 @@ "locationName":"PageSize" } }, - "documentation":"

A request to obtain a list of email destinations that are on the suppression list for your account.

" + "documentation":"

A request to obtain a list of email destinations that are on the suppression list for your account or for a specific tenant.

" }, "ListSuppressedDestinationsResponse":{ "type":"structure", @@ -5876,7 +5919,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

A token that indicates that there are additional email addresses on the suppression list for your account. To view additional suppressed addresses, issue another request to ListSuppressedDestinations, and pass this token in the NextToken parameter.

" + "documentation":"

A token that indicates that there are additional email addresses on the suppression list for your account or for the specified tenant. To view additional suppressed addresses, issue another request to ListSuppressedDestinations, and pass this token in the NextToken parameter.

" } }, "documentation":"

A list of suppressed email addresses.

" @@ -6705,16 +6748,20 @@ "location":"uri", "locationName":"ConfigurationSetName" }, + "SuppressionScope":{ + "shape":"SuppressionListScope", + "documentation":"

The suppression scope for the configuration set. This overrides the tenant or account suppression scope for emails sent using this configuration set. Can be one of the following:

  • TENANT – Use the tenant's suppression list.

  • ACCOUNT – Use the account-level suppression list.

" + }, "SuppressedReasons":{ "shape":"SuppressionListReasons", - "documentation":"

A list that contains the reasons that email addresses are automatically added to the suppression list for your account. This list can contain any or all of the following:

  • COMPLAINT – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce.

" + "documentation":"

A list that contains the reasons that email addresses are automatically added to the suppression list for your account or for a specific tenant. This list can contain any or all of the following:

  • COMPLAINT – Amazon SES adds an email address to the suppression list for your account or for a specific tenant when a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES adds an email address to the suppression list for your account or for a specific tenant when a message sent to that address results in a hard bounce.

" }, "ValidationOptions":{ "shape":"SuppressionValidationOptions", "documentation":"

An object that contains information about the email address suppression preferences for the configuration set in the current Amazon Web Services Region.

" } }, - "documentation":"

A request to change the account suppression list preferences for a specific configuration set.

" + "documentation":"

A request to change the suppression list preferences for a specific configuration set.

" }, "PutConfigurationSetSuppressionOptionsResponse":{ "type":"structure", @@ -7004,20 +7051,48 @@ "members":{ "EmailAddress":{ "shape":"EmailAddress", - "documentation":"

The email address that should be added to the suppression list for your account.

" + "documentation":"

The email address that should be added to the suppression list for your account or for the specified tenant.

" }, "Reason":{ "shape":"SuppressionListReason", - "documentation":"

The factors that should cause the email address to be added to the suppression list for your account.

" + "documentation":"

The factors that should cause the email address to be added to the suppression list for your account or for the specified tenant.

" + }, + "TenantName":{ + "shape":"TenantName", + "documentation":"

The name of the tenant whose suppression list you want to add the address to. If you omit this parameter, the address is added to the account-level suppression list.

" } }, - "documentation":"

A request to add an email destination to the suppression list for your account.

" + "documentation":"

A request to add an email destination to the suppression list for your account or for a specific tenant.

" }, "PutSuppressedDestinationResponse":{ "type":"structure", "members":{}, "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" }, + "PutTenantSuppressionAttributesRequest":{ + "type":"structure", + "required":["TenantName"], + "members":{ + "TenantName":{ + "shape":"TenantName", + "documentation":"

The name of the tenant to configure suppression list preferences for.

" + }, + "SuppressedReasons":{ + "shape":"SuppressionListReasons", + "documentation":"

A list that contains the reasons that email addresses are automatically added to the suppression list for the tenant. This list can contain any or all of the following:

  • COMPLAINT – Amazon SES adds an email address to the suppression list when a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES adds an email address to the suppression list when a message sent to that address results in a hard bounce.

" + }, + "SuppressionScope":{ + "shape":"SuppressionListScope", + "documentation":"

The suppression scope for the tenant. Specify TENANT to use the tenant's own suppression list, or ACCOUNT to use the account-level suppression list.

If you don't specify a suppression scope, the tenant defaults to ACCOUNT scope and uses the account-level suppression list.

" + } + }, + "documentation":"

A request to configure the suppression list preferences for a tenant.

" + }, + "PutTenantSuppressionAttributesResponse":{ + "type":"structure", + "members":{}, + "documentation":"

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

" + }, "QueryErrorCode":{ "type":"string", "enum":[ @@ -7650,11 +7725,11 @@ "members":{ "EmailAddress":{ "shape":"EmailAddress", - "documentation":"

The email address that is on the suppression list for your account.

" + "documentation":"

The email address that is on the suppression list for your account or for a specific tenant.

" }, "Reason":{ "shape":"SuppressionListReason", - "documentation":"

The reason that the address was added to the suppression list for your account.

" + "documentation":"

The reason that the address was added to the suppression list for your account or for a specific tenant.

" }, "LastUpdateTime":{ "shape":"Timestamp", @@ -7662,24 +7737,28 @@ }, "Attributes":{ "shape":"SuppressedDestinationAttributes", - "documentation":"

An optional value that can contain additional information about the reasons that the address was added to the suppression list for your account.

" + "documentation":"

An optional value that can contain additional information about the reasons that the address was added to the suppression list for your account or for a specific tenant.

" + }, + "TenantName":{ + "shape":"TenantName", + "documentation":"

The name of the tenant that the suppressed destination belongs to. This field is present only when the suppressed destination is on a tenant's suppression list.

" } }, - "documentation":"

An object that contains information about an email address that is on the suppression list for your account.

" + "documentation":"

An object that contains information about an email address that is on the suppression list for your account or for a specific tenant.

" }, "SuppressedDestinationAttributes":{ "type":"structure", "members":{ "MessageId":{ "shape":"OutboundMessageId", - "documentation":"

The unique identifier of the email message that caused the email address to be added to the suppression list for your account.

" + "documentation":"

The unique identifier of the email message that caused the email address to be added to the suppression list for your account or for a specific tenant.

" }, "FeedbackId":{ "shape":"FeedbackId", - "documentation":"

A unique identifier that's generated when an email address is added to the suppression list for your account.

" + "documentation":"

A unique identifier that's generated when an email address is added to the suppression list for your account or for a specific tenant.

" } }, - "documentation":"

An object that contains additional attributes that are related an email address that is on the suppression list for your account.

" + "documentation":"

An object that contains additional attributes that are related an email address that is on the suppression list for your account or for a specific tenant.

" }, "SuppressedDestinationSummaries":{ "type":"list", @@ -7695,11 +7774,11 @@ "members":{ "EmailAddress":{ "shape":"EmailAddress", - "documentation":"

The email address that's on the suppression list for your account.

" + "documentation":"

The email address that's on the suppression list for your account or for a specific tenant.

" }, "Reason":{ "shape":"SuppressionListReason", - "documentation":"

The reason that the address was added to the suppression list for your account.

" + "documentation":"

The reason that the address was added to the suppression list for your account or for a specific tenant.

" }, "LastUpdateTime":{ "shape":"Timestamp", @@ -7775,7 +7854,7 @@ }, "SuppressionListReason":{ "type":"string", - "documentation":"

The reason that the address was added to the suppression list for your account. The value can be one of the following:

  • COMPLAINT – Amazon SES added an email address to the suppression list for your account because a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES added an email address to the suppression list for your account because a message sent to that address results in a hard bounce.

", + "documentation":"

The reason that the address was added to the suppression list for your account or for a specific tenant. The value can be one of the following:

  • COMPLAINT – Amazon SES added an email address to the suppression list for your account or for a specific tenant because a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES added an email address to the suppression list for your account or for a specific tenant because a message sent to that address results in a hard bounce.

", "enum":[ "BOUNCE", "COMPLAINT" @@ -7785,16 +7864,28 @@ "type":"list", "member":{"shape":"SuppressionListReason"} }, + "SuppressionListScope":{ + "type":"string", + "documentation":"

The suppression scope that determines which suppression list Amazon SES uses. Can be one of the following:

  • TENANT – Use the tenant's own suppression list.

  • ACCOUNT – Use the account-level suppression list.

", + "enum":[ + "ACCOUNT", + "TENANT" + ] + }, "SuppressionOptions":{ "type":"structure", "members":{ "SuppressedReasons":{ "shape":"SuppressionListReasons", - "documentation":"

A list that contains the reasons that email addresses are automatically added to the suppression list for your account. This list can contain any or all of the following:

  • COMPLAINT – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce.

" + "documentation":"

A list that contains the reasons that email addresses are automatically added to the suppression list for your account or for a specific tenant. This list can contain any or all of the following:

  • COMPLAINT – Amazon SES adds an email address to the suppression list for your account or for a specific tenant when a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES adds an email address to the suppression list for your account or for a specific tenant when a message sent to that address results in a hard bounce.

" + }, + "SuppressionScope":{ + "shape":"SuppressionListScope", + "documentation":"

The suppression scope for the configuration set. This overrides the tenant or account suppression scope for emails sent using this configuration set. Can be one of the following:

  • TENANT – Use the tenant's suppression list.

  • ACCOUNT – Use the account-level suppression list.

" }, "ValidationOptions":{"shape":"SuppressionValidationOptions"} }, - "documentation":"

An object that contains information about the suppression list preferences for your account.

" + "documentation":"

An object that contains information about the suppression list preferences for your account or for a specific tenant.

" }, "SuppressionValidationAttributes":{ "type":"structure", @@ -7927,6 +8018,10 @@ "SendingStatus":{ "shape":"SendingStatus", "documentation":"

The status of sending capability for the tenant.

" + }, + "SuppressionAttributes":{ + "shape":"TenantSuppressionAttributes", + "documentation":"

An object that contains information about the suppression list preferences for the tenant.

" } }, "documentation":"

A structure that contains details about a tenant.

" @@ -7983,6 +8078,20 @@ "member":{"shape":"TenantResource"}, "documentation":"

A list of resources associated with a tenant.

" }, + "TenantSuppressionAttributes":{ + "type":"structure", + "members":{ + "SuppressedReasons":{ + "shape":"SuppressionListReasons", + "documentation":"

A list that contains the reasons that email addresses are automatically added to the suppression list for the tenant. This list can contain any or all of the following:

  • COMPLAINT – Amazon SES adds an email address to the suppression list when a message sent to that address results in a complaint.

  • BOUNCE – Amazon SES adds an email address to the suppression list when a message sent to that address results in a hard bounce.

" + }, + "SuppressionScope":{ + "shape":"SuppressionListScope", + "documentation":"

The suppression scope for the tenant. Can be one of the following:

  • TENANT – The tenant uses its own suppression list.

  • ACCOUNT – The tenant uses the account-level suppression list.

If you don't specify a suppression scope, the tenant defaults to ACCOUNT scope and uses the account-level suppression list.

" + } + }, + "documentation":"

An object that contains the suppression list preferences for a tenant.

" + }, "TestRenderEmailTemplateRequest":{ "type":"structure", "required":[ From 69ffdc8247712d86ceb888021bc9655a3614a951 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 29 May 2026 18:11:23 +0000 Subject: [PATCH 49/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index 7a8f5d454b07..e8a9fa7e88c7 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -38285,7 +38285,8 @@ "hostname" : "elasticfilesystem-fips.us-isob-east-1.sc2s.sgov.gov", "tags" : [ "fips" ] } ] - } + }, + "us-isob-west-1" : { } } }, "elasticloadbalancing" : { From 6b91bb09edefc590c0591e441ee3ab2e13f7b11b Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 29 May 2026 18:13:12 +0000 Subject: [PATCH 50/73] Bump version to 2.34.57 --- .changes/2.34.57.json | 57 +++++++++++++++++++ .../next-release/api-change-bedrock-9880.json | 5 -- ...-change-bedrockagentcorecontrol-31783.json | 5 -- .../api-change-groundstation-16640.json | 5 -- .../next-release/api-change-omics-37757.json | 5 -- .../api-change-quicksight-91046.json | 5 -- .../api-change-rdsdata-42211.json | 5 -- .../api-change-route53resolver-59742.json | 5 -- .../next-release/api-change-sesv2-95302.json | 5 -- .changes/next-release/bugfix-s3-52243.json | 5 -- .../enhancement-Retries-30198.json | 5 -- .../enhancement-botocore-93454.json | 5 -- CHANGELOG.rst | 16 ++++++ awscli/__init__.py | 2 +- configure | 14 ++--- configure.ac | 2 +- doc/source/conf.py | 2 +- 17 files changed, 83 insertions(+), 65 deletions(-) create mode 100644 .changes/2.34.57.json delete mode 100644 .changes/next-release/api-change-bedrock-9880.json delete mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-31783.json delete mode 100644 .changes/next-release/api-change-groundstation-16640.json delete mode 100644 .changes/next-release/api-change-omics-37757.json delete mode 100644 .changes/next-release/api-change-quicksight-91046.json delete mode 100644 .changes/next-release/api-change-rdsdata-42211.json delete mode 100644 .changes/next-release/api-change-route53resolver-59742.json delete mode 100644 .changes/next-release/api-change-sesv2-95302.json delete mode 100644 .changes/next-release/bugfix-s3-52243.json delete mode 100644 .changes/next-release/enhancement-Retries-30198.json delete mode 100644 .changes/next-release/enhancement-botocore-93454.json diff --git a/.changes/2.34.57.json b/.changes/2.34.57.json new file mode 100644 index 000000000000..bf59847ea0f3 --- /dev/null +++ b/.changes/2.34.57.json @@ -0,0 +1,57 @@ +[ + { + "category": "s3", + "description": "Fix false negative in parent-directory escape detection that allowed keys like ``/../foo`` to bypass warning during downloads", + "type": "bugfix" + }, + { + "category": "``omics``", + "description": "Add engineSettings to StartRun and GetRun. Add profiles and profileParameterTemplates to GetWorkflow and GetWorkflowVersion.", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore-control``", + "description": "Reference your own AWS Secrets Manager secrets when configuring credential providers, giving you control over encryption, rotation, and access policies instead of using service-managed secrets.", + "type": "api-change" + }, + { + "category": "``groundstation``", + "description": "Adds support for Alpha-5 satellite number encoding in the Two-Line Element ephemeris format.", + "type": "api-change" + }, + { + "category": "``rds-data``", + "description": "RDS Data API arrays (longValues, doubleValues, stringValues, booleanValues) in ExecuteStatement responses now correctly support null elements. Runtime change for JS v3 and .NET. Compile-time change for C plus plus, .NET, Kotlin, Rust. No impact for Java, Python, Ruby, PHP, Go.", + "type": "api-change" + }, + { + "category": "Retries", + "description": "Introduced ``AWS_NEW_RETRIES_2026``, an opt-in environment variable (defaults to ``false``) that activates updated standard retry mode behavior. When set to ``true``, the standard retry mode uses lower initial backoff delays (50ms base instead of 1s for non-throttling errors), applies service-specific max attempt overrides, and honors the ``x-amz-retry-after`` response header for server-guided retry timing.", + "type": "enhancement" + }, + { + "category": "``bedrock``", + "description": "Automated Reasoning checks - Added two build workflows for policies. Iterative Refine Policy uses AI to update policy definitions based on test results and feedback. Resolve Policy Ambiguities consolidates ambiguous variables in Automated Reasoning policies, a common source of ambiguous validation.", + "type": "api-change" + }, + { + "category": "``route53resolver``", + "description": "Added BatchCreateFirewallRule, BatchUpdateFirewallRule, BatchDeleteFirewallRule, and ListFirewallRuleTypes APIs. Added FirewallRuleType support to Firewall Rule APIs.", + "type": "api-change" + }, + { + "category": "``sesv2``", + "description": "This release introduces support for Tenant Suppression Lists", + "type": "api-change" + }, + { + "category": "botocore", + "description": "Update protocol tests to latest and handle null values in sparse map serialization and deserialization", + "type": "enhancement" + }, + { + "category": "``quicksight``", + "description": "Adds support for creating, updating, describing, listing, and deleting an OAuthClientApplication resource, a new quicksight resource that allows customers to store OAuth configurations to connect to their databases via 3 Legged OAuth.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-bedrock-9880.json b/.changes/next-release/api-change-bedrock-9880.json deleted file mode 100644 index 9b73aba15352..000000000000 --- a/.changes/next-release/api-change-bedrock-9880.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock``", - "description": "Automated Reasoning checks - Added two build workflows for policies. Iterative Refine Policy uses AI to update policy definitions based on test results and feedback. Resolve Policy Ambiguities consolidates ambiguous variables in Automated Reasoning policies, a common source of ambiguous validation." -} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-31783.json b/.changes/next-release/api-change-bedrockagentcorecontrol-31783.json deleted file mode 100644 index 3ddfe3fede1f..000000000000 --- a/.changes/next-release/api-change-bedrockagentcorecontrol-31783.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore-control``", - "description": "Reference your own AWS Secrets Manager secrets when configuring credential providers, giving you control over encryption, rotation, and access policies instead of using service-managed secrets." -} diff --git a/.changes/next-release/api-change-groundstation-16640.json b/.changes/next-release/api-change-groundstation-16640.json deleted file mode 100644 index 05ea5f9d8d0c..000000000000 --- a/.changes/next-release/api-change-groundstation-16640.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``groundstation``", - "description": "Adds support for Alpha-5 satellite number encoding in the Two-Line Element ephemeris format." -} diff --git a/.changes/next-release/api-change-omics-37757.json b/.changes/next-release/api-change-omics-37757.json deleted file mode 100644 index aee37ca14a78..000000000000 --- a/.changes/next-release/api-change-omics-37757.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``omics``", - "description": "Add engineSettings to StartRun and GetRun. Add profiles and profileParameterTemplates to GetWorkflow and GetWorkflowVersion." -} diff --git a/.changes/next-release/api-change-quicksight-91046.json b/.changes/next-release/api-change-quicksight-91046.json deleted file mode 100644 index c21ce2a5f497..000000000000 --- a/.changes/next-release/api-change-quicksight-91046.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``quicksight``", - "description": "Adds support for creating, updating, describing, listing, and deleting an OAuthClientApplication resource, a new quicksight resource that allows customers to store OAuth configurations to connect to their databases via 3 Legged OAuth." -} diff --git a/.changes/next-release/api-change-rdsdata-42211.json b/.changes/next-release/api-change-rdsdata-42211.json deleted file mode 100644 index 2e2873e56400..000000000000 --- a/.changes/next-release/api-change-rdsdata-42211.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``rds-data``", - "description": "RDS Data API arrays (longValues, doubleValues, stringValues, booleanValues) in ExecuteStatement responses now correctly support null elements. Runtime change for JS v3 and .NET. Compile-time change for C plus plus, .NET, Kotlin, Rust. No impact for Java, Python, Ruby, PHP, Go." -} diff --git a/.changes/next-release/api-change-route53resolver-59742.json b/.changes/next-release/api-change-route53resolver-59742.json deleted file mode 100644 index 7dd038ab8a88..000000000000 --- a/.changes/next-release/api-change-route53resolver-59742.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``route53resolver``", - "description": "Added BatchCreateFirewallRule, BatchUpdateFirewallRule, BatchDeleteFirewallRule, and ListFirewallRuleTypes APIs. Added FirewallRuleType support to Firewall Rule APIs." -} diff --git a/.changes/next-release/api-change-sesv2-95302.json b/.changes/next-release/api-change-sesv2-95302.json deleted file mode 100644 index 0d4035ff557e..000000000000 --- a/.changes/next-release/api-change-sesv2-95302.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sesv2``", - "description": "This release introduces support for Tenant Suppression Lists" -} diff --git a/.changes/next-release/bugfix-s3-52243.json b/.changes/next-release/bugfix-s3-52243.json deleted file mode 100644 index d17fa89a8178..000000000000 --- a/.changes/next-release/bugfix-s3-52243.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "bugfix", - "category": "s3", - "description": "Fix false negative in parent-directory escape detection that allowed keys like ``/../foo`` to bypass warning during downloads" -} diff --git a/.changes/next-release/enhancement-Retries-30198.json b/.changes/next-release/enhancement-Retries-30198.json deleted file mode 100644 index 5d68935c8e80..000000000000 --- a/.changes/next-release/enhancement-Retries-30198.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "Retries", - "description": "Introduced ``AWS_NEW_RETRIES_2026``, an opt-in environment variable (defaults to ``false``) that activates updated standard retry mode behavior. When set to ``true``, the standard retry mode uses lower initial backoff delays (50ms base instead of 1s for non-throttling errors), applies service-specific max attempt overrides, and honors the ``x-amz-retry-after`` response header for server-guided retry timing." -} diff --git a/.changes/next-release/enhancement-botocore-93454.json b/.changes/next-release/enhancement-botocore-93454.json deleted file mode 100644 index 4da3645f51f7..000000000000 --- a/.changes/next-release/enhancement-botocore-93454.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "botocore", - "description": "Update protocol tests to latest and handle null values in sparse map serialization and deserialization" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 50cea68e93e2..8b8f906401b5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,22 @@ CHANGELOG ========= +2.34.57 +======= + +* bugfix:s3: Fix false negative in parent-directory escape detection that allowed keys like ``/../foo`` to bypass warning during downloads +* api-change:``omics``: Add engineSettings to StartRun and GetRun. Add profiles and profileParameterTemplates to GetWorkflow and GetWorkflowVersion. +* api-change:``bedrock-agentcore-control``: Reference your own AWS Secrets Manager secrets when configuring credential providers, giving you control over encryption, rotation, and access policies instead of using service-managed secrets. +* api-change:``groundstation``: Adds support for Alpha-5 satellite number encoding in the Two-Line Element ephemeris format. +* api-change:``rds-data``: RDS Data API arrays (longValues, doubleValues, stringValues, booleanValues) in ExecuteStatement responses now correctly support null elements. Runtime change for JS v3 and .NET. Compile-time change for C plus plus, .NET, Kotlin, Rust. No impact for Java, Python, Ruby, PHP, Go. +* enhancement:Retries: Introduced ``AWS_NEW_RETRIES_2026``, an opt-in environment variable (defaults to ``false``) that activates updated standard retry mode behavior. When set to ``true``, the standard retry mode uses lower initial backoff delays (50ms base instead of 1s for non-throttling errors), applies service-specific max attempt overrides, and honors the ``x-amz-retry-after`` response header for server-guided retry timing. +* api-change:``bedrock``: Automated Reasoning checks - Added two build workflows for policies. Iterative Refine Policy uses AI to update policy definitions based on test results and feedback. Resolve Policy Ambiguities consolidates ambiguous variables in Automated Reasoning policies, a common source of ambiguous validation. +* api-change:``route53resolver``: Added BatchCreateFirewallRule, BatchUpdateFirewallRule, BatchDeleteFirewallRule, and ListFirewallRuleTypes APIs. Added FirewallRuleType support to Firewall Rule APIs. +* api-change:``sesv2``: This release introduces support for Tenant Suppression Lists +* enhancement:botocore: Update protocol tests to latest and handle null values in sparse map serialization and deserialization +* api-change:``quicksight``: Adds support for creating, updating, describing, listing, and deleting an OAuthClientApplication resource, a new quicksight resource that allows customers to store OAuth configurations to connect to their databases via 3 Legged OAuth. + + 2.34.56 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 8f80879919f9..0779550aa060 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.56' +__version__ = '2.34.57' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 44d299c6ae73..45c0889bd538 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.56. +# Generated by GNU Autoconf 2.71 for awscli 2.34.57. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.56' -PACKAGE_STRING='awscli 2.34.56' +PACKAGE_VERSION='2.34.57' +PACKAGE_STRING='awscli 2.34.57' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.56 +awscli configure 2.34.57 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.56, which was +It was created by awscli $as_me 2.34.57, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.56, which was +This file was extended by awscli $as_me 2.34.57, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.56 +awscli config.status 2.34.57 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 7527c0004bf6..ce995ee528a1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.56]) +AC_INIT([awscli], [2.34.57]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index c6641ec5b116..e00a6f40dd72 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.56' +release = '2.34.57' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 17d71f2a59c162acb3a562fb5e280b3b541463a8 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Mon, 1 Jun 2026 18:06:02 +0000 Subject: [PATCH 51/73] Update to latest models --- .../api-change-cognitoidp-73033.json | 5 + ...api-change-marketplaceagreement-18415.json | 5 + .../api-change-quicksight-39689.json | 5 + .../cognito-idp/2016-04-18/service-2.json | 517 +++- .../2020-03-01/service-2.json | 20 +- .../data/quicksight/2018-04-01/service-2.json | 2512 +++++++++++++++++ 6 files changed, 3048 insertions(+), 16 deletions(-) create mode 100644 .changes/next-release/api-change-cognitoidp-73033.json create mode 100644 .changes/next-release/api-change-marketplaceagreement-18415.json create mode 100644 .changes/next-release/api-change-quicksight-39689.json diff --git a/.changes/next-release/api-change-cognitoidp-73033.json b/.changes/next-release/api-change-cognitoidp-73033.json new file mode 100644 index 000000000000..8b0a22fea0b6 --- /dev/null +++ b/.changes/next-release/api-change-cognitoidp-73033.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cognito-idp``", + "description": "Add support for multi-region replication, enabling synchronization of user data and configurations to a secondary user pool in a standby Region. Add support for customer managed keys (CMK) in AWS KMS for encrypting user pool data at rest." +} diff --git a/.changes/next-release/api-change-marketplaceagreement-18415.json b/.changes/next-release/api-change-marketplaceagreement-18415.json new file mode 100644 index 000000000000..6b01d989f1e8 --- /dev/null +++ b/.changes/next-release/api-change-marketplaceagreement-18415.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``marketplace-agreement``", + "description": "Adding Entitlements in SearchAgreements Response" +} diff --git a/.changes/next-release/api-change-quicksight-39689.json b/.changes/next-release/api-change-quicksight-39689.json new file mode 100644 index 000000000000..6987405b1203 --- /dev/null +++ b/.changes/next-release/api-change-quicksight-39689.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``quicksight``", + "description": "This release adds public APIs for Amazon QuickSight Spaces, Agents, and Flows. Spaces APIs enable management of curated resource collections. Agents APIs provide lifecycle control over AI-powered agents that leverage Spaces. Flows APIs add CRUDL APIs for automated workflows." +} diff --git a/awscli/botocore/data/cognito-idp/2016-04-18/service-2.json b/awscli/botocore/data/cognito-idp/2016-04-18/service-2.json index e5dabb5c580e..3d8dd1acd657 100644 --- a/awscli/botocore/data/cognito-idp/2016-04-18/service-2.json +++ b/awscli/botocore/data/cognito-idp/2016-04-18/service-2.json @@ -27,6 +27,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"UserImportInProgressException"}, {"shape":"InternalErrorException"} ], @@ -63,6 +64,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Adds a user to a group. A user who is in a group can present a preferred-role claim to an identity pool, and populates a cognito:groups claim to their access and identity tokens.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -86,6 +88,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Confirms user sign-up as an administrator.

This request sets a user account active in a user pool that requires confirmation of new user accounts before they can sign in. You can configure your user pool to not send confirmation codes to new users and instead confirm them with this API operation on the back end.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

To configure your user pool to require administrative confirmation of users, set AllowAdminCreateUserOnly to true in a CreateUserPool or UpdateUserPool request.

" @@ -114,6 +117,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UnsupportedUserStateException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Creates a new user in the specified user pool.

If MessageAction isn't set, the default is to send a welcome message via email or phone (SMS).

This message is based on a template that you configured in your call to create or update a user pool. This template includes your custom sign-up instructions and placeholders for user name and temporary password.

Alternatively, you can call AdminCreateUser with SUPPRESS for the MessageAction parameter, and Amazon Cognito won't send any email.

In either case, if the user has a password, they will be in the FORCE_CHANGE_PASSWORD state until they sign in and set their password. Your invitation message template must have the {####} password placeholder if your users have passwords. If your template doesn't have this placeholder, Amazon Cognito doesn't deliver the invitation message. In this case, you must update your message template and resend the password with a new AdminCreateUser request with a MessageAction value of RESEND.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -131,6 +135,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes a user profile in your user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -149,6 +154,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes attribute values from a user. This operation doesn't affect tokens for existing user sessions. The next ID token that the user receives will no longer have the deleted attributes.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -168,6 +174,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, {"shape":"AliasExistsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Prevents the user from signing in with the specified external (SAML or social) identity provider (IdP). If the user that you want to deactivate is a Amazon Cognito user pools native username + password user, they can't use their password to sign in. If the user to deactivate is a linked external IdP user, any link between that user and an existing user is removed. When the external user signs in again, and the user is no longer attached to the previously linked DestinationUser, the user must create a new user account.

The value of ProviderName must match the name of a user pool IdP.

To deactivate a local user, set ProviderName to Cognito and the ProviderAttributeName to Cognito_Subject. The ProviderAttributeValue must be user's local username.

The ProviderAttributeName must always be Cognito_Subject for social IdPs. The ProviderAttributeValue must always be the exact subject that was used when the user was originally linked as a source user.

For de-linking a SAML identity, there are two scenarios. If the linked identity has not yet been used to sign in, the ProviderAttributeName and ProviderAttributeValue must be the same values that were used for the SourceUser when the identities were originally linked using AdminLinkProviderForUser call. This is also true if the linking was done with ProviderAttributeName set to Cognito_Subject. If the user has already signed in, the ProviderAttributeName must be Cognito_Subject and ProviderAttributeValue must be the NameID from their SAML assertion.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -186,6 +193,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deactivates a user profile and revokes all access tokens for the user. A deactivated user can't sign in, but still appears in the responses to ListUsers API requests.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -204,6 +212,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Activates sign-in for a user profile that previously had sign-in access disabled.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -221,6 +230,7 @@ {"shape":"InvalidUserPoolConfigurationException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"UserNotFoundException"}, {"shape":"InternalErrorException"} ], @@ -239,6 +249,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidUserPoolConfigurationException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"NotAuthorizedException"} ], @@ -258,6 +269,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a username, returns details about a user profile in a user pool. You can specify alias attributes in the Username request parameter.

This operation contributes to your monthly active user (MAU) count for the purpose of billing.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -287,7 +299,8 @@ {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, - {"shape":"UserNotConfirmedException"} + {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Starts sign-in for applications with a server-side component, for example a traditional web application. This operation specifies the authentication flow that you'd like to begin. The authentication flow that you specify must be supported in your app client configuration. For more information about authentication flows, see Authentication flows.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, @@ -307,6 +320,7 @@ {"shape":"UserNotFoundException"}, {"shape":"AliasExistsException"}, {"shape":"LimitExceededException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Links an existing user account in a user pool, or DestinationUser, to an identity from an external IdP, or SourceUser, based on a specified attribute name and value from the external IdP.

This operation connects a local user profile with a user identity who hasn't yet signed in from their third-party IdP. When the user signs in with their IdP, they get access-control configuration from the local user profile. Linked local users can also sign in with SDK-based API operations like InitiateAuth after they sign in at least once through their IdP. For more information, see Linking federated users.

The maximum number of federated identities linked to a user is five.

Because this API allows a user with an external federated identity to sign in as a local user, it is critical that it only be used with external IdPs and linked attributes that you trust.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -324,6 +338,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidUserPoolConfigurationException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"NotAuthorizedException"} ], @@ -343,6 +358,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Lists the groups that a user belongs to. User pool groups are identifiers that you can reference from the contents of ID and access tokens, and set preferred IAM roles for identity-pool authentication. For more information, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -361,6 +377,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"UserPoolAddOnNotEnabledException"}, {"shape":"InternalErrorException"} ], @@ -379,6 +396,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a username and a group name, removes them from the group. User pool groups are identifiers that you can reference from the contents of ID and access tokens, and set preferred IAM roles for identity-pool authentication. For more information, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -404,6 +422,7 @@ {"shape":"InvalidSmsRoleAccessPolicyException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Begins the password reset process. Sets the requested user’s account into a RESET_REQUIRED status, and sends them a password-reset code. Your user pool also sends the user a notification with a reset code and the information that their password has been reset. At sign-in, your application or the managed login session receives a challenge to complete the reset by confirming the code and setting a new password.

To use this API operation, your user pool must have self-service account recovery configured.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -438,7 +457,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"SoftwareTokenMFANotFoundException"} + {"shape":"SoftwareTokenMFANotFoundException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. An AdminRespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge.

For more information about custom authentication challenges, see Custom authentication challenge Lambda triggers.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, @@ -457,6 +477,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Sets the user's multi-factor authentication (MFA) preference, including which MFA options are activated, and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -477,7 +498,8 @@ {"shape":"TooManyRequestsException"}, {"shape":"InvalidParameterException"}, {"shape":"InvalidPasswordException"}, - {"shape":"PasswordHistoryPolicyViolationException"} + {"shape":"PasswordHistoryPolicyViolationException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Sets the specified user's password in a user pool. This operation administratively sets a temporary or permanent password for a user. With this operation, you can bypass self-service password changes and permit immediate sign-in with the password that you set. To do this, set Permanent to true.

You can also set a new temporary password in this request, send it to a user, and require them to choose a new password on their next sign-in. To do this, set Permanent to false.

If the password is temporary, the user's Status becomes FORCE_CHANGE_PASSWORD. When the user next tries to sign in, the InitiateAuth or AdminInitiateAuth response includes the NEW_PASSWORD_REQUIRED challenge. If the user doesn't sign in before the temporary password expires, they can no longer sign in and you must repeat this operation to set a temporary or permanent password for them.

After the user sets a new password, or if you set a permanent password, their status becomes Confirmed.

AdminSetUserPassword can set a password for the user profile that Amazon Cognito creates for third-party federated users. When you set a password, the federated user's status changes from EXTERNAL_PROVIDER to CONFIRMED. A user in this state can sign in as a federated user, and initiate authentication flows in the API like a linked native user. They can also modify their password and attributes in token-authenticated API requests like ChangePassword and UpdateUserAttributes. As a best security practice and to keep users in sync with your external IdP, don't set passwords on federated user profiles. To set up a federated user for native sign-in with a linked native user, refer to Linking federated users to an existing user profile.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, @@ -494,6 +516,7 @@ {"shape":"InvalidParameterException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

This action is no longer supported. You can use it to configure only SMS MFA. You can't use it to configure time-based one-time password (TOTP) software token MFA.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -513,6 +536,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Provides the feedback for an authentication event generated by threat protection features. Your response indicates that you think that the event either was from a valid user or was an unwanted authentication attempt. This feedback improves the risk evaluation decision for the user pool as part of Amazon Cognito threat protection. To activate this setting, your user pool must be on the Plus tier.

To train the threat-protection model to recognize trusted and untrusted sign-in characteristics, configure threat protection in audit-only mode and provide a mechanism for users or administrators to submit feedback. Your feedback can tell Amazon Cognito that a risk rating was assigned at a level you don't agree with.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -531,6 +555,7 @@ {"shape":"InvalidUserPoolConfigurationException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"UserNotFoundException"}, {"shape":"InternalErrorException"} ], @@ -557,7 +582,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidSmsRoleAccessPolicyException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, - {"shape":"InvalidSmsRoleTrustRelationshipException"} + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Updates the specified user's attributes. To delete an attribute from your user, submit the attribute in your API request with a blank value.

For custom attributes, you must add a custom: prefix to the attribute name, for example custom:department.

This operation can set a user's email address or phone number as verified and permit immediate sign-in in user pools that require verification of these attributes. To do this, set the email_verified or phone_number_verified attribute to true.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

" }, @@ -575,6 +601,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call this operation with your administrative credentials when your user signs out of your app. This results in the following behavior.

  • Amazon Cognito no longer accepts token-authorized user operations that you authorize with a signed-out user's access tokens. For more information, see Using the Amazon Cognito user pools API and user pool endpoints.

    Amazon Cognito returns an Access Token has been revoked error when your app attempts to authorize a user pools API request with a revoked access token that contains the scope aws.cognito.signin.user.admin.

  • Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with ServerSideTokenCheck enabled for its user pool IdP configuration in CognitoIdentityProvider.

  • Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh requests.

Other requests might be valid until your user's token expires. This operation doesn't clear the managed login session cookie. To clear the session for a user who signed in with managed login or the classic hosted UI, direct their browser session to the logout endpoint.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -594,7 +621,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalErrorException"}, {"shape":"SoftwareTokenMFANotFoundException"}, - {"shape":"ForbiddenException"} + {"shape":"ForbiddenException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA) for a user, with a unique private key that Amazon Cognito generates and returns in the API response. You can authorize an AssociateSoftwareToken request with either the user's access token, or a session string from a challenge response that you received from Amazon Cognito.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

", "authtype":"none", @@ -619,6 +647,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -647,7 +676,8 @@ {"shape":"WebAuthnClientMismatchException"}, {"shape":"WebAuthnOriginNotAllowedException"}, {"shape":"PasswordResetRequiredException"}, - {"shape":"WebAuthnCredentialNotSupportedException"} + {"shape":"WebAuthnCredentialNotSupportedException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Completes registration of a passkey authenticator for the currently signed-in user.

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

", "authtype":"none", @@ -674,6 +704,7 @@ {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"DeviceKeyExistsException"}, {"shape":"ForbiddenException"} ], @@ -705,6 +736,7 @@ {"shape":"LimitExceededException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -734,6 +766,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -756,6 +789,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Creates a new group in the specified user pool. For more information about user pool groups, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -795,6 +829,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"LimitExceededException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Creates a new set of branding settings for a user pool style and associates it with an app client. This operation is the programmatic option for the creation of a new style in the branding editor.

Provides values for UI customization in a Settings JSON object and image files in an Assets array. To send the JSON object Document type parameter in Settings, you might need to update to the most recent version of your Amazon Web Services SDK. To create a new style with default settings, set UseCognitoProvidedValues to true and don't provide values for any other options.

This operation has a 2-megabyte request-size limit and include the CSS settings and image assets for your app client. Your branding settings might exceed 2MB in size. Amazon Cognito doesn't require that you pass all parameters in one request and preserves existing style settings that you don't specify. If your request is larger than 2MB, separate it into multiple requests, each with a size smaller than the limit.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -813,6 +848,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Creates a new OAuth2.0 resource server and defines custom scopes within it. Resource servers are associated with custom scopes and machine-to-machine (M2M) authorization. For more information, see Access control with resource servers.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -833,6 +869,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"LimitExceededException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Creates terms documents for the requested app client. When Terms and conditions and Privacy policy documents are configured, the app client displays links to them in the sign-up page of managed login for the app client.

You can provide URLs for terms documents in the languages that are supported by managed login localization. Amazon Cognito directs users to the terms documents for their current language, with fallback to default if no document exists for the language.

Each request accepts one type of terms document and a map of language-to-link for that document type. You must provide both types of terms documents in at least one language before Amazon Cognito displays your terms documents. Supply each type in separate requests.

For more information, see Terms documents.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -852,6 +889,7 @@ {"shape":"PreconditionNotMetException"}, {"shape":"NotAuthorizedException"}, {"shape":"LimitExceededException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Creates a user import job. You can import users into user pools from a comma-separated values (CSV) file without adding Amazon Cognito MAU costs to your Amazon Web Services bill.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -895,6 +933,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"ScopeDoesNotExistException"}, {"shape":"InvalidOAuthFlowException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"FeatureUnavailableInTierException"} ], @@ -915,10 +954,32 @@ {"shape":"ResourceNotFoundException"}, {"shape":"LimitExceededException"}, {"shape":"InternalErrorException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"FeatureUnavailableInTierException"} ], "documentation":"

A user pool domain hosts managed login, an authorization server and web server for authentication in your application. This operation creates a new user pool prefix domain or custom domain and sets the managed login branding version. Set the branding version to 1 for hosted UI (classic) or 2 for managed login. When you choose a custom domain, you must provide an SSL certificate in the US East (N. Virginia) Amazon Web Services Region in your request.

Your prefix domain might take up to one minute to take effect. Your custom domain is online within five minutes, but it can take up to one hour to distribute your SSL certificate.

For more information about adding a custom domain to your user pool, see Configuring a user pool domain.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, + "CreateUserPoolReplica":{ + "name":"CreateUserPoolReplica", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserPoolReplicaRequest"}, + "output":{"shape":"CreateUserPoolReplicaResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolTaggingException"}, + {"shape":"OperationNotEnabledException"}, + {"shape":"InternalErrorException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"FeatureUnavailableInTierException"} + ], + "documentation":"

Creates a replica of an existing user pool in a specified Amazon Web Services Region. The replica enables multi-region replication for high availability and disaster recovery. To create a replica, you must have permissions to create user pools in the target Region.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" + }, "DeleteGroup":{ "name":"DeleteGroup", "http":{ @@ -931,6 +992,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes a group from the specified user pool. When you delete a group, that group no longer contributes to users' cognito:preferred_group or cognito:groups claims, and no longer influence access-control decision that are based on group membership. For more information about user pool groups, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -966,6 +1028,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes a managed login branding style. When you delete a style, you delete the branding association for an app client. When an app client doesn't have a style assigned, your managed login pages for that app client are nonfunctional until you create a new style or switch the domain branding version.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -982,6 +1045,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes a resource server. After you delete a resource server, users can no longer generate access tokens with scopes that are associate with that resource server.

Resource servers are associated with custom scopes and machine-to-machine (M2M) authorization. For more information, see Access control with resource servers.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -999,6 +1063,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes the terms documents with the requested ID from your app client.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1018,6 +1083,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1041,6 +1107,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1061,6 +1128,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserImportInProgressException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes a user pool. After you delete a user pool, users can no longer sign in to any associated applications.

When you delete a user pool, it's no longer visible or operational in your Amazon Web Services account. Amazon Cognito retains deleted user pools in an inactive state for 14 days, then begins a cleanup process that fully removes them from Amazon Web Services systems. In case of accidental deletion, contact Amazon Web Services Support within 14 days for restoration assistance.

Amazon Cognito begins full deletion of all resources from deleted user pools after 14 days. In the case of large user pools, the cleanup process might take significant additional time before all user data is permanently deleted.

" @@ -1078,6 +1146,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"ConcurrentModificationException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Deletes a user pool app client. After you delete an app client, users can no longer sign in to the associated application.

" @@ -1112,10 +1181,29 @@ {"shape":"InvalidParameterException"}, {"shape":"ConcurrentModificationException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID and domain identifier, deletes a user pool domain. After you delete a user pool domain, your managed login pages and authorization server are no longer available.

" }, + "DeleteUserPoolReplica":{ + "name":"DeleteUserPoolReplica", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserPoolReplicaRequest"}, + "output":{"shape":"DeleteUserPoolReplicaResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, + {"shape":"InternalErrorException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes a secondary replica user pool. You can only delete replicas that are in the INACTIVE status. This operation must be called from the primary Region.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" + }, "DeleteWebAuthnCredential":{ "name":"DeleteWebAuthnCredential", "http":{ @@ -1132,7 +1220,8 @@ {"shape":"LimitExceededException"}, {"shape":"PasswordResetRequiredException"}, {"shape":"NotAuthorizedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Deletes a registered passkey, or WebAuthn, authenticator for the currently signed-in user.

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

", "authtype":"none", @@ -1168,6 +1257,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given the ID of a managed login branding style, returns detailed information about the style.

" @@ -1185,6 +1275,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given the ID of a user pool app client, returns detailed information about the style assigned to the app client.

" @@ -1202,6 +1293,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Describes a resource server. For more information about resource servers, see Access control with resource servers.

" @@ -1220,6 +1312,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given an app client or user pool ID where threat protection is configured, describes the risk configuration. This operation returns details about adaptive authentication, compromised credentials, and IP-address allow- and denylists. For more information about threat protection, see Threat protection.

" @@ -1237,6 +1330,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Returns details for the requested terms documents ID. For more information, see Terms documents.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1254,6 +1348,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Describes a user import job. For more information about user CSV import, see Importing users from a CSV file.

" @@ -1272,6 +1367,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"UserPoolTaggingException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, returns configuration information. This operation is useful when you want to inspect an existing user pool and programmatically replicate the configuration to another user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1288,6 +1384,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"NotAuthorizedException"}, {"shape":"InternalErrorException"} ], @@ -1305,6 +1402,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool domain name, returns information about the domain configuration.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1325,6 +1423,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1354,6 +1453,7 @@ {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"CodeDeliveryFailureException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1374,6 +1474,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, generates a comma-separated value (CSV) list populated with available user attributes in the user pool. This list is the header for the CSV file that determines the users in a user import job. Save the content of CSVHeader in the response as a .csv file and populate it with the usernames and attributes of users that you want to import. For more information about CSV user import, see Importing users from a CSV file.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1395,6 +1496,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1415,6 +1517,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID and a group name, returns information about the user group.

For more information about user pool groups, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1464,7 +1567,8 @@ "errors":[ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Given a user pool ID, returns the signing certificate for SAML 2.0 federation.

Issued certificates are valid for 10 years from the date of issue. Amazon Cognito issues and assigns a new signing certificate annually. This renewal process returns a new value in the response to GetSigningCertificate, but doesn't invalidate the original certificate.

For more information, see Signing SAML requests.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, @@ -1487,6 +1591,7 @@ {"shape":"InvalidLambdaResponseException"}, {"shape":"ForbiddenException"}, {"shape":"RefreshTokenReuseException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a refresh token, issues new ID, access, and optionally refresh tokens for the user who owns the submitted token. This operation issues a new refresh token and invalidates the original refresh token after an optional grace period when refresh token rotation is enabled. If refresh token rotation is disabled, issues new ID and access tokens only.

", @@ -1505,6 +1610,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"TooManyRequestsException"}, {"shape":"InternalErrorException"} ], @@ -1526,6 +1632,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1557,6 +1664,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1580,6 +1688,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1619,6 +1728,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1651,6 +1761,7 @@ {"shape":"InvalidSmsRoleAccessPolicyException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"ForbiddenException"} ], "documentation":"

Declares an authentication flow and initiates sign-in for a user in the Amazon Cognito user directory. Amazon Cognito might respond with an additional challenge or an AuthenticationResult that contains the outcome of a successful authentication. You can't sign in a user with a federated IdP with InitiateAuth. For more information, see Authentication.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", @@ -1674,6 +1785,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1694,6 +1806,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, returns user pool groups and their details.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1728,6 +1841,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, returns all resource servers and their details. For more information about resource servers, see Access control with resource servers.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1745,6 +1859,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, {"shape":"InvalidParameterException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Lists the tags that are assigned to an Amazon Cognito user pool. For more information, see Tagging resources.

" @@ -1762,6 +1877,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Returns details about all terms documents for the requested user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1779,6 +1895,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, returns user import jobs and their details. Import jobs are retained in user pool configuration so that you can stage, stop, start, review, and delete them. For more information about user import, see Importing users from a CSV file.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1813,10 +1930,29 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, lists app clients. App clients are sets of rules for the access that you want a user pool to grant to one application. For more information, see App clients.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, + "ListUserPoolReplicas":{ + "name":"ListUserPoolReplicas", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUserPoolReplicasRequest"}, + "output":{"shape":"ListUserPoolReplicasResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, + {"shape":"InternalErrorException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all replicas for a user pool, including both primary and secondary replicas. We recommend using pagination to ensure that the operation returns quickly and successfully.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" + }, "ListUserPools":{ "name":"ListUserPools", "http":{ @@ -1846,6 +1982,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID, returns a list of users and their basic details in a user pool.

This operation is eventually consistent. You might experience a delay before results are up-to-date. To validate the existence or configuration of an individual user, use AdminGetUser.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1863,6 +2000,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given a user pool ID and a group name, returns a list of users in the group. For more information about user pool groups, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -1882,7 +2020,8 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, {"shape":"PasswordResetRequiredException"}, - {"shape":"NotAuthorizedException"} + {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Generates a list of the currently signed-in user's registered passkey, or WebAuthn, credentials.

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

", "authtype":"none", @@ -1910,6 +2049,7 @@ {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"CodeDeliveryFailureException"}, {"shape":"UserNotFoundException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -1948,7 +2088,8 @@ {"shape":"AliasExistsException"}, {"shape":"InternalErrorException"}, {"shape":"SoftwareTokenMFANotFoundException"}, - {"shape":"ForbiddenException"} + {"shape":"ForbiddenException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. A RespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge.

For more information about custom authentication challenges, see Custom authentication challenge Lambda triggers.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none", @@ -1969,7 +2110,8 @@ {"shape":"InvalidParameterException"}, {"shape":"UnsupportedOperationException"}, {"shape":"UnsupportedTokenTypeException"}, - {"shape":"ForbiddenException"} + {"shape":"ForbiddenException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Revokes all of the access tokens generated by, and at the same time as, the specified refresh token. After a token is revoked, you can't use the revoked token to access Amazon Cognito user APIs, or to authorize access to your resource server.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

", "authtype":"none", @@ -2009,9 +2151,10 @@ {"shape":"UserPoolAddOnNotEnabledException"}, {"shape":"CodeDeliveryFailureException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], - "documentation":"

Configures threat protection for a user pool or app client. Sets configuration for the following.

  • Responses to risks with adaptive authentication

  • Responses to vulnerable passwords with compromised-credentials detection

  • Notifications to users who have had risky activity detected

  • IP-address denylist and allowlist

To set the risk configuration for the user pool to defaults, send this request with only the UserPoolId parameter. To reset the threat protection settings of an app client to be inherited from the user pool, send UserPoolId and ClientId parameters only. To change threat protection to audit-only or off, update the value of UserPoolAddOns in an UpdateUserPool request. To activate this setting, your user pool must be on the Plus tier.

" + "documentation":"

Configures threat protection for a user pool or app client. Sets configuration for the following.

  • Responses to risks with adaptive authentication

  • Responses to vulnerable passwords with compromised-credentials detection

  • Notifications to users who have had risky activity detected

  • IP-address denylist and allowlist

To set the risk configuration for the user pool to defaults, send this request with only the UserPoolId parameter. To reset the threat protection settings of an app client to be inherited from the user pool, send UserPoolId and ClientId parameters only. To change threat protection to audit-only or off, update the value of UserPoolAddOns in an UpdateUserPool request. To activate this setting, your user pool must be on the Plus tier.

In secondary regions for user pools with multi-region replication, only the SourceARN and From attributes of NotifyConfiguration can be modified to configure region-specific SES integration. All other risk configuration settings must match the existing values to maintain consistency across replicas.

" }, "SetUICustomization":{ "name":"SetUICustomization", @@ -2026,6 +2169,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Configures UI branding settings for domains with the hosted UI (classic) branding version. Your user pool must have a domain. Configure a domain with .

Set the default configuration for all clients with a ClientId of ALL. When the ClientId value is an app client ID, the settings you pass in this request apply to that app client and override the default ALL configuration.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -2045,6 +2189,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -2068,6 +2213,7 @@ {"shape":"InvalidSmsRoleAccessPolicyException"}, {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"FeatureUnavailableInTierException"} ], @@ -2088,6 +2234,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -2119,6 +2266,7 @@ {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"CodeDeliveryFailureException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"ForbiddenException"} ], "documentation":"

Registers a user with an app client and requests a user name, password, and user attributes in the user pool.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

You might receive a LimitExceeded exception in response to this request if you have exceeded a rate quota for email or SMS messages, and if your user pool automatically verifies email addresses or phone numbers. When you get this exception in the response, the user is successfully created and is in an UNCONFIRMED state.

", @@ -2139,6 +2287,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"InternalErrorException"}, {"shape":"PreconditionNotMetException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"NotAuthorizedException"} ], "documentation":"

Instructs your user pool to start importing users from a CSV file that contains their usernames and attributes. For more information about importing users from a CSV file, see Importing users from a CSV file.

" @@ -2160,7 +2309,8 @@ {"shape":"TooManyRequestsException"}, {"shape":"WebAuthnNotEnabledException"}, {"shape":"PasswordResetRequiredException"}, - {"shape":"WebAuthnConfigurationMissingException"} + {"shape":"WebAuthnConfigurationMissingException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Requests credential creation options from your user pool for the currently signed-in user. Returns information about the user pool, the user profile, and authentication requirements. Users must provide this information in their request to enroll your application with their passkey provider.

Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

", "authtype":"none", @@ -2180,6 +2330,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"InternalErrorException"}, {"shape":"PreconditionNotMetException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"NotAuthorizedException"} ], "documentation":"

Instructs your user pool to stop a running job that's importing users from a CSV file that contains their usernames and attributes. For more information about importing users from a CSV file, see Importing users from a CSV file.

" @@ -2197,6 +2348,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, {"shape":"InvalidParameterException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Assigns a set of tags to an Amazon Cognito user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.

Each tag consists of a key and value, both of which you define. A key is a general category for more specific values. For example, if you have two versions of a user pool, one for testing and another for production, you might assign an Environment tag key to both user pools. The value of this key might be Test for one user pool, and Production for the other.

Tags are useful for cost tracking and access control. You can activate your tags so that they appear on the Billing and Cost Management console, where you can track the costs associated with your user pools. In an Identity and Access Management policy, you can constrain permissions for user pools based on specific tags or tag values.

You can use this action up to 5 times per second, per account. A user pool can have as many as 50 tags.

" @@ -2214,6 +2366,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, {"shape":"InvalidParameterException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given tag IDs that you previously assigned to a user pool, removes them.

" @@ -2233,6 +2386,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"UserNotFoundException"}, {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Provides the feedback for an authentication event generated by threat protection features. The user's response indicates that you think that the event either was from a valid user or was an unwanted authentication attempt. This feedback improves the risk evaluation decision for the user pool as part of Amazon Cognito threat protection. To activate this setting, your user pool must be on the Plus tier.

This operation requires a FeedbackToken that Amazon Cognito generates and adds to notification emails when users have potentially suspicious authentication events. Users invoke this operation when they select the link that corresponds to {one-click-link-valid} or {one-click-link-invalid} in your notification template. Because FeedbackToken is a required parameter, you can't make requests to UpdateAuthEventFeedback without the contents of the notification email message.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

", @@ -2256,6 +2410,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -2276,6 +2431,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Given the name of a user pool group, updates any of the properties for precedence, IAM role, or description. For more information about user pool groups, see Adding groups to a user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -2313,6 +2469,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Configures the branding settings for a user pool style. This operation is the programmatic option for the configuration of a style in the branding editor.

Provides values for UI customization in a Settings JSON object and image files in an Assets array.

This operation has a 2-megabyte request-size limit and include the CSS settings and image assets for your app client. Your branding settings might exceed 2MB in size. Amazon Cognito doesn't require that you pass all parameters in one request and preserves existing style settings that you don't specify. If your request is larger than 2MB, separate it into multiple requests, each with a size smaller than the limit.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -2330,6 +2487,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Updates the name and scopes of a resource server. All other fields are read-only. For more information about resource servers, see Access control with resource servers.

If you don't provide a value for an attribute, it is set to the default value.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -2349,6 +2507,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"} ], "documentation":"

Modifies existing terms documents for the requested app client. When Terms and conditions and Privacy policy documents are configured, the app client displays links to them in the sign-up page of managed login for the app client.

You can provide URLs for terms documents in the languages that are supported by managed login localization. Amazon Cognito directs users to the terms documents for their current language, with fallback to default if no document exists for the language.

Each request accepts one type of terms document and a map of language-to-link for that document type. You must provide both types of terms documents in at least one language before Amazon Cognito displays your terms documents. Supply each type in separate requests.

For more information, see Terms documents.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" @@ -2379,6 +2538,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], @@ -2406,10 +2566,11 @@ {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"UserPoolTaggingException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"TierChangeNotAllowedException"}, {"shape":"FeatureUnavailableInTierException"} ], - "documentation":"

Updates the configuration of a user pool. To avoid setting parameters to Amazon Cognito defaults, construct this API request to pass the existing configuration of your user pool, modified to include the changes that you want to make.

With the exception of UserPoolTier, if you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" + "documentation":"

Updates the configuration of a user pool. To avoid setting parameters to Amazon Cognito defaults, construct this API request to pass the existing configuration of your user pool, modified to include the changes that you want to make.

If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

In secondary regions for user pools with multi-region replication, regional configurations for email, SMS, Lambda functions, and tags can be updated. Both global and regional settings must be provided as inputs, with global settings required to match existing values to maintain consistency across replicas.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, "UpdateUserPoolClient":{ "name":"UpdateUserPoolClient", @@ -2427,6 +2588,7 @@ {"shape":"NotAuthorizedException"}, {"shape":"ScopeDoesNotExistException"}, {"shape":"InvalidOAuthFlowException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"FeatureUnavailableInTierException"} ], @@ -2446,11 +2608,30 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"FeatureUnavailableInTierException"} ], "documentation":"

A user pool domain hosts managed login, an authorization server and web server for authentication in your application. This operation updates the branding version for user pool domains between 1 for hosted UI (classic) and 2 for managed login. It also updates the SSL certificate for user pool custom domains.

Changes to the domain branding version take up to one minute to take effect for a prefix domain and up to five minutes for a custom domain.

This operation doesn't change the name of your user pool domain. To change your domain, delete it with DeleteUserPoolDomain and create a new domain with CreateUserPoolDomain.

You can pass the ARN of a new Certificate Manager certificate in this request. Typically, ACM certificates automatically renew and you user pool can continue to use the same ARN. But if you generate a new certificate for your custom domain name, replace the original configuration with the new ARN in this request.

ACM certificates for custom domains must be in the US East (N. Virginia) Amazon Web Services Region. After you submit your request, Amazon Cognito requires up to 1 hour to distribute your new certificate to your custom domain.

For more information about adding a custom domain to your user pool, see Configuring a user pool domain.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" }, + "UpdateUserPoolReplica":{ + "name":"UpdateUserPoolReplica", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserPoolReplicaRequest"}, + "output":{"shape":"UpdateUserPoolReplicaResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"OperationNotEnabledException"}, + {"shape":"InternalErrorException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates replica-specific settings for a user pool replica. You can modify the status to activate or deactivate the replica. This request can be made in both primary and secondary regions of the user pool.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

" + }, "VerifySoftwareToken":{ "name":"VerifySoftwareToken", "http":{ @@ -2473,7 +2654,8 @@ {"shape":"NotAuthorizedException"}, {"shape":"SoftwareTokenMFANotFoundException"}, {"shape":"CodeMismatchException"}, - {"shape":"ForbiddenException"} + {"shape":"ForbiddenException"}, + {"shape":"OperationNotEnabledException"} ], "documentation":"

Registers the current user's time-based one-time password (TOTP) authenticator with a code generated in their authenticator app from a private key that's supplied by your user pool. Marks the user's software token MFA status as \"verified\" if successful. The request takes an access token or a session string, but not both.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

", "authtype":"none", @@ -2498,6 +2680,7 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, + {"shape":"OperationNotEnabledException"}, {"shape":"InternalErrorException"}, {"shape":"AliasExistsException"}, {"shape":"ForbiddenException"} @@ -4771,6 +4954,10 @@ "CustomDomainConfig":{ "shape":"CustomDomainConfigType", "documentation":"

The configuration for a custom domain. Configures your domain with an Certificate Manager certificate in the us-east-1 Region.

Provide this parameter only if you want to use a custom domain for your user pool. Otherwise, you can omit this parameter and use a prefix domain instead.

When you create a custom domain, the passkey RP ID defaults to the custom domain. If you had a prefix domain active, this will cause passkey integration for your prefix domain to stop working due to a mismatch in RP ID. To keep the prefix domain passkey integration working, you can explicitly set RP ID to the prefix domain.

" + }, + "Routing":{ + "shape":"RoutingType", + "documentation":"

The configuration of routing for requests to the domain for replicas of a replicated user pool. The routing configuration is currently only supported for custom domains.

" } } }, @@ -4784,6 +4971,40 @@ "CloudFrontDomain":{ "shape":"DomainType", "documentation":"

The fully-qualified domain name (FQDN) of the Amazon CloudFront distribution that hosts your managed login or classic hosted UI pages. Your domain-name authority must have an alias record that points requests for your custom domain to this FQDN. Amazon Cognito returns this value if you set a custom domain with CustomDomainConfig. If you set an Amazon Cognito prefix domain, this parameter returns null.

" + }, + "Routing":{ + "shape":"RoutingType", + "documentation":"

The routing configuration that was applied to the user pool domain.

" + } + } + }, + "CreateUserPoolReplicaRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "RegionName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the user pool to replicate.

" + }, + "RegionName":{ + "shape":"RegionNameType", + "documentation":"

The Amazon Web Services Region where you want to create the replica user pool.

" + }, + "UserPoolTags":{ + "shape":"UserPoolTagsType", + "documentation":"

A map of tags to assign to the replica user pool. Each tag consists of a key and an optional value, both of which you define. You can maintain tags independently on replica user pools.

" + } + } + }, + "CreateUserPoolReplicaResponse":{ + "type":"structure", + "members":{ + "UserPoolReplica":{ + "shape":"UserPoolReplicaType", + "documentation":"

Information about the created user pool replica, including its status and role.

" } } }, @@ -4886,6 +5107,14 @@ "UserPoolTier":{ "shape":"UserPoolTierType", "documentation":"

The user pool feature plan, or tier. This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection. Defaults to ESSENTIALS.

" + }, + "KeyConfiguration":{ + "shape":"KeyConfigurationType", + "documentation":"

The key configuration for the user pool. Specifies the key type and KMS key ARN for encryption.

" + }, + "IssuerConfiguration":{ + "shape":"IssuerConfigurationType", + "documentation":"

The issuer configuration for the user pool. Specifies the issuer type for token generation.

" } }, "documentation":"

Represents the request to create a user pool.

" @@ -5150,6 +5379,32 @@ "type":"structure", "members":{} }, + "DeleteUserPoolReplicaRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "RegionName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the user pool that contains the replica to delete.

" + }, + "RegionName":{ + "shape":"RegionNameType", + "documentation":"

The Amazon Web Services Region of the replica to delete.

" + } + } + }, + "DeleteUserPoolReplicaResponse":{ + "type":"structure", + "members":{ + "UserPoolReplica":{ + "shape":"UserPoolReplicaType", + "documentation":"

Information about the deleted user pool replica.

" + } + } + }, "DeleteUserPoolRequest":{ "type":"structure", "required":["UserPoolId"], @@ -5602,6 +5857,10 @@ "ManagedLoginVersion":{ "shape":"WrappedIntegerType", "documentation":"

The version of managed login branding that you want to apply to your domain. A value of 1 indicates hosted UI (classic) branding and a version of 2 indicates managed login branding.

Managed login requires that your user pool be configured for any feature plan other than Lite.

" + }, + "Routing":{ + "shape":"RoutingType", + "documentation":"

The routing configuration for the domain, including failover settings for multi-region deployments. Currently only Failover configurations are allowed.

" } }, "documentation":"

A container for information about the user pool domain associated with the hosted UI and OAuth endpoints.

" @@ -5760,6 +6019,19 @@ "documentation":"

This exception is thrown when there is a code mismatch and the service fails to configure the software token TOTP multi-factor authentication (MFA).

", "exception":true }, + "EncryptionKeyArnType":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?" + }, + "EncryptionKeyType":{ + "type":"string", + "enum":[ + "AWS_OWNED_KEY", + "CUSTOMER_MANAGED_KEY" + ] + }, "EventContextDataType":{ "type":"structure", "members":{ @@ -5898,6 +6170,24 @@ "ALLOW_USER_AUTH" ] }, + "FailoverType":{ + "type":"structure", + "required":[ + "SecondaryRegion", + "PrimaryRoute53HealthCheckId" + ], + "members":{ + "SecondaryRegion":{ + "shape":"RegionNameType", + "documentation":"

The secondary Amazon Web Services Region to use for failover when the primary region becomes unavailable.

" + }, + "PrimaryRoute53HealthCheckId":{ + "shape":"HealthCheckIdType", + "documentation":"

The ID of the Amazon Web Services Route53 healthcheck that controls routing. If the healthcheck is healthy, traffic will be routed to the primary replica, and if the healthcheck is unhealthy, traffic will be routed to the secondary region.

" + } + }, + "documentation":"

Specifies failover configuration for multi-region user pool domains. Contains settings for the secondary region and health check configuration.

" + }, "FeatureType":{ "type":"string", "enum":[ @@ -6413,6 +6703,10 @@ }, "documentation":"

A user pool group. Contains details about the group and the way that it contributes to IAM role decisions with identity pools. Identity pools can make decisions about the IAM role to assign based on groups: users get credentials for the role associated with their highest-priority group.

" }, + "HealthCheckIdType":{ + "type":"string", + "max":64 + }, "HexStringType":{ "type":"string", "pattern":"^[0-9a-fA-F]+$" @@ -6705,6 +6999,37 @@ "documentation":"

This exception is thrown when the user pool configuration is not valid.

", "exception":true }, + "IssuerConfigurationType":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"IssuerType", + "documentation":"

The type of issuer configuration. Determines the token issuing behavior for the user pool.

ORIGINAL

The original issuer configuration for user pools. The issuer URL is hosted in the user pool’s region and provides OIDC endpoints specific to that region.

Original issuers have the format of https://cognito-idp.[region].amazonaws.com/[userPoolId]

UPDATED

Recommended for all user pools, including for multi-Region replication. Updated issuers host the same JWKS content in multiple regions, resulting in improved resilience and efficiency.

Updated issuers have the format of https://issuer-cognito-idp.[region].amazonaws.com/[userPoolId], where region is the primary Amazon Web Services Region of your user pool.

" + } + }, + "documentation":"

Specifies the issuer configuration for a user pool. Contains settings that determine how tokens are issued and validated.

" + }, + "IssuerType":{ + "type":"string", + "enum":[ + "ORIGINAL", + "UPDATED" + ] + }, + "KeyConfigurationType":{ + "type":"structure", + "members":{ + "KeyType":{ + "shape":"EncryptionKeyType", + "documentation":"

The type of encryption key used for the user pool.

AWS_OWNED_KEY

A key owned by Amazon Web Services in Key Management Service.

CUSTOMER_MANAGED_KEY

A key managed by the customer in Key Management Service. You must use a multi-region key to enable multi-region replication for a user pool.

" + }, + "KmsKeyArn":{ + "shape":"EncryptionKeyArnType", + "documentation":"

The Amazon Resource Name (ARN) of the KMS key used for encryption. If not specified, Amazon Web Services managed keys are used.

" + } + }, + "documentation":"

Specifies the key configuration for a user pool. Contains settings for encryption keys used to secure user pool data.

" + }, "LambdaConfigType":{ "type":"structure", "members":{ @@ -7102,6 +7427,33 @@ }, "documentation":"

Represents the response from the server that lists user pool clients.

" }, + "ListUserPoolReplicasRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the user pool for which to list replicas.

" + }, + "NextToken":{ + "shape":"PaginationKeyType", + "documentation":"

A pagination token for retrieving the next page of results. If this parameter is omitted, the operation returns the first page of results.

" + } + } + }, + "ListUserPoolReplicasResponse":{ + "type":"structure", + "members":{ + "UserPoolReplicas":{ + "shape":"UserPoolReplicaListType", + "documentation":"

A list of user pool replicas, including information about their status, role, and Region.

" + }, + "NextToken":{ + "shape":"PaginationKeyType", + "documentation":"

A pagination token for retrieving the next page of results. If this value is null, there are no more results to retrieve.

" + } + } + }, "ListUserPoolsRequest":{ "type":"structure", "required":["MaxResults"], @@ -7514,6 +7866,14 @@ "max":3, "min":0 }, + "OperationNotEnabledException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "documentation":"

This exception is thrown when an operation is not available in the current region or for the current user pool configuration. This can occur when attempting to perform operations that are not supported in secondary replica regions.

", + "exception":true + }, "PaginationKey":{ "type":"string", "max":131072, @@ -7801,11 +8161,36 @@ "max":32, "min":5 }, + "RegionNameType":{ + "type":"string", + "max":32, + "min":5 + }, "RelyingPartyIdType":{ "type":"string", "max":127, "min":1 }, + "ReplicaRegionsType":{ + "type":"list", + "member":{"shape":"StringType"} + }, + "ReplicaRoleType":{ + "type":"string", + "enum":[ + "PRIMARY", + "SECONDARY" + ] + }, + "ReplicaStatusType":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "INACTIVE", + "DELETING" + ] + }, "ResendConfirmationCodeRequest":{ "type":"structure", "required":[ @@ -8089,6 +8474,16 @@ "High" ] }, + "RoutingType":{ + "type":"structure", + "members":{ + "Failover":{ + "shape":"FailoverType", + "documentation":"

The failover configuration that specifies the secondary region and health check settings.

" + } + }, + "documentation":"

Specifies routing configuration for user pool domains. Contains failover settings for multi-region deployments.

" + }, "S3ArnType":{ "type":"string", "max":1024, @@ -9195,6 +9590,13 @@ } } }, + "UpdateReplicaStatusType":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, "UpdateResourceServerRequest":{ "type":"structure", "required":[ @@ -9439,6 +9841,10 @@ "CustomDomainConfig":{ "shape":"CustomDomainConfigType", "documentation":"

The configuration for a custom domain that hosts managed login for your application. In an UpdateUserPoolDomain request, this parameter specifies an SSL certificate for the managed login hosted webserver. The certificate must be an ACM ARN in us-east-1.

When you create a custom domain, the passkey RP ID defaults to the custom domain. If you had a prefix domain active, this will cause passkey integration for your prefix domain to stop working due to a mismatch in RP ID. To keep the prefix domain passkey integration working, you can explicitly set RP ID to the prefix domain.

" + }, + "Routing":{ + "shape":"RoutingType", + "documentation":"

The routing configuration for the user pool domain. Specifies failover settings for multi-region deployments.

" } }, "documentation":"

The UpdateUserPoolDomain request input.

" @@ -9453,10 +9859,45 @@ "CloudFrontDomain":{ "shape":"DomainType", "documentation":"

The fully-qualified domain name (FQDN) of the Amazon CloudFront distribution that hosts your managed login or classic hosted UI pages. You domain-name authority must have an alias record that points requests for your custom domain to this FQDN. Amazon Cognito returns this value if you set a custom domain with CustomDomainConfig. If you set an Amazon Cognito prefix domain, this operation returns a blank response.

" + }, + "Routing":{ + "shape":"RoutingType", + "documentation":"

The updated routing configuration for the user pool domain.

" } }, "documentation":"

The UpdateUserPoolDomain response output.

" }, + "UpdateUserPoolReplicaRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "RegionName", + "Status" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the user pool that contains the replica to update.

" + }, + "RegionName":{ + "shape":"RegionNameType", + "documentation":"

The Amazon Web Services Region of the replica to update.

" + }, + "Status":{ + "shape":"UpdateReplicaStatusType", + "documentation":"

The status to set for the replica. Valid values are ACTIVE and INACTIVE.

" + } + } + }, + "UpdateUserPoolReplicaResponse":{ + "type":"structure", + "members":{ + "UserPoolReplica":{ + "shape":"UserPoolReplicaType", + "documentation":"

Information about the updated user pool replica.

" + } + } + }, "UpdateUserPoolRequest":{ "type":"structure", "required":["UserPoolId"], @@ -9544,6 +9985,14 @@ "UserPoolTier":{ "shape":"UserPoolTierType", "documentation":"

The user pool feature plan, or tier. This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection. Defaults to ESSENTIALS.

" + }, + "KeyConfiguration":{ + "shape":"KeyConfigurationType", + "documentation":"

The key configuration for the user pool. In secondary regions, this parameter must match the existing configuration and cannot be modified.

" + }, + "IssuerConfiguration":{ + "shape":"IssuerConfigurationType", + "documentation":"

The issuer configuration for the user pool. In secondary regions, this parameter must match the existing configuration and cannot be modified.

" } }, "documentation":"

Represents the request to update the user pool.

" @@ -9903,6 +10352,10 @@ "CreationDate":{ "shape":"DateType", "documentation":"

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a human-readable format like ISO 8601 or a Java Date object.

" + }, + "ReplicaRegions":{ + "shape":"ReplicaRegionsType", + "documentation":"

A list of Amazon Web Services Regions where replicas of this user pool exist.

" } }, "documentation":"

A short description of a user pool.

" @@ -9945,6 +10398,32 @@ }, "documentation":"

A list of user pool policies. Contains the policy that sets password-complexity requirements.

" }, + "UserPoolReplicaListType":{ + "type":"list", + "member":{"shape":"UserPoolReplicaType"} + }, + "UserPoolReplicaType":{ + "type":"structure", + "members":{ + "RegionName":{ + "shape":"RegionNameType", + "documentation":"

The Amazon Web Services Region where the replica is located.

" + }, + "Status":{ + "shape":"ReplicaStatusType", + "documentation":"

The current status of the replica.

CREATING

The replica is being created.

INACTIVE

The replica has been created, but is not accepting requests for end-users. Administrator configuration operations are supported.

ACTIVE

The replica is available for both end-user and administrator operations.

DELETING

The replica is being deleted.

" + }, + "Role":{ + "shape":"ReplicaRoleType", + "documentation":"

The role of the user pool replica that determines which API operations are enabled.

PRIMARY

The primary replica supports all end user and administrator operations.

SECONDARY

The secondary replica supports a limited set of end user and administrator operations. Generally, only administrator operations that set configurations specific to the replica, and only end-user operations that do not create or change attributes of a user are supported.

" + }, + "UserPoolArn":{ + "shape":"ArnType", + "documentation":"

The Amazon Resource Name (ARN) of the replica user pool.

" + } + }, + "documentation":"

Contains information about a replica user pool, including Region, status, role, and ARN.

" + }, "UserPoolTaggingException":{ "type":"structure", "members":{ @@ -10110,6 +10589,14 @@ "UserPoolTier":{ "shape":"UserPoolTierType", "documentation":"

The user pool feature plan, or tier. This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection. Defaults to ESSENTIALS.

" + }, + "KeyConfiguration":{ + "shape":"KeyConfigurationType", + "documentation":"

The key configuration for the user pool, including encryption settings.

" + }, + "IssuerConfiguration":{ + "shape":"IssuerConfigurationType", + "documentation":"

The issuer configuration for the user pool, including token issuing settings.

" } }, "documentation":"

The configuration of a user pool.

" diff --git a/awscli/botocore/data/marketplace-agreement/2020-03-01/service-2.json b/awscli/botocore/data/marketplace-agreement/2020-03-01/service-2.json index 9243174c755c..b537a9f77ad4 100644 --- a/awscli/botocore/data/marketplace-agreement/2020-03-01/service-2.json +++ b/awscli/botocore/data/marketplace-agreement/2020-03-01/service-2.json @@ -964,6 +964,10 @@ "status":{ "shape":"AgreementStatus", "documentation":"

The current status of the agreement.

" + }, + "entitlements":{ + "shape":"EntitlementList", + "documentation":"

A list of entitlements associated with the agreement.

" } }, "documentation":"

A summary of the agreement, including top-level attributes (for example, the agreement ID, proposer, and acceptor).

" @@ -1718,6 +1722,20 @@ "type":"list", "member":{"shape":"DocumentItem"} }, + "Entitlement":{ + "type":"structure", + "members":{ + "licenseArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the AWS License Manager license associated with the entitlement.

" + } + }, + "documentation":"

Represents an entitlement associated with an agreement.

" + }, + "EntitlementList":{ + "type":"list", + "member":{"shape":"Entitlement"} + }, "EntitlementType":{ "type":"string", "max":64, @@ -3675,5 +3693,5 @@ "min":0 } }, - "documentation":"

AWS Marketplace is a curated digital catalog that customers can use to find, buy, deploy, and manage third-party software, data, and services to build solutions and run their businesses. The AWS Marketplace Agreement Service provides an API interface that helps AWS Marketplace sellers and buyers manage their product-related agreements, including listing, searching, creating, and filtering agreements.

To manage agreements in AWS Marketplace, you must ensure that your AWS Identity and Access Management (IAM) policies and roles are set up. The user must have the required policies/permissions that allow them to carry out the actions in AWS:

  • DescribeAgreement – Grants permission to users to obtain detailed meta data about any of their agreements.

  • GetAgreementTerms – Grants permission to users to obtain details about the terms of an agreement.

  • SearchAgreements – Grants permission to users to search through all their agreements.

" + "documentation":"

AWS Marketplace is a curated digital catalog that customers can use to find, buy, deploy, and manage third-party software, data, and services to build solutions and run their businesses. The AWS Marketplace Agreement Service provides an API interface that helps AWS Marketplace sellers and buyers manage their product-related agreements, including listing, searching, creating, and filtering agreements.

" } diff --git a/awscli/botocore/data/quicksight/2018-04-01/service-2.json b/awscli/botocore/data/quicksight/2018-04-01/service-2.json index b426d8b0bd92..6147fa59a372 100644 --- a/awscli/botocore/data/quicksight/2018-04-01/service-2.json +++ b/awscli/botocore/data/quicksight/2018-04-01/service-2.json @@ -127,6 +127,27 @@ "documentation":"

Creates an action connector that enables Amazon Quick Sight to connect to external services and perform actions. Action connectors support various authentication methods and can be configured with specific actions from supported connector types like Amazon S3, Salesforce, JIRA.

", "idempotent":true }, + "CreateAgent":{ + "name":"CreateAgent", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/agents", + "responseCode":200 + }, + "input":{"shape":"CreateAgentRequest"}, + "output":{"shape":"CreateAgentResponse"}, + "errors":[ + {"shape":"ResourceExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates an agent in Amazon QuickSight.

" + }, "CreateAnalysis":{ "name":"CreateAnalysis", "http":{ @@ -251,6 +272,27 @@ ], "documentation":"

Creates a data source.

" }, + "CreateFlow":{ + "name":"CreateFlow", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/flows", + "responseCode":200 + }, + "input":{"shape":"CreateFlowRequest"}, + "output":{"shape":"CreateFlowResponse"}, + "errors":[ + {"shape":"ResourceExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a new flow in the specified Amazon Web Services account. Creates both a DRAFT and PUBLISHED (auto-published) version.

This operation is idempotent. Supply a ClientToken to safely retry without creating duplicate resources.

" + }, "CreateFolder":{ "name":"CreateFolder", "http":{ @@ -451,6 +493,27 @@ ], "documentation":"

Use CreateRoleMembership to add an existing Quick Sight group to an existing role.

" }, + "CreateSpace":{ + "name":"CreateSpace", + "http":{ + "method":"POST", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces", + "responseCode":200 + }, + "input":{"shape":"CreateSpaceRequest"}, + "output":{"shape":"CreateSpaceResponse"}, + "errors":[ + {"shape":"ResourceExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a new Amazon QuickSight space. A space is a collection of resources that can be used to organize and manage QuickSight assets.

", + "idempotent":true + }, "CreateTemplate":{ "name":"CreateTemplate", "http":{ @@ -667,6 +730,26 @@ ], "documentation":"

Hard deletes an action connector, making it unrecoverable. This operation removes the connector and all its associated configurations. Any resources currently using this action connector will no longer be able to perform actions through it.

" }, + "DeleteAgent":{ + "name":"DeleteAgent", + "http":{ + "method":"DELETE", + "requestUri":"/accounts/{AwsAccountId}/agents/{AgentId}", + "responseCode":200 + }, + "input":{"shape":"DeleteAgentRequest"}, + "output":{"shape":"DeleteAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes an agent.

", + "idempotent":true + }, "DeleteAnalysis":{ "name":"DeleteAnalysis", "http":{ @@ -834,6 +917,26 @@ ], "documentation":"

Deletes a linked Amazon Q Business application from an Quick Sight account

" }, + "DeleteFlow":{ + "name":"DeleteFlow", + "http":{ + "method":"DELETE", + "requestUri":"/accounts/{AwsAccountId}/flows/{FlowId}", + "responseCode":200 + }, + "input":{"shape":"DeleteFlowRequest"}, + "output":{"shape":"DeleteFlowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Permanently deletes a flow from the specified Amazon Web Services account. This operation cannot be undone.

", + "idempotent":true + }, "DeleteFolder":{ "name":"DeleteFolder", "http":{ @@ -1039,6 +1142,25 @@ ], "documentation":"

Removes a group from a role.

" }, + "DeleteSpace":{ + "name":"DeleteSpace", + "http":{ + "method":"DELETE", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}", + "responseCode":204 + }, + "input":{"shape":"DeleteSpaceRequest"}, + "output":{"shape":"DeleteSpaceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes an Amazon QuickSight space.

", + "idempotent":true + }, "DeleteTemplate":{ "name":"DeleteTemplate", "http":{ @@ -1336,6 +1458,46 @@ "documentation":"

Retrieves the permissions configuration for an action connector, showing which users, groups, and namespaces have access and what operations they can perform.

", "readonly":true }, + "DescribeAgent":{ + "name":"DescribeAgent", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/agents/{AgentId}", + "responseCode":200 + }, + "input":{"shape":"DescribeAgentRequest"}, + "output":{"shape":"DescribeAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes an agent.

", + "readonly":true + }, + "DescribeAgentPermissions":{ + "name":"DescribeAgentPermissions", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/agents/{AgentId}/permissions", + "responseCode":200 + }, + "input":{"shape":"DescribeAgentPermissionsRequest"}, + "output":{"shape":"DescribeAgentPermissionsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes the resource permissions for an agent.

", + "readonly":true + }, "DescribeAnalysis":{ "name":"DescribeAnalysis", "http":{ @@ -1732,6 +1894,25 @@ ], "documentation":"

Describes a Amazon Q Business application that is linked to an Quick Sight account.

" }, + "DescribeFlow":{ + "name":"DescribeFlow", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/flows/{FlowId}", + "responseCode":200 + }, + "input":{"shape":"DescribeFlowRequest"}, + "output":{"shape":"DescribeFlowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns the full details of a flow for the latest version of the requested publish state.

", + "readonly":true + }, "DescribeFolder":{ "name":"DescribeFolder", "http":{ @@ -2023,6 +2204,44 @@ ], "documentation":"

Describes the self-upgrade configuration for a Quick account.

" }, + "DescribeSpace":{ + "name":"DescribeSpace", + "http":{ + "method":"GET", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}", + "responseCode":200 + }, + "input":{"shape":"DescribeSpaceRequest"}, + "output":{"shape":"DescribeSpaceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes an Amazon QuickSight space.

", + "readonly":true + }, + "DescribeSpacePermissions":{ + "name":"DescribeSpacePermissions", + "http":{ + "method":"GET", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}/permissions", + "responseCode":200 + }, + "input":{"shape":"DescribeSpacePermissionsRequest"}, + "output":{"shape":"DescribeSpacePermissionsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes the permissions for an Amazon QuickSight space.

", + "readonly":true + }, "DescribeTemplate":{ "name":"DescribeTemplate", "http":{ @@ -2441,6 +2660,27 @@ "documentation":"

Lists all action connectors in the specified Amazon Web Services account. Returns summary information for each connector including its name, type, creation time, and status.

", "readonly":true }, + "ListAgents":{ + "name":"ListAgents", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/agents", + "responseCode":200 + }, + "input":{"shape":"ListAgentsRequest"}, + "output":{"shape":"ListAgentsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all agents in an Amazon QuickSight account.

", + "readonly":true + }, "ListAnalyses":{ "name":"ListAnalyses", "http":{ @@ -2882,6 +3122,44 @@ ], "documentation":"

Lists all self-upgrade requests for a Quick account.

" }, + "ListSpaceResources":{ + "name":"ListSpaceResources", + "http":{ + "method":"GET", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}/resources", + "responseCode":200 + }, + "input":{"shape":"ListSpaceResourcesRequest"}, + "output":{"shape":"ListSpaceResourcesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the resources in an Amazon QuickSight space.

", + "readonly":true + }, + "ListSpaces":{ + "name":"ListSpaces", + "http":{ + "method":"GET", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces", + "responseCode":200 + }, + "input":{"shape":"ListSpacesRequest"}, + "output":{"shape":"ListSpacesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all Amazon QuickSight spaces in an Amazon Web Services account.

", + "readonly":true + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -3215,6 +3493,26 @@ "documentation":"

Searches for action connectors in the specified Amazon Web Services account using filters. You can search by connector name, type, or user permissions.

", "readonly":true }, + "SearchAgents":{ + "name":"SearchAgents", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/search/agents", + "responseCode":200 + }, + "input":{"shape":"SearchAgentsRequest"}, + "output":{"shape":"SearchAgentsResponse"}, + "errors":[ + {"shape":"ResourceExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Searches for agents based on specified filters.

", + "readonly":true + }, "SearchAnalyses":{ "name":"SearchAnalyses", "http":{ @@ -3345,6 +3643,25 @@ ], "documentation":"

Use the SearchGroups operation to search groups in a specified Quick Sight namespace using the supplied filters.

" }, + "SearchSpaces":{ + "name":"SearchSpaces", + "http":{ + "method":"POST", + "requestUri":"/v1/accounts/{AwsAccountId}/search/spaces", + "responseCode":200 + }, + "input":{"shape":"SearchSpacesRequest"}, + "output":{"shape":"SearchSpacesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Searches for Amazon QuickSight spaces that match the specified filters.

", + "readonly":true + }, "SearchTopics":{ "name":"SearchTopics", "http":{ @@ -3590,6 +3907,50 @@ ], "documentation":"

Updates the permissions for an action connector by granting or revoking access for specific users and groups. You can control who can view, use, or manage the action connector.

" }, + "UpdateAgent":{ + "name":"UpdateAgent", + "http":{ + "method":"PUT", + "requestUri":"/accounts/{AwsAccountId}/agents/{AgentId}", + "responseCode":200 + }, + "input":{"shape":"UpdateAgentRequest"}, + "output":{"shape":"UpdateAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates an existing agent.

" + }, + "UpdateAgentPermissions":{ + "name":"UpdateAgentPermissions", + "http":{ + "method":"PUT", + "requestUri":"/accounts/{AwsAccountId}/agents/{AgentId}/permissions", + "responseCode":200 + }, + "input":{"shape":"UpdateAgentPermissionsRequest"}, + "output":{"shape":"UpdateAgentPermissionsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates the resource permissions for an agent.

", + "idempotent":true + }, "UpdateAnalysis":{ "name":"UpdateAnalysis", "http":{ @@ -3914,6 +4275,27 @@ ], "documentation":"

Updates a Amazon Q Business application that is linked to a Quick Sight account.

" }, + "UpdateFlow":{ + "name":"UpdateFlow", + "http":{ + "method":"PUT", + "requestUri":"/accounts/{AwsAccountId}/flows/{FlowId}", + "responseCode":200 + }, + "input":{"shape":"UpdateFlowRequest"}, + "output":{"shape":"UpdateFlowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates an existing flow. Supply only the fields you want to change. Updates both DRAFT and PUBLISHED versions. When FlowDefinition is provided, all existing steps are replaced with the new definition.

", + "idempotent":true + }, "UpdateFlowPermissions":{ "name":"UpdateFlowPermissions", "http":{ @@ -4230,6 +4612,69 @@ ], "documentation":"

Updates the self-upgrade configuration for a Quick account.

" }, + "UpdateSpace":{ + "name":"UpdateSpace", + "http":{ + "method":"PUT", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}", + "responseCode":200 + }, + "input":{"shape":"UpdateSpaceRequest"}, + "output":{"shape":"UpdateSpaceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates the metadata of an Amazon QuickSight space.

", + "idempotent":true + }, + "UpdateSpacePermissions":{ + "name":"UpdateSpacePermissions", + "http":{ + "method":"PUT", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}/permissions", + "responseCode":200 + }, + "input":{"shape":"UpdateSpacePermissionsRequest"}, + "output":{"shape":"UpdateSpacePermissionsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates the permissions for an Amazon QuickSight space.

", + "idempotent":true + }, + "UpdateSpaceResources":{ + "name":"UpdateSpaceResources", + "http":{ + "method":"PUT", + "requestUri":"/v1/accounts/{AwsAccountId}/spaces/{SpaceId}/resources", + "responseCode":200 + }, + "input":{"shape":"UpdateSpaceResourcesRequest"}, + "output":{"shape":"UpdateSpaceResourcesResponse"}, + "errors":[ + {"shape":"ResourceExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Adds or removes resources from an Amazon QuickSight space.

" + }, "UpdateTemplate":{ "name":"UpdateTemplate", "http":{ @@ -4890,6 +5335,226 @@ "min":0, "sensitive":true }, + "Agent":{ + "type":"structure", + "required":[ + "Name", + "Arn", + "AgentId", + "AgentLifecycle", + "AgentStatus", + "CreatedAt", + "Creator", + "UpdatedAt" + ], + "members":{ + "Spaces":{ + "shape":"AgentSpacesList", + "documentation":"

The Amazon Resource Names (ARNs) of the spaces attached to the agent.

" + }, + "ActionConnectors":{ + "shape":"AgentActionConnectorsList", + "documentation":"

The Amazon Resource Names (ARNs) of the action connectors attached to the agent.

" + }, + "Description":{ + "shape":"AgentDescription", + "documentation":"

A description of the agent.

" + }, + "IconId":{ + "shape":"IconId", + "documentation":"

The icon identifier for the agent.

" + }, + "Name":{ + "shape":"AgentName", + "documentation":"

The name of the agent.

" + }, + "StarterPrompts":{ + "shape":"StarterPromptList", + "documentation":"

A list of starter prompts that are displayed to users when they begin interacting with the agent.

" + }, + "WelcomeMessage":{ + "shape":"WelcomeMessage", + "documentation":"

The welcome message that is displayed when a user starts a conversation with the agent.

" + }, + "Arn":{ + "shape":"AgentArn", + "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

" + }, + "AgentLifecycle":{ + "shape":"AgentLifecycle", + "documentation":"

The lifecycle state of the agent. Valid values are PREVIEW and PUBLISHED.

" + }, + "AgentStatus":{ + "shape":"AgentStatus", + "documentation":"

The status of the agent.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the agent was created.

" + }, + "Creator":{ + "shape":"String", + "documentation":"

The identity of the user who created the agent.

" + }, + "CustomPromptInterface":{ + "shape":"CustomPromptInterface", + "documentation":"

The custom prompt interface configuration for the agent.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

An error message associated with the agent, if applicable.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the agent was last updated.

" + } + }, + "documentation":"

An agent resource in Amazon QuickSight that provides AI-powered conversational experiences.

" + }, + "AgentActionConnectorsList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "AgentArn":{ + "type":"string", + "max":1284, + "min":0, + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, + "AgentDescription":{ + "type":"string", + "max":1000, + "min":0, + "pattern":"\\P{C}*" + }, + "AgentId":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[0-9a-zA-Z-_.+]+" + }, + "AgentLifecycle":{ + "type":"string", + "enum":[ + "PREVIEW", + "PUBLISHED" + ] + }, + "AgentName":{ + "type":"string", + "max":50, + "min":1, + "pattern":"(?!\\s*$).+" + }, + "AgentOwnershipFilterAttribute":{ + "type":"string", + "enum":[ + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "AGENT_NAME" + ] + }, + "AgentSearchFilter":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"AgentOwnershipFilterAttribute", + "documentation":"

The name of the field to filter on.

" + }, + "Operator":{ + "shape":"ComparisonOperator", + "documentation":"

The comparison operator to use for the filter.

" + }, + "Value":{ + "shape":"String", + "documentation":"

The value to filter on.

" + } + }, + "documentation":"

A filter to apply when searching agents.

" + }, + "AgentSearchFilterList":{ + "type":"list", + "member":{"shape":"AgentSearchFilter"}, + "max":1, + "min":1 + }, + "AgentSpacesList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "AgentStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "UPDATING", + "FAILED", + "CREATING" + ] + }, + "AgentSummaries":{ + "type":"list", + "member":{"shape":"AgentSummary"} + }, + "AgentSummary":{ + "type":"structure", + "required":[ + "Arn", + "AgentId", + "Name", + "CreatedAt", + "UpdatedAt" + ], + "members":{ + "Arn":{ + "shape":"AgentArn", + "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

" + }, + "Name":{ + "shape":"AgentName", + "documentation":"

The name of the agent.

" + }, + "Description":{ + "shape":"AgentDescription", + "documentation":"

A description of the agent.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the agent was created.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the agent was last updated.

" + }, + "IconId":{ + "shape":"IconId", + "documentation":"

The icon identifier for the agent.

" + } + }, + "documentation":"

A summary of an agent, including its identifier, name, and metadata.

" + }, + "AgentSummaryList":{ + "type":"list", + "member":{"shape":"AgentSummary"} + }, + "AgentsMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "AggFunction":{ "type":"structure", "members":{ @@ -10735,6 +11400,13 @@ "MOVING_AVERAGE" ] }, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "StringEquals", + "StringLike" + ] + }, "Computation":{ "type":"structure", "members":{ @@ -11428,6 +12100,105 @@ } } }, + "CreateAgentRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "AgentId", + "Name" + ], + "members":{ + "Spaces":{ + "shape":"CreateAgentRequestSpacesList", + "documentation":"

The Amazon Resource Names (ARNs) of the spaces to attach to the agent.

" + }, + "ActionConnectors":{ + "shape":"CreateAgentRequestActionConnectorsList", + "documentation":"

The Amazon Resource Names (ARNs) of the action connectors to attach to the agent.

" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agent.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

A unique identifier for the agent.

" + }, + "Name":{ + "shape":"AgentName", + "documentation":"

The name of the agent.

" + }, + "Description":{ + "shape":"AgentDescription", + "documentation":"

A description of the agent.

" + }, + "IconId":{ + "shape":"IconId", + "documentation":"

The icon identifier for the agent.

" + }, + "StarterPrompts":{ + "shape":"StarterPromptList", + "documentation":"

A list of starter prompts that are displayed to users when they begin interacting with the agent.

" + }, + "WelcomeMessage":{ + "shape":"WelcomeMessage", + "documentation":"

The welcome message that is displayed when a user starts a conversation with the agent.

" + }, + "AgentLifecycle":{ + "shape":"AgentLifecycle", + "documentation":"

The lifecycle state of the agent. Valid values are PREVIEW and PUBLISHED.

" + }, + "CustomPromptInput":{ + "shape":"CustomPromptInput", + "documentation":"

The custom prompt configuration for the agent.

" + } + } + }, + "CreateAgentRequestActionConnectorsList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "CreateAgentRequestSpacesList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "CreateAgentResponse":{ + "type":"structure", + "required":[ + "Arn", + "AgentId", + "AgentStatus", + "AgentName" + ], + "members":{ + "Arn":{ + "shape":"AgentArn", + "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

" + }, + "AgentStatus":{ + "shape":"AgentStatus", + "documentation":"

The status of the agent.

" + }, + "AgentName":{ + "shape":"AgentName", + "documentation":"

The name of the agent.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "CreateAnalysisRequest":{ "type":"structure", "required":[ @@ -11938,6 +12709,74 @@ } } }, + "CreateFlowRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Name", + "FlowDefinition" + ], + "members":{ + "AwsAccountId":{ + "shape":"AccountId", + "documentation":"

The ID of the Amazon Web Services account where you want to create the flow.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Name":{ + "shape":"TitleInput", + "documentation":"

The display name for the flow.

" + }, + "Description":{ + "shape":"FlowDescriptionInput", + "documentation":"

The description for the flow.

" + }, + "FlowDefinition":{ + "shape":"SensitiveDocument", + "documentation":"

The definition of the flow, specifying the steps and configurations. This is the flow definition in Quick Flow's internal format. The format is subject to change.

Always derive or depend on the flow definition from the DescribeFlow operation to ensure you are working with the latest format.

" + }, + "Permissions":{ + "shape":"PermissionsList", + "documentation":"

Initial permissions for the flow. If omitted, the flow is created without any permissions.

" + }, + "ClientToken":{ + "shape":"CreateFlowRequestClientTokenString", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "idempotencyToken":true + } + } + }, + "CreateFlowRequestClientTokenString":{ + "type":"string", + "max":128, + "min":1 + }, + "CreateFlowResponse":{ + "type":"structure", + "required":[ + "Arn", + "FlowId" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the flow.

" + }, + "FlowId":{ + "shape":"FlowId", + "documentation":"

The unique identifier of the flow.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "CreateFolderMembershipRequest":{ "type":"structure", "required":[ @@ -12537,6 +13376,52 @@ } } }, + "CreateSpaceRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId", + "Name" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" + }, + "Name":{ + "shape":"SpaceName", + "documentation":"

A display name for the space.

" + }, + "Description":{ + "shape":"SpaceDescription", + "documentation":"

A description of the space.

" + } + } + }, + "CreateSpaceResponse":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "CreateTemplateAliasRequest":{ "type":"structure", "required":[ @@ -13434,6 +14319,118 @@ "min":1, "pattern":"^[a-zA-Z0-9+=,.@_-]+$" }, + "CustomPromptInput":{ + "type":"structure", + "members":{ + "ExistingPrompt":{ + "shape":"CustomPromptProfile", + "documentation":"

An existing custom prompt profile to use for the agent.

" + }, + "NewPrompt":{ + "shape":"CustomPromptInputParameters", + "documentation":"

New custom prompt parameters to configure for the agent.

" + } + }, + "documentation":"

The custom prompt input for an agent. This is a union type that can be either an existing prompt profile or new prompt parameters.

", + "sensitive":true, + "union":true + }, + "CustomPromptInputParameters":{ + "type":"structure", + "members":{ + "ResponseLength":{ + "shape":"StyleDescription", + "documentation":"

Instructions for the desired response length.

" + }, + "OutputStyle":{ + "shape":"StyleDescription", + "documentation":"

Instructions for the desired output style.

" + }, + "Identity":{ + "shape":"StyleDescription", + "documentation":"

Instructions that define the agent's identity and persona.

" + }, + "Tone":{ + "shape":"StyleDescription", + "documentation":"

Instructions for the desired tone of responses.

" + }, + "CustomInstructions":{ + "shape":"StyleDescription", + "documentation":"

Custom instructions for the agent's behavior.

" + } + }, + "documentation":"

The parameters for configuring a custom prompt for an agent.

" + }, + "CustomPromptInterface":{ + "type":"structure", + "required":[ + "ModelProfileId", + "SubscriptionId", + "QbsAwsAccountId" + ], + "members":{ + "ModelProfileId":{ + "shape":"ModelProfileId", + "documentation":"

The identifier of the model profile.

" + }, + "SubscriptionId":{ + "shape":"SubscriptionId", + "documentation":"

The subscription identifier.

" + }, + "QbsAwsAccountId":{ + "shape":"QbsAwsAccountId", + "documentation":"

The Amazon Web Services account ID for the Q Business service.

" + }, + "ResponseLength":{ + "shape":"StyleDescription", + "documentation":"

Instructions for the desired response length.

" + }, + "OutputStyle":{ + "shape":"StyleDescription", + "documentation":"

Instructions for the desired output style.

" + }, + "Identity":{ + "shape":"StyleDescription", + "documentation":"

Instructions that define the agent's identity and persona.

" + }, + "Tone":{ + "shape":"StyleDescription", + "documentation":"

Instructions for the desired tone of responses.

" + }, + "CustomInstructions":{ + "shape":"StyleDescription", + "documentation":"

Custom instructions for the agent's behavior.

" + }, + "promptSummary":{ + "shape":"SensitiveText", + "documentation":"

A summary of the custom prompt configuration.

" + } + }, + "documentation":"

The custom prompt interface configuration that defines how an agent's prompt is configured.

" + }, + "CustomPromptProfile":{ + "type":"structure", + "required":[ + "ModelProfileId", + "SubscriptionId", + "QbsAwsAccountId" + ], + "members":{ + "ModelProfileId":{ + "shape":"ModelProfileId", + "documentation":"

The identifier of the model profile.

" + }, + "SubscriptionId":{ + "shape":"SubscriptionId", + "documentation":"

The subscription identifier.

" + }, + "QbsAwsAccountId":{ + "shape":"QbsAwsAccountId", + "documentation":"

The Amazon Web Services account ID for the Q Business service.

" + } + }, + "documentation":"

A reference to an existing custom prompt profile.

" + }, "CustomSql":{ "type":"structure", "required":[ @@ -16590,6 +17587,36 @@ } } }, + "DeleteAgentRequest":{ + "type":"structure", + "required":[ + "AgentId", + "AwsAccountId" + ], + "members":{ + "AgentId":{ + "shape":"String", + "documentation":"

The unique identifier for the agent to delete.

", + "location":"uri", + "locationName":"AgentId" + }, + "AwsAccountId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services account that contains the agent.

", + "location":"uri", + "locationName":"AwsAccountId" + } + } + }, + "DeleteAgentResponse":{ + "type":"structure", + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DeleteAnalysisRequest":{ "type":"structure", "required":[ @@ -16940,6 +17967,41 @@ } } }, + "DeleteFlowRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "FlowId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the flow that you are deleting.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "FlowId":{ + "shape":"FlowId", + "documentation":"

The unique identifier of the flow to delete.

", + "location":"uri", + "locationName":"FlowId" + } + } + }, + "DeleteFlowResponse":{ + "type":"structure", + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "DeleteFolderMembershipRequest":{ "type":"structure", "required":[ @@ -17421,6 +18483,45 @@ } } }, + "DeleteSpaceRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to delete.

", + "location":"uri", + "locationName":"SpaceId" + } + } + }, + "DeleteSpaceResponse":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DeleteTemplateAliasRequest":{ "type":"structure", "required":[ @@ -18136,6 +19237,89 @@ } } }, + "DescribeAgentPermissionsRequest":{ + "type":"structure", + "required":[ + "AgentId", + "AwsAccountId" + ], + "members":{ + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

", + "location":"uri", + "locationName":"AgentId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agent.

", + "location":"uri", + "locationName":"AwsAccountId" + } + } + }, + "DescribeAgentPermissionsResponse":{ + "type":"structure", + "required":[ + "Arn", + "AgentId", + "Permissions", + "RequestId" + ], + "members":{ + "Arn":{ + "shape":"AgentArn", + "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

" + }, + "Permissions":{ + "shape":"ResourcePermissionList", + "documentation":"

The resource permissions for the agent.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "DescribeAgentRequest":{ + "type":"structure", + "required":[ + "AgentId", + "AwsAccountId" + ], + "members":{ + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

", + "location":"uri", + "locationName":"AgentId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agent.

", + "location":"uri", + "locationName":"AwsAccountId" + } + } + }, + "DescribeAgentResponse":{ + "type":"structure", + "required":["Agent"], + "members":{ + "Agent":{ + "shape":"Agent", + "documentation":"

The full details of the agent, including its configuration, status, and associations.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DescribeAnalysisDefinitionRequest":{ "type":"structure", "required":[ @@ -19305,6 +20489,53 @@ } } }, + "DescribeFlowRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "FlowId", + "PublishState" + ], + "members":{ + "AwsAccountId":{ + "shape":"AccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the flow that you are describing.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "FlowId":{ + "shape":"FlowId", + "documentation":"

The unique identifier of the flow.

", + "location":"uri", + "locationName":"FlowId" + }, + "PublishState":{ + "shape":"FlowPublishState", + "documentation":"

The publish state of the flow version to describe. Valid values are DRAFT, PUBLISHED, or PENDING_APPROVAL.

", + "location":"querystring", + "locationName":"publish-state" + } + } + }, + "DescribeFlowResponse":{ + "type":"structure", + "required":["Flow"], + "members":{ + "Flow":{ + "shape":"FlowDetail", + "documentation":"

The full details of the flow.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "DescribeFolderPermissionsRequest":{ "type":"structure", "required":[ @@ -20033,6 +21264,105 @@ } } }, + "DescribeSpacePermissionsRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to describe permissions for.

", + "location":"uri", + "locationName":"SpaceId" + } + } + }, + "DescribeSpacePermissionsResponse":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "Permissions":{ + "shape":"ResourcePermissionList", + "documentation":"

A list of resource permissions for the space.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "DescribeSpaceRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to describe.

", + "location":"uri", + "locationName":"SpaceId" + }, + "MaxContributors":{ + "shape":"MaxContributors", + "documentation":"

The maximum number of contributors to include in the response.

", + "location":"querystring", + "locationName":"maxContributors" + } + } + }, + "DescribeSpaceResponse":{ + "type":"structure", + "required":[ + "spaceId", + "Space" + ], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "Space":{ + "shape":"SpaceDetails", + "documentation":"

The details of the space.

" + }, + "Contributors":{ + "shape":"SpaceContributorList", + "documentation":"

A list of contributors to the space.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DescribeTemplateAliasRequest":{ "type":"structure", "required":[ @@ -21223,6 +22553,54 @@ }, "documentation":"

An entry that appears when a KeyRegistration update to Quick Sight fails.

" }, + "FailedSpaceResourceOperation":{ + "type":"structure", + "required":[ + "ResourceType", + "ErrorMessage" + ], + "members":{ + "ResourceType":{ + "shape":"SpaceQuickSightResourceType", + "documentation":"

The type of the resource.

" + }, + "ResourceDetails":{ + "shape":"SpaceQuickSightResourceDetails", + "documentation":"

The details of the resource.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

The error message that describes why the operation failed.

" + } + }, + "documentation":"

A resource operation that failed.

" + }, + "FailedSpaceResourceOperations":{ + "type":"list", + "member":{"shape":"FailedSpaceResourceOperation"} + }, + "FailedToUpdateAssociation":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN that could not be added or removed.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

A description of the failure.

" + }, + "ErrorCode":{ + "shape":"String", + "documentation":"

The error code for the failure.

" + } + }, + "documentation":"

Information about a per-ARN failure when updating agent associations.

" + }, + "FailedToUpdateAssociationList":{ + "type":"list", + "member":{"shape":"FailedToUpdateAssociation"} + }, "FieldBarSeriesItem":{ "type":"structure", "required":["FieldId"], @@ -22209,6 +23587,70 @@ "max":1024, "min":0 }, + "FlowDescriptionInput":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"(?!\\s+$)[^{}\"\\\\<>]*" + }, + "FlowDetail":{ + "type":"structure", + "required":[ + "Arn", + "FlowId", + "Name", + "PublishState", + "CreatedTime", + "FlowDefinition" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the flow.

" + }, + "FlowId":{ + "shape":"FlowId", + "documentation":"

The unique identifier of the flow.

" + }, + "Name":{ + "shape":"Title", + "documentation":"

The display name of the flow.

" + }, + "Description":{ + "shape":"FlowDescription", + "documentation":"

The description of the flow.

" + }, + "PublishState":{ + "shape":"FlowPublishState", + "documentation":"

The publish state of the flow. Valid values are DRAFT, PUBLISHED, or PENDING_APPROVAL.

" + }, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The time this flow was created.

" + }, + "CreatedBy":{ + "shape":"String", + "documentation":"

The identifier of the principal who created the flow.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The last time this flow was modified.

" + }, + "LastUpdatedBy":{ + "shape":"String", + "documentation":"

The identifier of the last principal who updated the flow.

" + }, + "FlowDefinition":{ + "shape":"SensitiveDocument", + "documentation":"

The definition of the flow, specifying the steps and configurations. This is the flow definition in Quick Flow's internal format. The format is subject to change.

" + }, + "StepAliases":{ + "shape":"StepAliasList", + "documentation":"

A list of step alias mappings for the flow.

" + } + }, + "documentation":"

The full details of a flow, including its definition specifying the steps.

" + }, "FlowId":{ "type":"string", "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" @@ -25320,6 +26762,11 @@ "X" ] }, + "IconId":{ + "type":"string", + "max":200, + "min":1 + }, "Identifier":{ "type":"structure", "required":["Identity"], @@ -27242,6 +28689,54 @@ } } }, + "ListAgentsRequest":{ + "type":"structure", + "required":["AwsAccountId"], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agents.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "MaxResults":{ + "shape":"ListAgentsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return.

", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results, or null if there are no more results.

", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListAgentsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListAgentsResponse":{ + "type":"structure", + "required":["AgentSummaries"], + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "AgentSummaries":{ + "shape":"AgentSummaries", + "documentation":"

A list of agent summaries.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + } + } + }, "ListAnalysesRequest":{ "type":"structure", "required":["AwsAccountId"], @@ -28516,6 +30011,105 @@ } } }, + "ListSpaceResourcesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to list resources for.

", + "location":"uri", + "locationName":"SpaceId" + } + } + }, + "ListSpaceResourcesResponse":{ + "type":"structure", + "required":[ + "spaceId", + "SpaceResources" + ], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "SpaceResources":{ + "shape":"SpaceResourceSummaries", + "documentation":"

A list of resource summaries in the space.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "ListSpacesRequest":{ + "type":"structure", + "required":["AwsAccountId"], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the spaces.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no more results.

", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"SpacesMaxResults", + "documentation":"

The maximum number of results to return.

", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListSpacesResponse":{ + "type":"structure", + "required":[ + "spaceId", + "SpaceSummaries" + ], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "SpaceSummaries":{ + "shape":"SpaceSummaries", + "documentation":"

A list of space summaries.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -29468,6 +31062,12 @@ }, "documentation":"

The parameters for MariaDB.

" }, + "MaxContributors":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "MaxResults":{ "type":"integer", "max":100, @@ -29641,6 +31241,12 @@ "SHOW_AS_BLANK" ] }, + "ModelProfileId":{ + "type":"string", + "max":36, + "min":36, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9-]{35}" + }, "MySqlParameters":{ "type":"structure", "required":[ @@ -29998,6 +31604,11 @@ }, "documentation":"

The configuration that overrides the existing default values for a dataset parameter that is inherited from another dataset.

" }, + "NextToken":{ + "type":"string", + "max":800, + "min":1 + }, "NonEmptyString":{ "type":"string", "pattern":".*\\S.*" @@ -32553,6 +34164,18 @@ "MEASURE" ] }, + "PublicSpaceArn":{ + "type":"string", + "max":512, + "min":0, + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, + "PublicSpaceId":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[0-9a-zA-Z-_=.+]+" + }, "PurchaseMode":{ "type":"string", "enum":[ @@ -32683,6 +34306,12 @@ "DISABLED" ] }, + "QbsAwsAccountId":{ + "type":"string", + "max":15, + "min":15, + "pattern":"QBS[0-9]{12}" + }, "Query":{ "type":"string", "max":256, @@ -34954,6 +36583,54 @@ } } }, + "SearchAgentsRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Filters" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agents.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Filters":{ + "shape":"AgentSearchFilterList", + "documentation":"

The filters to apply when searching agents.

" + }, + "MaxResults":{ + "shape":"AgentsMaxResults", + "documentation":"

The maximum number of results to return.

", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results, or null if there are no more results.

", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "SearchAgentsResponse":{ + "type":"structure", + "members":{ + "AgentSummaries":{ + "shape":"AgentSummaryList", + "documentation":"

A list of agent summaries.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "SearchAnalysesRequest":{ "type":"structure", "required":[ @@ -35349,6 +37026,62 @@ } } }, + "SearchSpacesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Filters" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the spaces.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + }, + "MaxResults":{ + "shape":"SpacesMaxResults", + "documentation":"

The maximum number of results to return.

" + }, + "Filters":{ + "shape":"SpaceQuicksightSearchFilters", + "documentation":"

The filters to apply to the search.

" + } + } + }, + "SearchSpacesResponse":{ + "type":"structure", + "required":[ + "spaceId", + "SpaceSummaries" + ], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "SpaceSummaries":{ + "shape":"SpaceSummaries", + "documentation":"

A list of space summaries that match the search criteria.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "SearchTopicsRequest":{ "type":"structure", "required":[ @@ -35768,6 +37501,12 @@ }, "documentation":"

A structure that represents a semantic type.

" }, + "SensitiveDocument":{ + "type":"structure", + "members":{}, + "document":true, + "sensitive":true + }, "SensitiveDouble":{ "type":"double", "sensitive":true @@ -35816,6 +37555,10 @@ "type":"string", "sensitive":true }, + "SensitiveText":{ + "type":"string", + "sensitive":true + }, "SensitiveTimestamp":{ "type":"timestamp", "sensitive":true @@ -37032,6 +38775,299 @@ "max":32, "min":1 }, + "SpaceContributor":{ + "type":"structure", + "required":["rawFileSizeBytes"], + "members":{ + "userName":{ + "shape":"String", + "documentation":"

The user name of the contributor.

" + }, + "rawFileSizeBytes":{ + "shape":"Long", + "documentation":"

The raw file size in bytes contributed by the user.

", + "box":true + }, + "percentage":{ + "shape":"Double", + "documentation":"

The percentage of total contributions made by the user.

", + "box":true + } + }, + "documentation":"

A contributor to an Amazon QuickSight space.

" + }, + "SpaceContributorList":{ + "type":"list", + "member":{"shape":"SpaceContributor"} + }, + "SpaceDescription":{ + "type":"string", + "max":1000, + "min":0, + "pattern":"[\\P{C}\\n\\r\\t\\f\\v\\p{Cf}]*", + "sensitive":true + }, + "SpaceDetails":{ + "type":"structure", + "members":{ + "name":{ + "shape":"SpaceName", + "documentation":"

The display name of the space.

" + }, + "description":{ + "shape":"SpaceDescription", + "documentation":"

The description of the space.

" + }, + "resources":{ + "shape":"SpaceQuickSightResources", + "documentation":"

The resources in the space.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the space was created.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the space was last updated.

" + }, + "consumedSourceSize":{ + "shape":"Long", + "documentation":"

The total consumed source size in bytes.

", + "box":true + }, + "consumedSourceDocCount":{ + "shape":"Integer", + "documentation":"

The number of consumed source documents.

", + "box":true + }, + "createdBy":{ + "shape":"String", + "documentation":"

The user who created the space.

" + }, + "createdByArn":{ + "shape":"String", + "documentation":"

The ARN of the user who created the space.

" + } + }, + "documentation":"

The details of an Amazon QuickSight space.

" + }, + "SpaceName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[\\P{C}\\n\\r\\t\\f\\v\\p{Cf}]*" + }, + "SpaceQuickSightResource":{ + "type":"structure", + "required":[ + "resourceType", + "resourceDetails" + ], + "members":{ + "resourceType":{ + "shape":"SpaceQuickSightResourceType", + "documentation":"

The type of the QuickSight resource.

" + }, + "resourceDetails":{ + "shape":"SpaceQuickSightResourceDetails", + "documentation":"

The details of the QuickSight resource.

" + } + }, + "documentation":"

A QuickSight resource that is associated with a space.

" + }, + "SpaceQuickSightResourceDetails":{ + "type":"structure", + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The ARN of the QuickSight resource.

" + } + }, + "documentation":"

The details of a QuickSight resource in a space.

", + "union":true + }, + "SpaceQuickSightResourceType":{ + "type":"string", + "enum":[ + "TOPIC", + "DASHBOARD", + "KNOWLEDGE_BASE", + "SPACE", + "ACTION_CONNECTOR", + "DATA_SET", + "ARTIFACT" + ] + }, + "SpaceQuickSightResources":{ + "type":"list", + "member":{"shape":"SpaceQuickSightResource"} + }, + "SpaceQuickSightSearchFilterName":{ + "type":"string", + "enum":[ + "SPACE_ID", + "SPACE_NAME", + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "CONTRIBUTED_BY", + "CONSUMED_SOURCE_SIZE", + "CREATED_BY" + ] + }, + "SpaceQuicksightSearchFilter":{ + "type":"structure", + "required":[ + "name", + "operator", + "value" + ], + "members":{ + "name":{ + "shape":"SpaceQuickSightSearchFilterName", + "documentation":"

The name of the filter field to use.

" + }, + "operator":{ + "shape":"SpaceSearchOperator", + "documentation":"

The comparison operator to use for the filter.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value to use for the filter.

" + } + }, + "documentation":"

A filter to use when searching for spaces.

" + }, + "SpaceQuicksightSearchFilters":{ + "type":"list", + "member":{"shape":"SpaceQuicksightSearchFilter"}, + "max":2, + "min":1 + }, + "SpaceResourceOperation":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceDetails" + ], + "members":{ + "ResourceType":{ + "shape":"SpaceQuickSightResourceType", + "documentation":"

The type of the resource.

" + }, + "ResourceDetails":{ + "shape":"SpaceQuickSightResourceDetails", + "documentation":"

The details of the resource.

" + } + }, + "documentation":"

An operation to perform on a resource in a space.

" + }, + "SpaceResourceOperations":{ + "type":"list", + "member":{"shape":"SpaceResourceOperation"} + }, + "SpaceResourceSummaries":{ + "type":"list", + "member":{"shape":"SpaceResourceSummary"} + }, + "SpaceResourceSummary":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceDetails" + ], + "members":{ + "ResourceType":{ + "shape":"SpaceQuickSightResourceType", + "documentation":"

The type of the resource.

" + }, + "ResourceDetails":{ + "shape":"SpaceQuickSightResourceDetails", + "documentation":"

The details of the resource.

" + }, + "ResourceName":{ + "shape":"String", + "documentation":"

The name of the resource.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the resource was last updated.

" + } + }, + "documentation":"

A summary of a resource in a space.

" + }, + "SpaceSearchOperator":{ + "type":"string", + "enum":[ + "STRING_EQUALS", + "STRING_LIKE", + "NUMBER_RANGE" + ] + }, + "SpaceSummaries":{ + "type":"list", + "member":{"shape":"SpaceSummary"} + }, + "SpaceSummary":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "name":{ + "shape":"SpaceName", + "documentation":"

The display name of the space.

" + }, + "description":{ + "shape":"SpaceDescription", + "documentation":"

The description of the space.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the space was last updated.

" + }, + "consumedSourceSize":{ + "shape":"Long", + "documentation":"

The total consumed source size in bytes.

", + "box":true + }, + "consumedSourceDocCount":{ + "shape":"Integer", + "documentation":"

The number of consumed source documents.

", + "box":true + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the space was created.

" + }, + "createdBy":{ + "shape":"String", + "documentation":"

The user who created the space.

" + }, + "createdByArn":{ + "shape":"String", + "documentation":"

The ARN of the user who created the space.

" + }, + "resourcesCount":{ + "shape":"Integer", + "documentation":"

The number of resources in the space.

", + "box":true + } + }, + "documentation":"

A summary of an Amazon QuickSight space.

" + }, + "SpacesMaxResults":{ + "type":"integer", + "box":true, + "max":500, + "min":1 + }, "Spacing":{ "type":"structure", "members":{ @@ -37535,6 +39571,18 @@ } } }, + "StarterPrompt":{ + "type":"string", + "max":100, + "min":0 + }, + "StarterPromptList":{ + "type":"list", + "member":{"shape":"StarterPrompt"}, + "max":3, + "min":0, + "sensitive":true + }, "StatePersistenceConfigurations":{ "type":"structure", "required":["Enabled"], @@ -37622,6 +39670,33 @@ ] }, "StatusCode":{"type":"integer"}, + "StepAliasList":{ + "type":"list", + "member":{"shape":"StepAliasMapping"} + }, + "StepAliasMapping":{ + "type":"structure", + "required":[ + "StepId", + "StepAlias" + ], + "members":{ + "StepId":{ + "shape":"StepId", + "documentation":"

The unique identifier of the step.

" + }, + "StepAlias":{ + "shape":"String", + "documentation":"

The alias for the step.

" + } + }, + "documentation":"

A mapping between a step identifier and its alias in a flow.

" + }, + "StepId":{ + "type":"string", + "max":64, + "min":1 + }, "String":{"type":"string"}, "StringDatasetParameter":{ "type":"structure", @@ -37773,6 +39848,13 @@ }, "documentation":"

The configuration that defines the default value of a String parameter when a value has not been set.

" }, + "StyleDescription":{ + "type":"string", + "max":350000, + "min":5, + "pattern":"[\\s\\S]*", + "sensitive":true + }, "StyledCellType":{ "type":"string", "enum":[ @@ -37793,6 +39875,12 @@ "max":15, "min":2 }, + "SubscriptionId":{ + "type":"string", + "max":32, + "min":32, + "pattern":"[a-z0-9]+" + }, "SubtotalOptions":{ "type":"structure", "members":{ @@ -39480,6 +41568,12 @@ "max":128, "min":1 }, + "TitleInput":{ + "type":"string", + "max":128, + "min":1, + "pattern":"(?!\\s+$)[^{}\"\\\\<>]*" + }, "TokenProviderUrl":{ "type":"string", "max":2048, @@ -41761,6 +43855,200 @@ } } }, + "UpdateAgentPermissionsRequest":{ + "type":"structure", + "required":[ + "AgentId", + "AwsAccountId" + ], + "members":{ + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

", + "location":"uri", + "locationName":"AgentId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agent.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "GrantPermissions":{ + "shape":"UpdateAgentPermissionsRequestGrantPermissionsList", + "documentation":"

The resource permissions that you want to grant on the agent.

" + }, + "RevokePermissions":{ + "shape":"UpdateAgentPermissionsRequestRevokePermissionsList", + "documentation":"

The resource permissions that you want to revoke from the agent.

" + } + } + }, + "UpdateAgentPermissionsRequestGrantPermissionsList":{ + "type":"list", + "member":{"shape":"ResourcePermission"}, + "max":100, + "min":0 + }, + "UpdateAgentPermissionsRequestRevokePermissionsList":{ + "type":"list", + "member":{"shape":"ResourcePermission"}, + "max":100, + "min":0 + }, + "UpdateAgentPermissionsResponse":{ + "type":"structure", + "required":[ + "Arn", + "AgentId" + ], + "members":{ + "Arn":{ + "shape":"AgentArn", + "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Permissions":{ + "shape":"ResourcePermissionList", + "documentation":"

The resource permissions for the agent.

" + } + } + }, + "UpdateAgentRequest":{ + "type":"structure", + "required":[ + "AgentId", + "AwsAccountId", + "Name" + ], + "members":{ + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent to update.

", + "location":"uri", + "locationName":"AgentId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the agent.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Name":{ + "shape":"AgentName", + "documentation":"

The name of the agent.

" + }, + "Description":{ + "shape":"AgentDescription", + "documentation":"

A description of the agent.

" + }, + "IconId":{ + "shape":"IconId", + "documentation":"

The icon identifier for the agent.

" + }, + "StarterPrompts":{ + "shape":"StarterPromptList", + "documentation":"

A list of starter prompts that are displayed to users when they begin interacting with the agent.

" + }, + "WelcomeMessage":{ + "shape":"WelcomeMessage", + "documentation":"

The welcome message that is displayed when a user starts a conversation with the agent.

" + }, + "CustomPromptInput":{ + "shape":"CustomPromptInput", + "documentation":"

The custom prompt configuration for the agent.

" + }, + "SpacesToAdd":{ + "shape":"UpdateAgentRequestSpacesToAddList", + "documentation":"

The Amazon Resource Names (ARNs) of the spaces to attach to the agent.

" + }, + "SpacesToRemove":{ + "shape":"UpdateAgentRequestSpacesToRemoveList", + "documentation":"

The Amazon Resource Names (ARNs) of the spaces to detach from the agent.

" + }, + "ActionConnectorsToAdd":{ + "shape":"UpdateAgentRequestActionConnectorsToAddList", + "documentation":"

The Amazon Resource Names (ARNs) of the action connectors to attach to the agent.

" + }, + "ActionConnectorsToRemove":{ + "shape":"UpdateAgentRequestActionConnectorsToRemoveList", + "documentation":"

The Amazon Resource Names (ARNs) of the action connectors to detach from the agent.

" + } + } + }, + "UpdateAgentRequestActionConnectorsToAddList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "UpdateAgentRequestActionConnectorsToRemoveList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "UpdateAgentRequestSpacesToAddList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "UpdateAgentRequestSpacesToRemoveList":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":10, + "min":0 + }, + "UpdateAgentResponse":{ + "type":"structure", + "required":[ + "Arn", + "AgentId", + "AgentStatus" + ], + "members":{ + "Arn":{ + "shape":"AgentArn", + "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + }, + "AgentId":{ + "shape":"AgentId", + "documentation":"

The unique identifier for the agent.

" + }, + "AgentStatus":{ + "shape":"AgentStatus", + "documentation":"

The status of the agent.

" + }, + "FailedToAddSpaces":{ + "shape":"FailedToUpdateAssociationList", + "documentation":"

A list of per-ARN failures from the spaces that were requested to be added.

" + }, + "FailedToRemoveSpaces":{ + "shape":"FailedToUpdateAssociationList", + "documentation":"

A list of per-ARN failures from the spaces that were requested to be removed.

" + }, + "FailedToAddActionConnectors":{ + "shape":"FailedToUpdateAssociationList", + "documentation":"

A list of per-ARN failures from the action connectors that were requested to be added.

" + }, + "FailedToRemoveActionConnectors":{ + "shape":"FailedToUpdateAssociationList", + "documentation":"

A list of per-ARN failures from the action connectors that were requested to be removed.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "UpdateAnalysisPermissionsRequest":{ "type":"structure", "required":[ @@ -42761,6 +45049,75 @@ } } }, + "UpdateFlowRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "FlowId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the flow that you are updating.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "FlowId":{ + "shape":"FlowId", + "documentation":"

The unique identifier of the flow to update.

", + "location":"uri", + "locationName":"FlowId" + }, + "Name":{ + "shape":"TitleInput", + "documentation":"

Updated display name for the flow. Omit to preserve the existing name.

" + }, + "Description":{ + "shape":"FlowDescriptionInput", + "documentation":"

Updated description for the flow. Omit to preserve the existing description.

" + }, + "FlowDefinition":{ + "shape":"SensitiveDocument", + "documentation":"

The definition of the flow, specifying the steps and configurations. This is the flow definition in Quick Flow's internal format. The format is subject to change. When provided, all existing steps are replaced. Omit to preserve the existing definition.

Always derive or depend on the flow definition from the DescribeFlow operation to ensure you are working with the latest format.

" + }, + "ClientToken":{ + "shape":"UpdateFlowRequestClientTokenString", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "idempotencyToken":true + } + } + }, + "UpdateFlowRequestClientTokenString":{ + "type":"string", + "max":128, + "min":1 + }, + "UpdateFlowResponse":{ + "type":"structure", + "required":[ + "Arn", + "FlowId" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the flow.

" + }, + "FlowId":{ + "shape":"FlowId", + "documentation":"

The unique identifier of the flow.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "UpdateFolderPermissionsRequest":{ "type":"structure", "required":[ @@ -43515,6 +45872,155 @@ } } }, + "UpdateSpacePermissionsRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to update permissions for.

", + "location":"uri", + "locationName":"SpaceId" + }, + "GrantPermissions":{ + "shape":"ResourcePermissionList", + "documentation":"

The permissions that you want to grant on the space.

" + }, + "RevokePermissions":{ + "shape":"ResourcePermissionList", + "documentation":"

The permissions that you want to revoke from the space.

" + } + } + }, + "UpdateSpacePermissionsResponse":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "permissions":{ + "shape":"ResourcePermissionList", + "documentation":"

The updated permissions for the space.

" + }, + "requestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "UpdateSpaceRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to update.

", + "location":"uri", + "locationName":"SpaceId" + }, + "Name":{ + "shape":"SpaceName", + "documentation":"

A new display name for the space.

" + }, + "Description":{ + "shape":"SpaceDescription", + "documentation":"

A new description for the space.

" + } + } + }, + "UpdateSpaceResourcesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "SpaceId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the space.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "SpaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space that you want to update resources for.

", + "location":"uri", + "locationName":"SpaceId" + }, + "AddResources":{ + "shape":"SpaceResourceOperations", + "documentation":"

A list of resources to add to the space.

" + }, + "RemoveResources":{ + "shape":"SpaceResourceOperations", + "documentation":"

A list of resources to remove from the space.

" + } + } + }, + "UpdateSpaceResourcesResponse":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "FailedResourceOperations":{ + "shape":"FailedSpaceResourceOperations", + "documentation":"

A list of resource operations that failed.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "UpdateSpaceResponse":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"PublicSpaceId", + "documentation":"

The ID of the space.

" + }, + "spaceArn":{ + "shape":"PublicSpaceArn", + "documentation":"

The ARN of the space.

" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "UpdateTemplateAliasRequest":{ "type":"structure", "required":[ @@ -45251,6 +47757,12 @@ }, "documentation":"

The credentials for authenticating with a web proxy server.

" }, + "WelcomeMessage":{ + "type":"string", + "max":300, + "min":0, + "sensitive":true + }, "WhatIfPointScenario":{ "type":"structure", "required":[ From a40e66cbfe1f1890e3e8d95bc549cfd8f7f5e596 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Mon, 1 Jun 2026 18:07:45 +0000 Subject: [PATCH 52/73] Bump version to 2.34.58 --- .changes/2.34.58.json | 17 +++++++++++++++++ .../api-change-cognitoidp-73033.json | 5 ----- .../api-change-marketplaceagreement-18415.json | 5 ----- .../api-change-quicksight-39689.json | 5 ----- CHANGELOG.rst | 8 ++++++++ awscli/__init__.py | 2 +- configure | 14 +++++++------- configure.ac | 2 +- doc/source/conf.py | 2 +- 9 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 .changes/2.34.58.json delete mode 100644 .changes/next-release/api-change-cognitoidp-73033.json delete mode 100644 .changes/next-release/api-change-marketplaceagreement-18415.json delete mode 100644 .changes/next-release/api-change-quicksight-39689.json diff --git a/.changes/2.34.58.json b/.changes/2.34.58.json new file mode 100644 index 000000000000..2b9820dd9689 --- /dev/null +++ b/.changes/2.34.58.json @@ -0,0 +1,17 @@ +[ + { + "category": "``quicksight``", + "description": "This release adds public APIs for Amazon QuickSight Spaces, Agents, and Flows. Spaces APIs enable management of curated resource collections. Agents APIs provide lifecycle control over AI-powered agents that leverage Spaces. Flows APIs add CRUDL APIs for automated workflows.", + "type": "api-change" + }, + { + "category": "``cognito-idp``", + "description": "Add support for multi-region replication, enabling synchronization of user data and configurations to a secondary user pool in a standby Region. Add support for customer managed keys (CMK) in AWS KMS for encrypting user pool data at rest.", + "type": "api-change" + }, + { + "category": "``marketplace-agreement``", + "description": "Adding Entitlements in SearchAgreements Response", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-cognitoidp-73033.json b/.changes/next-release/api-change-cognitoidp-73033.json deleted file mode 100644 index 8b0a22fea0b6..000000000000 --- a/.changes/next-release/api-change-cognitoidp-73033.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cognito-idp``", - "description": "Add support for multi-region replication, enabling synchronization of user data and configurations to a secondary user pool in a standby Region. Add support for customer managed keys (CMK) in AWS KMS for encrypting user pool data at rest." -} diff --git a/.changes/next-release/api-change-marketplaceagreement-18415.json b/.changes/next-release/api-change-marketplaceagreement-18415.json deleted file mode 100644 index 6b01d989f1e8..000000000000 --- a/.changes/next-release/api-change-marketplaceagreement-18415.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``marketplace-agreement``", - "description": "Adding Entitlements in SearchAgreements Response" -} diff --git a/.changes/next-release/api-change-quicksight-39689.json b/.changes/next-release/api-change-quicksight-39689.json deleted file mode 100644 index 6987405b1203..000000000000 --- a/.changes/next-release/api-change-quicksight-39689.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``quicksight``", - "description": "This release adds public APIs for Amazon QuickSight Spaces, Agents, and Flows. Spaces APIs enable management of curated resource collections. Agents APIs provide lifecycle control over AI-powered agents that leverage Spaces. Flows APIs add CRUDL APIs for automated workflows." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8b8f906401b5..98d3e18e17a5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,14 @@ CHANGELOG ========= +2.34.58 +======= + +* api-change:``quicksight``: This release adds public APIs for Amazon QuickSight Spaces, Agents, and Flows. Spaces APIs enable management of curated resource collections. Agents APIs provide lifecycle control over AI-powered agents that leverage Spaces. Flows APIs add CRUDL APIs for automated workflows. +* api-change:``cognito-idp``: Add support for multi-region replication, enabling synchronization of user data and configurations to a secondary user pool in a standby Region. Add support for customer managed keys (CMK) in AWS KMS for encrypting user pool data at rest. +* api-change:``marketplace-agreement``: Adding Entitlements in SearchAgreements Response + + 2.34.57 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 0779550aa060..a21a63cdf2e8 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.57' +__version__ = '2.34.58' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 45c0889bd538..ca064f703195 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.57. +# Generated by GNU Autoconf 2.71 for awscli 2.34.58. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.57' -PACKAGE_STRING='awscli 2.34.57' +PACKAGE_VERSION='2.34.58' +PACKAGE_STRING='awscli 2.34.58' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.57 +awscli configure 2.34.58 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.57, which was +It was created by awscli $as_me 2.34.58, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.57, which was +This file was extended by awscli $as_me 2.34.58, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.57 +awscli config.status 2.34.58 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index ce995ee528a1..de4ef55744e0 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.57]) +AC_INIT([awscli], [2.34.58]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index e00a6f40dd72..fee1bf68b746 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.57' +release = '2.34.58' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From ea33d87599fa3142978adaa71e244b494a607794 Mon Sep 17 00:00:00 2001 From: Jason <35640105+aemous@users.noreply.github.com> Date: Tue, 2 Jun 2026 10:50:50 -0400 Subject: [PATCH 53/73] [v2] Add granular metrics to benchmarking framework: plugin-load time, static imports time, client creation time. (#10292) --- awscli/botocore/session.py | 2 + awscli/clidriver.py | 4 +- awscli/plugin.py | 2 + scripts/performance/benchmark_utils.py | 98 ++++++++++++++++++++++---- scripts/performance/benchmarks.json | 63 ++++++++++++++--- scripts/performance/run-benchmarks | 3 + 6 files changed, 148 insertions(+), 24 deletions(-) diff --git a/awscli/botocore/session.py b/awscli/botocore/session.py index 5439c7f056bc..310f84de6e80 100644 --- a/awscli/botocore/session.py +++ b/awscli/botocore/session.py @@ -866,6 +866,7 @@ def create_client( :return: A botocore client instance """ + self.emit('before-create-client') default_client_config = self.get_default_client_config() # If a config is provided and a default config is set, then # use the config resulting from merging the two. @@ -960,6 +961,7 @@ def create_client( monitor = self._get_internal_component('monitor') if monitor is not None: monitor.register(client.meta.events) + self.emit('after-create-client') return client def _resolve_region_name(self, region_name, config): diff --git a/awscli/clidriver.py b/awscli/clidriver.py index 643331c50d46..206925cf6877 100644 --- a/awscli/clidriver.py +++ b/awscli/clidriver.py @@ -111,13 +111,13 @@ def main(): return AWSCLIEntryPoint().main(sys.argv[1:]) -def create_clidriver(args=None): +def create_clidriver(args=None, event_hooks=None): debug = None if args is not None: parser = FirstPassGlobalArgParser() args, _ = parser.parse_known_args(args) debug = args.debug - session = botocore.session.Session() + session = botocore.session.Session(event_hooks=event_hooks) _set_user_agent_for_session(session) load_plugins( session.full_config.get('plugins', {}), diff --git a/awscli/plugin.py b/awscli/plugin.py index 46a26a4fc1a7..7f9dc2472037 100644 --- a/awscli/plugin.py +++ b/awscli/plugin.py @@ -45,7 +45,9 @@ def load_plugins(plugin_mapping, event_hooks=None, include_builtins=True): if event_hooks is None: event_hooks = HierarchicalEmitter() if include_builtins: + event_hooks.emit('before-load-plugins') _load_plugins(BUILTIN_PLUGINS, event_hooks) + event_hooks.emit('after-load-plugins') plugin_path = plugin_mapping.pop(CLI_LEGACY_PLUGIN_PATH, None) if plugin_path is not None: _add_plugin_path_to_sys_path(plugin_path) diff --git a/scripts/performance/benchmark_utils.py b/scripts/performance/benchmark_utils.py index 06ec0218c416..3749f6e7e3fc 100644 --- a/scripts/performance/benchmark_utils.py +++ b/scripts/performance/benchmark_utils.py @@ -7,7 +7,6 @@ import psutil -from awscli.clidriver import AWSCLIEntryPoint, create_clidriver from scripts.performance import BaseBenchmarkSuite from scripts.performance.simple_stubbed_tests import ( JSONStubbedBenchmarkSuite, @@ -169,6 +168,21 @@ def _finalize_processed_data_for_file(self, samples, worker_results): worker_results['first_client_invocation_time'] - worker_results['start_time'], ), + 'plugins.load.time': Metric( + 'Total time spent loading all built-in plugins.', + 'Seconds', + worker_results['load_plugins_time'], + ), + 'imports.static.time': Metric( + 'Total time spent on static Python imports.', + 'Seconds', + worker_results['static_imports_time'], + ), + 'client.creation.time': Metric( + 'Total time spent creating a botocore client.', + 'Seconds', + worker_results['create-client-time'], + ), } # reset data state self._samples.clear() @@ -264,21 +278,72 @@ def _run_command_with_metric_hooks(self, cmd, out_file): Runs a CLI command and logs CLI-specific metrics to a file. """ first_client_invocation_time = None + create_client_start_time = None + create_client_end_time = None + plugin_import_start_time = None + plugin_import_end_time = None start_time = time.time() - driver = create_clidriver() - event_emitter = driver.session.get_component('event_emitter') + + before_imports = start_time + # We import from awscli lazily to ensure import time is measured in + # total runtime. + from awscli.botocore.hooks import HierarchicalEmitter + from awscli.clidriver import AWSCLIEntryPoint, create_clidriver + after_imports = time.time() def _log_invocation_time(params, request_signer, model, **kwargs): nonlocal first_client_invocation_time if first_client_invocation_time is None: first_client_invocation_time = time.time() - event_emitter.register_last( + def _log_create_client_start(**kwargs): + nonlocal create_client_start_time + if create_client_start_time is None: + create_client_start_time = time.time() + + def _log_create_client_end(**kwargs): + nonlocal create_client_end_time + if create_client_end_time is None: + create_client_end_time = time.time() + + def _log_import_plugins_start(**kwargs): + nonlocal plugin_import_start_time + if plugin_import_start_time is None: + plugin_import_start_time = time.time() + + def _log_import_plugins_end(**kwargs): + nonlocal plugin_import_end_time + if plugin_import_end_time is None: + plugin_import_end_time = time.time() + + event_hooks = HierarchicalEmitter() + event_hooks.register_last( 'before-call', _log_invocation_time, 'benchmarks.log-invocation-time', ) + event_hooks.register_last( + 'before-create-client', + _log_create_client_start, + 'benchmarks.log-before-create-client', + ) + event_hooks.register_last( + 'after-create-client', + _log_create_client_end, + 'benchmarks.log-after-create-client', + ) + event_hooks.register_last( + 'before-load-plugins', + _log_import_plugins_start, + 'benchmarks.log-before-load-plugins', + ) + event_hooks.register_last( + 'after-load-plugins', + _log_import_plugins_end, + 'benchmarks.log-after-load-plugins', + ) + driver = create_clidriver(event_hooks=event_hooks) rc = AWSCLIEntryPoint(driver).main(cmd) end_time = time.time() @@ -291,6 +356,15 @@ def _log_invocation_time(params, request_signer, model, **kwargs): 'start_time': start_time, 'end_time': end_time, 'first_client_invocation_time': first_client_invocation_time, + 'load_plugins_time': ( + plugin_import_end_time - plugin_import_start_time + ), + 'static_imports_time': ( + after_imports - before_imports + ), + 'create-client-time': ( + create_client_end_time - create_client_start_time + ) } ) ) @@ -333,20 +407,16 @@ def _run_isolated_benchmark( os.dup2(err.fileno(), sys.stderr.fileno()) else: with open( - os.path.abspath( - os.path.join( - args.debug_dir, - f'{benchmark["name"]}-{iteration}.txt', - ) + os.path.join( + args.debug_dir, + f'{benchmark["name"]}-{iteration}.txt', ), 'w', ) as f: with open( - os.path.abspath( - os.path.join( - args.debug_dir, - f'{benchmark["name"]}-{iteration}-err.txt', - ) + os.path.join( + args.debug_dir, + f'{benchmark["name"]}-{iteration}-err.txt', ), 'w', ) as f_err: diff --git a/scripts/performance/benchmarks.json b/scripts/performance/benchmarks.json index 4b8d7fbc2102..c22e779c7f0b 100644 --- a/scripts/performance/benchmarks.json +++ b/scripts/performance/benchmarks.json @@ -13,7 +13,7 @@ "size": 3.2e7 } ], - "config": "[default]\ns3 =\n preferred_transfer_client = classic" + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc\ns3 =\n preferred_transfer_client = classic" }, "responses": [ { @@ -41,7 +41,8 @@ "name": "test_file", "size": 3.2e7 } - ] + ], + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc\ns3 =\n preferred_transfer_client = classic" }, "responses": [ { @@ -66,7 +67,7 @@ {"name": "S3TransferClient", "value": "Classic"} ], "environment": { - "config": "[default]\ns3 =\n preferred_transfer_client = classic" + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc\ns3 =\n preferred_transfer_client = classic" }, "responses": [ { @@ -95,7 +96,7 @@ "file_size": 4e3 } ], - "config": "[default]\ns3 =\n preferred_transfer_client = classic" + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc\ns3 =\n preferred_transfer_client = classic" }, "responses": [ { @@ -116,7 +117,8 @@ "name": "key.json", "content": "{\n \"Group\": {\"S\": \"Group1\"},\n \"Item\": {\"S\": \"Item1\"} }" } - ] + ], + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" }, "responses": [ { @@ -133,7 +135,8 @@ "name": "request-items.json", "content": "{\"MyTable\": { \"Keys\": [ {\"Group\": {\"S\": \"Group1\"}, \"Item\": {\"S\": \"Item1\"}}, { \"Group\": {\"S\": \"Group1\"}, \"Item\": {\"S\": \"Item1\"} }, { \"Group\": {\"S\": \"Group1\"}, \"Item\": {\"S\": \"Item1\"} }],\"ProjectionExpression\":\"Genre\"}}" } - ] + ], + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" }, "responses": [ { @@ -150,7 +153,8 @@ "name": "item.json", "content": "{\"Group\": {\"S\": \"Group1\"},\"Item\": {\"S\": \"Item1\"},\"Category\": {\"S\": \"Category1\"}}" } - ] + ], + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" }, "responses": [ { @@ -170,7 +174,8 @@ "name": "items.json", "content": "[{\"Category\": \"Cat1\",\"Item\": \"Item1\",\"Group\": \"Group1\"}, {\"Category\": \"Cat1\",\"Item\": \"Item2\",\"Group\": \"Group2\"}, {\"Category\": \"Cat1\",\"Item\": \"Item3\",\"Group\": \"Group2\"}, {\"Category\": \"Cat2\",\"Item\": \"Item4\",\"Group\": \"Group3\"}, {\"Category\": \"Cat2\",\"Item\": \"Item5\",\"Group\": \"Group4\"}, {\"Category\": \"Cat3\",\"Item\": \"Item6\",\"Group\": \"Group5\"}, {\"Category\": \"Cat3\",\"Item\": \"Item7\",\"Group\": \"Group6\"}, {\"Category\": \"Cat3\",\"Item\": \"Item8\",\"Group\": \"Group6\"}, {\"Category\": \"Cat4\",\"Item\": \"Item9\",\"Group\": \"Group7\"}, {\"Category\": \"Cat4\",\"Item\": \"Item10\",\"Group\": \"Group4\"}]" } - ] + ], + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" }, "responses": [ { @@ -181,6 +186,9 @@ { "name": "sts.assumerole", "command": ["sts", "assume-role", "--role-arn", "arn:aws:iam::123456789012:role/role123", "--role-session-name", "role-session123"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " arn:aws:sts::123456789012:assumed-role/role123/role-session123 id1234:role-session123 accesskeytoken1232016-03-15T00:05:07Zacesskeyid123 " @@ -190,6 +198,9 @@ { "name": "sts.getcalleridentity", "command": ["sts", "get-caller-identity"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " arn:aws:iam::123456789012:user/user123 userid123 123456789012 " @@ -199,6 +210,9 @@ { "name": "sts.assumerolewithwebidentity", "command": ["sts", "assume-role-with-web-identity", "--duration-seconds", "3600", "--role-session-name", "session-name", "--provider-id", "www.amazon.com", "--policy-arns", "arn=arn:aws:iam::123456789012:policy/q=webidentitypolicy1", "arn=arn:aws:iam::123456789012:policy/webidentitypolicy2", "--role-arn", "arn:aws:iam::123456789012:role/FederatedRole1", "--web-identity-token", "token-123"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " amzn1.account.tokenvalue client.12345.6789@email.address arn:aws:sts::123456789012:assumed-role/FederatedRole1/session-name roleid123:session-name session-token123 secret-access-key 2014-10-24T23:00:23Z access-key-id123 www.amazon.com" @@ -208,6 +222,9 @@ { "name": "ec2.describetags", "command": ["ec2", "describe-tags", "--filters", "Name=resource-id,Values=i-1234567890"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " EXAMPLE i-1234567890 instance webserver i-1234567890 instance stack Production i-1234567890 instance database_server i-1234567890 instance stack Test " @@ -217,6 +234,9 @@ { "name": "ec2.describeinstances", "command": ["ec2", "describe-instances", "--instance-ids", "i-1234567890abcdef0"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " 8f7724cf-496f-496e-8fe3-example r-1234567890abcdef0 123456789012 i-1234567890abcdef0 ami-bff32ccc 16 running ip-192-168-1-88.eu-west-1.compute.internal ec2-54-194-252-215.eu-west-1.compute.amazonaws.com my_keypair 0 t2.micro 2018-05-08T16:46:19.000Z eu-west-1c default disabled subnet-56f5f633 vpc-11112222 192.168.1.88 54.194.252.215 true sg-e4076980 SecurityGroup1 x86_64 ebs /dev/xvda /dev/xvda vol-1234567890abcdef0 attached 2015-12-22T10:44:09.000Z true hvm xMcwG14507example Name Server_1 xen eni-551ba033 subnet-56f5f633 vpc-11112222 Primary network interface 123456789012 in-use 02:dd:2c:5e:01:69 192.168.1.88 ip-192-168-1-88.eu-west-1.compute.internal true sg-e4076980 SecurityGroup1 eni-attach-39697adc 0 attached 2018-05-08T16:46:19.000Z true 54.194.252.215 ec2-54-194-252-215.eu-west-1.compute.amazonaws.com amazon 192.168.1.88 ip-192-168-1-88.eu-west-1.compute.internal true 54.194.252.215 ec2-54-194-252-215.eu-west-1.compute.amazonaws.com amazon 2001:db8:1234:1a2b::123 arn:aws:iam::123456789012:instance-profile/AdminRole ABCAJEDNCAA64SSD123AB false 1 1 " @@ -226,6 +246,9 @@ { "name": "ec2.describevolumesmodifications", "command": ["ec2", "describe-volumes-modifications", "--volume-ids", "vol-0123456789EXAMPLE"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " 59dbff89-35bd-4eac-99ed-be587EXAMPLE 10000 300 optimizing 200 io1 vol-0123456789EXAMPLE 40 2017-01-19T23:58:04.922Z 100 gp2 false true " @@ -235,6 +258,9 @@ { "name": "ecs.describecontainerinstances", "command": ["ecs", "describe-container-instances", "--cluster", "update", "--container-instances", "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": "{ \"containerInstances\": [ { \"agentConnected\": true, \"attributes\": [ { \"name\": \"com.amazonaws.ecs.capability.privileged-container\" }, { \"name\": \"com.amazonaws.ecs.capability.docker-remote-api.1.17\" }, { \"name\": \"com.amazonaws.ecs.capability.docker-remote-api.1.18\" }, { \"name\": \"com.amazonaws.ecs.capability.docker-remote-api.1.19\" }, { \"name\": \"com.amazonaws.ecs.capability.docker-remote-api.1.20\" }, { \"name\": \"com.amazonaws.ecs.capability.docker-remote-api.1.21\" }, { \"name\": \"com.amazonaws.ecs.capability.logging-driver.json-file\" }, { \"name\": \"com.amazonaws.ecs.capability.logging-driver.syslog\" }, { \"name\": \"com.amazonaws.ecs.capability.logging-driver.awslogs\" }, { \"name\": \"com.amazonaws.ecs.capability.ecr-auth\" } ], \"containerInstanceArn\": \"arn:aws:ecs:us-west-2:012345678910:container-instance/default/f9cc75bb-0c94-46b9-bf6d-49d320bc1551\", \"ec2InstanceId\": \"i-042f39dc\", \"pendingTasksCount\": 0, \"registeredResources\": [ { \"doubleValue\": 0, \"integerValue\": 1024, \"longValue\": 0, \"name\": \"CPU\", \"type\": \"INTEGER\" }, { \"doubleValue\": 0, \"integerValue\": 995, \"longValue\": 0, \"name\": \"MEMORY\", \"type\": \"INTEGER\" }, { \"doubleValue\": 0, \"integerValue\": 0, \"longValue\": 0, \"name\": \"PORTS\", \"stringSetValue\": [ \"22\", \"2376\", \"2375\", \"51678\" ], \"type\": \"STRINGSET\" }, { \"doubleValue\": 0, \"integerValue\": 0, \"longValue\": 0, \"name\": \"PORTS_UDP\", \"stringSetValue\": [], \"type\": \"STRINGSET\" } ], \"remainingResources\": [ { \"doubleValue\": 0, \"integerValue\": 1024, \"longValue\": 0, \"name\": \"CPU\", \"type\": \"INTEGER\" }, { \"doubleValue\": 0, \"integerValue\": 995, \"longValue\": 0, \"name\": \"MEMORY\", \"type\": \"INTEGER\" }, { \"doubleValue\": 0, \"integerValue\": 0, \"longValue\": 0, \"name\": \"PORTS\", \"stringSetValue\": [ \"22\", \"2376\", \"2375\", \"51678\" ], \"type\": \"STRINGSET\" }, { \"doubleValue\": 0, \"integerValue\": 0, \"longValue\": 0, \"name\": \"PORTS_UDP\", \"stringSetValue\": [], \"type\": \"STRINGSET\" } ], \"runningTasksCount\": 0, \"status\": \"ACTIVE\", \"version\": 850, \"versionInfo\": { \"agentHash\": \"0931217\", \"agentVersion\": \"1.9.0\", \"dockerVersion\": \"DockerVersion: 1.9.1\" } } ], \"failures\": [] }" @@ -244,6 +270,9 @@ { "name": "ecs.describetasks", "command": ["ecs", "describe-tasks", "--cluster", "default", "--tasks", "1dc5c17a-422b-4dc4-b493-371970c6c4d6"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": "{ \"failures\": [], \"tasks\": [ { \"taskArn\": \"arn:aws:ecs:us-east-1:012345678910:task/1dc5c17a-422b-4dc4-b493-371970c6c4d6\", \"overrides\": { \"containerOverrides\": [ { \"name\": \"simple-app\" }, { \"name\": \"busybox\" } ] }, \"lastStatus\": \"RUNNING\", \"containerInstanceArn\": \"arn:aws:ecs:us-east-1:012345678910:container-instance/default/5991d8da-1d59-49d2-a31f-4230f9e73140\", \"createdAt\": 1476822811.295, \"version\": 0, \"clusterArn\": \"arn:aws:ecs:us-east-1:012345678910:cluster/default\", \"startedAt\": 1476822833.998, \"desiredStatus\": \"RUNNING\", \"taskDefinitionArn\": \"arn:aws:ecs:us-east-1:012345678910:task-definition/console-sample-app-dynamic-ports:1\", \"startedBy\": \"ecs-svc/9223370560032507596\", \"containers\": [ { \"containerArn\": \"arn:aws:ecs:us-east-1:012345678910:container/4df26bb4-f057-467b-a079-961675296e64\", \"taskArn\": \"arn:aws:ecs:us-east-1:012345678910:task/default/1dc5c17a-422b-4dc4-b493-371970c6c4d6\", \"lastStatus\": \"RUNNING\", \"name\": \"simple-app\", \"networkBindings\": [ { \"protocol\": \"tcp\", \"bindIP\": \"0.0.0.0\", \"containerPort\": 80, \"hostPort\": 32774 } ], \"runtimeId\": \"runtime-123\" }, { \"containerArn\": \"arn:aws:ecs:us-east-1:012345678910:container/e09064f7-7361-4c87-8ab9-8d073bbdbcb9\", \"taskArn\": \"arn:aws:ecs:us-east-1:012345678910:task/default/1dc5c17a-422b-4dc4-b493-371970c6c4d6\", \"lastStatus\": \"RUNNING\", \"name\": \"busybox\", \"networkBindings\": [] } ] } ] }" @@ -253,6 +282,9 @@ { "name": "ecs.listcontainerinstances", "command": ["ecs", "list-container-instances", "--cluster", "example"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": "{ \"containerInstanceArns\": [ \"arn:aws:ecs:us-east-1:012345678910:container-instance/example/1eb22c8ab33149b397dc769f68cc1319\", \"arn:aws:ecs:us-east-1:012345678910:container-instance/example/5cf7e311a2b74d3882650353cf3b2214\" ] }" @@ -262,6 +294,9 @@ { "name": "logs.putlogevents", "command": ["logs", "put-log-events", "--log-group-name", "my-logs", "--log-stream-name", "20150601", "--log-events", "[\n {\n \"timestamp\": 1433190184356,\n \"message\": \"Example Event 1\"\n },\n {\n \"timestamp\": 1433190184358,\n \"message\": \"Example Event 2\"\n },\n {\n \"timestamp\": 1433190184360,\n \"message\": \"Example Event 3\"\n }\n]"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": "{ \"nextSequenceToken\": \"token123\"}" @@ -271,6 +306,9 @@ { "name": "logs.createloggroup", "command": ["logs", "create-log-group", "--log-group-name", "my-logs"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": "" @@ -280,6 +318,9 @@ { "name": "cloudwatch.putmetricdata", "command": ["cloudwatch", "put-metric-data", "--namespace", "Usage Metrics", "--metric-data", "[\n {\n \"MetricName\": \"New Posts\",\n \"Timestamp\": \"Wednesday, June 12, 2013 8:28:20 PM\",\n \"Value\": 0.50,\n \"Unit\": \"Count\"\n }\n]\n"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": "" @@ -289,6 +330,9 @@ { "name": "cloudwatch.getmetricstatistics", "command": ["cloudwatch", "get-metric-statistics", "--metric-name", "CPUUtilization", "--start-time", "2014-04-08T23:18:00Z", "--end-time", "2014-04-09T23:18:00Z", "--period", "3600", "--namespace", "AWS/EC2", "--statistics", "Maximum", "--dimensions", "Name=InstanceId,Value=i-abcdef"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " \n 2014-04-09T11:18:00Z\n 44.79\n Percent\n \n \n 2014-04-09T20:18:00Z\n 47.92\n Percent\n \n \n 2014-04-09T19:18:00Z\n 50.85\n Percent\n \n \n 2014-04-09T09:18:00Z\n 47.92\n Percent\n \n \n 2014-04-09T03:18:00Z\n 76.84\n Percent\n \n \n 2014-04-09T21:18:00Z\n 48.96\n Percent\n \n \n 2014-04-09T14:18:00Z\n 47.92\n Percent\n \n \n 2014-04-09T08:18:00Z\n 47.92\n Percent\n " @@ -298,6 +342,9 @@ { "name": "cloudwatch.getmetricdata", "command": ["cloudwatch", "get-metric-data", "--metric-data-queries", "[ { \"Id\": \"m3\", \"Expression\": \"(m1+m2)/300\", \"Label\": \"Avg Total IOPS\" }, { \"Id\": \"m1\", \"MetricStat\": { \"Metric\": { \"Namespace\": \"AWS/EC2\", \"MetricName\": \"EBSReadOps\", \"Dimensions\": [ { \"Name\": \"InstanceId\", \"Value\": \"i-abcdef\" } ] }, \"Period\": 300, \"Stat\": \"Sum\", \"Unit\": \"Count\" }, \"ReturnData\": false }, { \"Id\": \"m2\", \"MetricStat\": { \"Metric\": { \"Namespace\": \"AWS/EC2\", \"MetricName\": \"EBSWriteOps\", \"Dimensions\": [ { \"Name\": \"InstanceId\", \"Value\": \"i-abcdef\" } ] }, \"Period\": 300, \"Stat\": \"Sum\", \"Unit\": \"Count\" }, \"ReturnData\": false } ]", "--start-time", "2024-09-29T22:10:00Z", "--end-time", "2024-09-29T22:15:00Z"], + "environment": { + "config": "[default]\nAWS_ACCESS_KEY_ID=abc\nAWS_SECRET_ACCESS_KEY=abc\nAWS_SESSION_TOKEN=abc" + }, "responses": [ { "body": " m3 2024-09-29T22:10:00+00:00 96.85 Complete " diff --git a/scripts/performance/run-benchmarks b/scripts/performance/run-benchmarks index db42067e1a7a..c7ab4ad7bce9 100755 --- a/scripts/performance/run-benchmarks +++ b/scripts/performance/run-benchmarks @@ -89,6 +89,9 @@ def main(): "--chunk-id must be an integer between 0 (inclusive) and num-chunks (exclusive)." ) + if parsed_args.debug_dir is not None: + parsed_args.debug_dir = os.path.abspath(parsed_args.debug_dir) + test_suites = harness.get_test_suites(parsed_args) test_cases = [] for suite in test_suites: From 159c43e29654d7141c7868e6339d0ce3c7c5624a Mon Sep 17 00:00:00 2001 From: Leonard Lausen Date: Tue, 2 Jun 2026 07:53:06 -0700 Subject: [PATCH 54/73] Fix fall back to IPv6 for ec2-instance-connect ssh --connection-type eice (#10358) * Fall back to IPv6 for ec2-instance-connect ssh --connection-type eice When --connection-type eice is set, resolve the destination address as private IPv4 with IPv6 as a fallback, instead of unconditionally using private IPv4. Without this, instances in IPv6-only subnets fail with "Unable to find any IP address on the instance to connect to." even though the EICE itself supports IPv6 destinations. * Fall back to IPv6 for ec2-instance-connect open-tunnel When --instance-id is given without --private-ip-address, resolve the destination as private IPv4 with IPv6 as a fallback, instead of KeyError'ing on PrivateIpAddress for instances in IPv6-only subnets. The EICE accepts either address family. Also raise a clear ParamValidationError when the instance has no IP address at all (matching the ssh subcommand's behavior). --- .../bugfix-ec2-instance-connect-ssh-IPv6.json | 5 + .../ec2instanceconnect/opentunnel.py | 15 ++- .../customizations/ec2instanceconnect/ssh.py | 6 +- .../ec2instanceconnect/test_opentunnel.py | 103 ++++++++++++++++++ .../functional/ec2instanceconnect/test_ssh.py | 49 +++++++++ 5 files changed, 173 insertions(+), 5 deletions(-) create mode 100644 .changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json diff --git a/.changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json b/.changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json new file mode 100644 index 000000000000..2398806295ee --- /dev/null +++ b/.changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json @@ -0,0 +1,5 @@ +{ + "type": "bugfix", + "category": "``ec2-instance-connect``", + "description": "Fall back to the instance's IPv6 address in ``ec2-instance-connect ssh --connection-type eice`` and ``ec2-instance-connect open-tunnel`` when the instance has no private IPv4 address (e.g. an IPv6-only subnet)." +} diff --git a/awscli/customizations/ec2instanceconnect/opentunnel.py b/awscli/customizations/ec2instanceconnect/opentunnel.py index 2d301b77b3a6..0de7849e58b9 100644 --- a/awscli/customizations/ec2instanceconnect/opentunnel.py +++ b/awscli/customizations/ec2instanceconnect/opentunnel.py @@ -30,7 +30,7 @@ class OpenTunnelCommand(BasicCommand): NAME = "open-tunnel" DESCRIPTION = ( - "Opens a websocket tunnel to the specified EC2 Instance or private ip." + "Opens a websocket tunnel to the specified EC2 Instance or IP address." ) ARG_TABLE = [ @@ -55,7 +55,7 @@ class OpenTunnelCommand(BasicCommand): { "name": "private-ip-address", "help_text": ( - "Specify the private ip address to open a tunnel for. " + "Specify the private IPv4 (or IPv6) address to open a tunnel for. " "If this is specified, you must specify instance-connect-endpoint-id." ), "required": False, @@ -114,7 +114,16 @@ def _run_main(self, parsed_args, parsed_globals): )["Reservations"][0]["Instances"][0] instance_vpc_id = instance_metadata["VpcId"] instance_subnet_id = instance_metadata["SubnetId"] - private_ip_address = instance_metadata["PrivateIpAddress"] + # Fall back to IPv6 when the instance has no private IPv4 + # (e.g. an IPv6-only subnet). The EICE accepts either. + private_ip_address = instance_metadata.get( + "PrivateIpAddress" + ) or instance_metadata.get("Ipv6Address") + if not private_ip_address: + raise ParamValidationError( + "Unable to find any IP address on the instance to " + "connect to." + ) instance_connect_endpoint_id = parsed_args.instance_connect_endpoint_id instance_connect_endpoint_dns_name = ( diff --git a/awscli/customizations/ec2instanceconnect/ssh.py b/awscli/customizations/ec2instanceconnect/ssh.py index 09e3363e022b..46c195325074 100644 --- a/awscli/customizations/ec2instanceconnect/ssh.py +++ b/awscli/customizations/ec2instanceconnect/ssh.py @@ -86,7 +86,9 @@ class SshCommand(BasicCommand): '
  • Private IPv4
  • ' '' '' - '
  • eice: SSH using EC2 Instance Connect Endpoint. The CLI always uses the private IPv4 address.
  • ' + '
  • eice: SSH using EC2 Instance Connect Endpoint. ' + 'The CLI tries to connect using the private IPv4 address, ' + 'falling back to IPv6 if the instance has no private IPv4.
  • ' '
  • auto: The CLI automatically determines the connection type (direct or eice) ' 'to use based on the instance info. Currently the CLI tries to connect using the IP addresses ' 'in the following order and with the corresponding connection type:' @@ -171,7 +173,7 @@ def _run_main(self, parsed_args, parsed_globals): ip_address_to_connect = parsed_args.instance_ip elif parsed_args.connection_type == 'eice' or parsed_args.eice_options: use_open_tunnel = True - ip_address_to_connect = private_ip_address + ip_address_to_connect = private_ip_address or ipv6_address elif parsed_args.connection_type == 'direct': use_open_tunnel = False ip_address_to_connect = ( diff --git a/tests/functional/ec2instanceconnect/test_opentunnel.py b/tests/functional/ec2instanceconnect/test_opentunnel.py index 744aea670273..e1742665e97a 100644 --- a/tests/functional/ec2instanceconnect/test_opentunnel.py +++ b/tests/functional/ec2instanceconnect/test_opentunnel.py @@ -278,6 +278,45 @@ def describe_instance_response(): """ +@pytest.fixture +def describe_ipv6_only_instance_response(): + return """ + + + + + + i-123 + subnet-123 + vpc-123 + 2600:1f10:4f8e:db01:73f5:6b9d:c0da:1c27 + + + + + + """ + + +@pytest.fixture +def describe_no_ip_instance_response(): + return """ + + + + + + i-123 + subnet-123 + vpc-123 + + + + + + """ + + @pytest.fixture def request_params_for_describe_instance(): return {'InstanceIds': ['i-123']} @@ -816,3 +855,67 @@ def test_command_fails_when_empty_fips_endpoint_available_to_connect( assert 253 == result.rc assert "Unable to find FIPS Endpoint" in result.stderr + + def test_falls_back_to_ipv6_when_no_private_ipv4( + self, + cli_runner, + mock_crt_websocket, + connect_patch, + io_patch, + describe_ipv6_only_instance_response, + describe_eice_response, + dns_name, + datetime_utcnow_patch, + ): + cli_runner.env["AWS_USE_FIPS_ENDPOINT"] = "false" + cmdline = [ + "ec2-instance-connect", + "open-tunnel", + "--instance-id", + "i-123", + "--max-tunnel-duration", + "1", + ] + cli_runner.add_response( + HTTPResponse(body=describe_ipv6_only_instance_response) + ) + cli_runner.add_response(HTTPResponse(body=describe_eice_response)) + + test_server_input = b"Test Server Output" + mock_crt_websocket.add_output_from_server(test_server_input) + mock_crt_websocket.add_shutdown_from_server() + + with connect_patch, io_patch: + result = cli_runner.run(cmdline) + + assert 0 == result.rc + assert_url(dns_name, mock_crt_websocket.url) + parsed_qs = urllib.parse.parse_qs( + urllib.parse.urlparse(mock_crt_websocket.url).query + ) + assert parsed_qs["privateIpAddress"] == [ + "2600:1f10:4f8e:db01:73f5:6b9d:c0da:1c27" + ] + + def test_command_fails_when_instance_has_no_ip_address( + self, + cli_runner, + describe_no_ip_instance_response, + ): + cmdline = [ + "ec2-instance-connect", + "open-tunnel", + "--instance-id", + "i-123", + ] + cli_runner.add_response( + HTTPResponse(body=describe_no_ip_instance_response) + ) + + result = cli_runner.run(cmdline) + + assert 252 == result.rc + assert ( + "Unable to find any IP address on the instance to connect to." + in result.stderr + ) diff --git a/tests/functional/ec2instanceconnect/test_ssh.py b/tests/functional/ec2instanceconnect/test_ssh.py index f65109d76e57..63813d75afcf 100644 --- a/tests/functional/ec2instanceconnect/test_ssh.py +++ b/tests/functional/ec2instanceconnect/test_ssh.py @@ -128,6 +128,25 @@ def describe_ipv6_instance_response(): return get_describe_ipv6_instance_response() +def get_describe_ipv6_only_instance_response(): + return """ + + + + + + i-123 + subnet-123 + vpc-123 + 2600:1f10:4f8e:db01:73f5:6b9d:c0da:1c27 + + + + + + """ + + @pytest.fixture def describe_no_ip_instance_response(): return """ @@ -525,6 +544,36 @@ class TestSSHCommand: ], id='Open-Tunnel: select private IP when connection type eice', ), + pytest.param( + get_describe_ipv6_only_instance_response(), + get_describe_eice_response(), + get_request_params_for_describe_eice(), + [ + "ec2-instance-connect", + "ssh", + "--instance-id", + "i-123", + "--private-key-file", + "/tmp/ssh-file", + "--connection-type", + "eice", + ], + [ + 'ssh', + '-o', + 'ServerAliveInterval=5', + '-p', + '22', + '-i', + '/tmp/ssh-file', + '-o', + 'ProxyCommand=aws ec2-instance-connect open-tunnel --instance-id i-123 ' + '--private-ip-address 2600:1f10:4f8e:db01:73f5:6b9d:c0da:1c27 --remote-port 22 ' + '--instance-connect-endpoint-id eice-123 --instance-connect-endpoint-dns-name dns.com', + 'ec2-user@2600:1f10:4f8e:db01:73f5:6b9d:c0da:1c27', + ], + id='Open-Tunnel: fall back to IPv6 when connection type eice and no private IPv4', + ), pytest.param( get_describe_private_instance_response(), get_describe_eice_response(), From 30ecb8b53b8f64417ec7e7e6efb10205e01dec29 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 2 Jun 2026 18:19:22 +0000 Subject: [PATCH 55/73] Update to latest models --- .../next-release/api-change-ec2-10619.json | 5 + .../api-change-elasticache-8634.json | 5 + .../api-change-georoutes-26674.json | 5 + .../api-change-guardduty-5461.json | 5 + .../next-release/api-change-iot-38762.json | 5 + .../api-change-keyspacesstreams-63868.json | 5 + .../next-release/api-change-lambda-35433.json | 5 + .../api-change-sagemaker-80956.json | 5 + .../api-change-sagemakerjobruntime-82215.json | 5 + .../api-change-transcribe-14925.json | 5 + .../data/ec2/2016-11-15/service-2.json | 257 +- .../elasticache/2015-02-02/service-2.json | 59 +- .../2020-11-19/endpoint-rule-set-1.json | 446 +-- .../data/geo-routes/2020-11-19/service-2.json | 2992 ++++++++++++++--- .../data/guardduty/2017-11-28/service-2.json | 21 + .../data/iot/2015-05-28/service-2.json | 12 +- .../2024-09-09/service-2.json | 21 + .../data/lambda/2015-03-31/service-2.json | 38 +- .../sagemaker/2017-07-24/paginators-1.json | 12 + .../data/sagemaker/2017-07-24/service-2.json | 584 ++++ .../2026-02-01/endpoint-rule-set-1.json | 239 ++ .../2026-02-01/paginators-1.json | 3 + .../2026-02-01/service-2.json | 393 +++ .../data/transcribe/2017-10-26/service-2.json | 12 + .../geo-routes/endpoint-tests-1.json | 188 +- .../sagemakerjobruntime/endpoint-tests-1.json | 105 + 26 files changed, 4415 insertions(+), 1017 deletions(-) create mode 100644 .changes/next-release/api-change-ec2-10619.json create mode 100644 .changes/next-release/api-change-elasticache-8634.json create mode 100644 .changes/next-release/api-change-georoutes-26674.json create mode 100644 .changes/next-release/api-change-guardduty-5461.json create mode 100644 .changes/next-release/api-change-iot-38762.json create mode 100644 .changes/next-release/api-change-keyspacesstreams-63868.json create mode 100644 .changes/next-release/api-change-lambda-35433.json create mode 100644 .changes/next-release/api-change-sagemaker-80956.json create mode 100644 .changes/next-release/api-change-sagemakerjobruntime-82215.json create mode 100644 .changes/next-release/api-change-transcribe-14925.json create mode 100644 awscli/botocore/data/sagemakerjobruntime/2026-02-01/endpoint-rule-set-1.json create mode 100644 awscli/botocore/data/sagemakerjobruntime/2026-02-01/paginators-1.json create mode 100644 awscli/botocore/data/sagemakerjobruntime/2026-02-01/service-2.json create mode 100644 tests/functional/botocore/endpoint-rules/sagemakerjobruntime/endpoint-tests-1.json diff --git a/.changes/next-release/api-change-ec2-10619.json b/.changes/next-release/api-change-ec2-10619.json new file mode 100644 index 000000000000..0b880bcb28a9 --- /dev/null +++ b/.changes/next-release/api-change-ec2-10619.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ec2``", + "description": "Amazon EC2 now supports self-service cancellation of future-dated Capacity Reservations. A cancellation charge applies based on remaining commitment. Customers can generate a cancellation quote to review charges before confirming." +} diff --git a/.changes/next-release/api-change-elasticache-8634.json b/.changes/next-release/api-change-elasticache-8634.json new file mode 100644 index 000000000000..84df05f5a0fd --- /dev/null +++ b/.changes/next-release/api-change-elasticache-8634.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``elasticache``", + "description": "Amazon ElastiCache for Valkey now supports durability. This new capability is enabled through a Multi-AZ transactional log, enabling fast recovery and restart during failures." +} diff --git a/.changes/next-release/api-change-georoutes-26674.json b/.changes/next-release/api-change-georoutes-26674.json new file mode 100644 index 000000000000..3c9978912bf2 --- /dev/null +++ b/.changes/next-release/api-change-georoutes-26674.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``geo-routes``", + "description": "Added Transit and Intermodal travel modes to CalculateRoutes. Plan routes using public transit (bus, subway, train, ferry) or combine transit with driving, taxi, and rental car segments in a single multi-modal route." +} diff --git a/.changes/next-release/api-change-guardduty-5461.json b/.changes/next-release/api-change-guardduty-5461.json new file mode 100644 index 000000000000..a503f7563e13 --- /dev/null +++ b/.changes/next-release/api-change-guardduty-5461.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``guardduty``", + "description": "Amazon GuardDuty Runtime Monitoring now supports 3 new SensitiveFileModified finding types (Persistence, PrivilegeEscalation, DefenseEvasion) that detect when security-sensitive system files are modified on EC2 instances or containers, indicating potential compromise through file tampering." +} diff --git a/.changes/next-release/api-change-iot-38762.json b/.changes/next-release/api-change-iot-38762.json new file mode 100644 index 000000000000..dadfaa45f3d3 --- /dev/null +++ b/.changes/next-release/api-change-iot-38762.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``iot``", + "description": "Fleet indexing documentation update" +} diff --git a/.changes/next-release/api-change-keyspacesstreams-63868.json b/.changes/next-release/api-change-keyspacesstreams-63868.json new file mode 100644 index 000000000000..1097cdd768f5 --- /dev/null +++ b/.changes/next-release/api-change-keyspacesstreams-63868.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``keyspacesstreams``", + "description": "Added iterator description to the GetRecords API response for Amazon Keyspaces Change Data Capture (CDC) streams, enabling consumers to track their current position within the stream." +} diff --git a/.changes/next-release/api-change-lambda-35433.json b/.changes/next-release/api-change-lambda-35433.json new file mode 100644 index 000000000000..2302f3823724 --- /dev/null +++ b/.changes/next-release/api-change-lambda-35433.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``lambda``", + "description": "Adds configuration for tag propagation to Lambda-managed resources." +} diff --git a/.changes/next-release/api-change-sagemaker-80956.json b/.changes/next-release/api-change-sagemaker-80956.json new file mode 100644 index 000000000000..86e877537062 --- /dev/null +++ b/.changes/next-release/api-change-sagemaker-80956.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemaker``", + "description": "Amazon SageMaker Job is a new service to help you manage various workloads related to model fine tuning, evaluation etc. Two job categories are supported today, AgentRFT for multi-turn agentic reinforcement fine tuning, and AgentRFTEvaluation for evaluating base model or trained model from AgentRFT." +} diff --git a/.changes/next-release/api-change-sagemakerjobruntime-82215.json b/.changes/next-release/api-change-sagemakerjobruntime-82215.json new file mode 100644 index 000000000000..720943bf3777 --- /dev/null +++ b/.changes/next-release/api-change-sagemakerjobruntime-82215.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemakerjobruntime``", + "description": "Amazon SageMaker Job Runtime is a new service for managing trajectory data during multi-turn customization jobs. It provides APIs to send inference requests to models during job execution, mark rollouts as complete, and submit reward values for training trajectories." +} diff --git a/.changes/next-release/api-change-transcribe-14925.json b/.changes/next-release/api-change-transcribe-14925.json new file mode 100644 index 000000000000..11ffbd5658aa --- /dev/null +++ b/.changes/next-release/api-change-transcribe-14925.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``transcribe``", + "description": "Release new Language locales including am-ET, es-MX, fa-AF, ht-HT, jv-ID, km-KH, my-MM, sq-AL, ne-NP. The commit shows past locales that have already been release which include cy-gb, ga-ie, gd-gb." +} diff --git a/awscli/botocore/data/ec2/2016-11-15/service-2.json b/awscli/botocore/data/ec2/2016-11-15/service-2.json index cef90ee4b049..207aa1ab5a68 100644 --- a/awscli/botocore/data/ec2/2016-11-15/service-2.json +++ b/awscli/botocore/data/ec2/2016-11-15/service-2.json @@ -490,7 +490,7 @@ }, "input":{"shape":"CancelCapacityReservationRequest"}, "output":{"shape":"CancelCapacityReservationResult"}, - "documentation":"

    Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled.

    You can cancel a Capacity Reservation that is in the following states:

    • assessing

    • active and there is no commitment duration or the commitment duration has elapsed. You can't cancel a future-dated Capacity Reservation during the commitment duration.

    You can't modify or cancel a Capacity Block. For more information, see Capacity Blocks for ML.

    If a future-dated Capacity Reservation enters the delayed state, the commitment duration is waived, and you can cancel it as soon as it enters the active state.

    Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.

    " + "documentation":"

    Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled.

    You can cancel a Capacity Reservation that is in the following states:

    • assessing

    • scheduled

    • active and there is no commitment duration or the commitment duration has elapsed.

    • active during the commitment duration, if you provide a cancellation quote ID and accept the cancellation charges. Use CreateCapacityReservationCancellationQuote to generate a quote. The Capacity Reservation transitions to cancelling while charges are applied.

    You can't modify or cancel a Capacity Block. For more information, see Capacity Blocks for ML.

    If a future-dated Capacity Reservation enters the delayed state, the commitment duration is waived, and you can cancel it as soon as it enters the active state.

    Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.

    " }, "CancelCapacityReservationFleets":{ "name":"CancelCapacityReservationFleets", @@ -660,6 +660,16 @@ "output":{"shape":"CreateCapacityReservationBySplittingResult"}, "documentation":"

    Create a new Capacity Reservation by splitting the capacity of the source Capacity Reservation. The new Capacity Reservation will have the same attributes as the source Capacity Reservation except for tags. The source Capacity Reservation must be active and owned by your Amazon Web Services account.

    " }, + "CreateCapacityReservationCancellationQuote":{ + "name":"CreateCapacityReservationCancellationQuote", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCapacityReservationCancellationQuoteRequest"}, + "output":{"shape":"CreateCapacityReservationCancellationQuoteResult"}, + "documentation":"

    Generates a cancellation quote for a future-dated Capacity Reservation that is within its commitment duration. The quote includes the cancellation terms and a quote ID that you can pass to the CancelCapacityReservation action. Cancellation quotes are valid for 24 hours.

    " + }, "CreateCapacityReservationFleet":{ "name":"CreateCapacityReservationFleet", "http":{ @@ -2819,6 +2829,16 @@ "output":{"shape":"DescribeCapacityReservationBillingRequestsResult"}, "documentation":"

    Describes a request to assign the billing of the unused capacity of a Capacity Reservation. For more information, see Billing assignment for shared Amazon EC2 Capacity Reservations.

    " }, + "DescribeCapacityReservationCancellationQuotes":{ + "name":"DescribeCapacityReservationCancellationQuotes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCapacityReservationCancellationQuotesRequest"}, + "output":{"shape":"DescribeCapacityReservationCancellationQuotesResult"}, + "documentation":"

    Describes one or more Capacity Reservation cancellation quotes. The results describe only the quotes that you have previously generated by using the CreateCapacityReservationCancellationQuote action.

    " + }, "DescribeCapacityReservationFleets":{ "name":"DescribeCapacityReservationFleets", "http":{ @@ -8851,7 +8871,8 @@ "type":"string", "enum":[ "used", - "future" + "future", + "cancelling" ] }, "AllowedImagesSettingsDisabledState":{ @@ -9224,6 +9245,10 @@ "disable" ] }, + "ApplyCancellationCharges":{ + "type":"string", + "enum":["commitment-wind-down"] + }, "ApplySecurityGroupsToClientVpnTargetNetworkRequest":{ "type":"structure", "required":[ @@ -11800,6 +11825,14 @@ "DryRun":{ "shape":"Boolean", "documentation":"

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

    " + }, + "ApplyCancellationCharges":{ + "shape":"ApplyCancellationCharges", + "documentation":"

    Specifies the cancellation charge type to apply when cancelling a future-dated Capacity Reservation during its commitment duration. Possible values include commitment-wind-down, which continues billing for the remaining commitment duration without delivering capacity.

    " + }, + "QuoteId":{ + "shape":"CapacityReservationCancellationQuoteId", + "documentation":"

    The ID of the cancellation quote to use for the cancellation. You can generate a cancellation quote by using the CreateCapacityReservationCancellationQuote action. The cancellation quote must be in an active state.

    " } } }, @@ -12099,6 +12132,44 @@ }, "documentation":"

    Contains the output of CancelSpotInstanceRequests.

    " }, + "CancellationTerms":{ + "type":"structure", + "members":{ + "CancellationType":{ + "shape":"ApplyCancellationCharges", + "documentation":"

    The type of cancellation charge. Possible values include commitment-wind-down.

    ", + "locationName":"cancellationType" + }, + "ReservationState":{ + "shape":"String", + "documentation":"

    The state that the Capacity Reservation will transition to after cancellation.

    ", + "locationName":"reservationState" + }, + "CommittedInstanceCount":{ + "shape":"BoxedInteger", + "documentation":"

    The number of instances under commitment after cancellation.

    ", + "locationName":"committedInstanceCount" + }, + "ChargeCommitmentDurationHours":{ + "shape":"BoxedLong", + "documentation":"

    The number of hours for which cancellation charges will apply.

    ", + "locationName":"chargeCommitmentDurationHours" + }, + "ChargeEndDate":{ + "shape":"MillisecondDateTime", + "documentation":"

    The date and time at which cancellation charges will stop.

    ", + "locationName":"chargeEndDate" + } + }, + "documentation":"

    Describes the cancellation terms for cancelling a future-dated Capacity Reservation during its commitment duration.

    " + }, + "CancellationTermsSet":{ + "type":"list", + "member":{ + "shape":"CancellationTerms", + "locationName":"item" + } + }, "CancelledSpotInstanceRequest":{ "type":"structure", "members":{ @@ -12907,7 +12978,7 @@ }, "State":{ "shape":"CapacityReservationState", - "documentation":"

    The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

    • active - The capacity is available for use.

    • expired - The Capacity Reservation expired automatically at the date and time specified in your reservation request. The reserved capacity is no longer available for your use.

    • cancelled - The Capacity Reservation was canceled. The reserved capacity is no longer available for your use.

    • pending - The Capacity Reservation request was successful but the capacity provisioning is still pending.

    • failed - The Capacity Reservation request has failed. A request can fail due to request parameters that are not valid, capacity constraints, or instance limit constraints. You can view a failed request for 60 minutes.

    • scheduled - (Future-dated Capacity Reservations) The future-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled for delivery on the requested start date.

    • payment-pending - (Capacity Blocks) The upfront payment has not been processed yet.

    • payment-failed - (Capacity Blocks) The upfront payment was not processed in the 12-hour time frame. Your Capacity Block was released.

    • assessing - (Future-dated Capacity Reservations) Amazon EC2 is assessing your request for a future-dated Capacity Reservation.

    • delayed - (Future-dated Capacity Reservations) Amazon EC2 encountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is unable to deliver the requested capacity by the requested start date and time.

    • unsupported - (Future-dated Capacity Reservations) Amazon EC2 can't support the future-dated Capacity Reservation request due to capacity constraints. You can view unsupported requests for 30 days. The Capacity Reservation will not be delivered.

    ", + "documentation":"

    The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

    • active - The capacity is available for use.

    • expired - The Capacity Reservation expired automatically at the date and time specified in your reservation request. The reserved capacity is no longer available for your use.

    • cancelled - The Capacity Reservation was canceled. The reserved capacity is no longer available for your use.

    • pending - The Capacity Reservation request was successful but the capacity provisioning is still pending.

    • failed - The Capacity Reservation request has failed. A request can fail due to request parameters that are not valid, capacity constraints, or instance limit constraints. You can view a failed request for 60 minutes.

    • scheduled - (Future-dated Capacity Reservations) The future-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled for delivery on the requested start date.

    • payment-pending - (Capacity Blocks) The upfront payment has not been processed yet.

    • payment-failed - (Capacity Blocks) The upfront payment was not processed in the 12-hour time frame. Your Capacity Block was released.

    • assessing - (Future-dated Capacity Reservations) Amazon EC2 is assessing your request for a future-dated Capacity Reservation.

    • delayed - (Future-dated Capacity Reservations) Amazon EC2 encountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is unable to deliver the requested capacity by the requested start date and time.

    • unsupported - (Future-dated Capacity Reservations) Amazon EC2 can't support the future-dated Capacity Reservation request due to capacity constraints. You can view unsupported requests for 30 days. The Capacity Reservation will not be delivered.

    • cancelling - (Future-dated Capacity Reservations) The Capacity Reservation is being cancelled. Capacity has been released but charges continue for the commitment wind-down period. The reservation transitions to cancelled when the wind-down completes.

    ", "locationName":"state" }, "StartDate":{ @@ -13062,6 +13133,75 @@ "expired" ] }, + "CapacityReservationCancellationQuote":{ + "type":"structure", + "members":{ + "CapacityReservationCancellationQuoteId":{ + "shape":"CapacityReservationCancellationQuoteId", + "documentation":"

    The ID of the cancellation quote.

    ", + "locationName":"capacityReservationCancellationQuoteId" + }, + "CapacityReservationId":{ + "shape":"CapacityReservationId", + "documentation":"

    The ID of the Capacity Reservation associated with the cancellation quote.

    ", + "locationName":"capacityReservationId" + }, + "CreateTime":{ + "shape":"MillisecondDateTime", + "documentation":"

    The date and time at which the cancellation quote was created.

    ", + "locationName":"createTime" + }, + "ExpirationTime":{ + "shape":"MillisecondDateTime", + "documentation":"

    The date and time at which the cancellation quote expires.

    ", + "locationName":"expirationTime" + }, + "QuoteState":{ + "shape":"CapacityReservationCancellationQuoteState", + "documentation":"

    The state of the cancellation quote. Possible values include pending, active, and expired.

    ", + "locationName":"quoteState" + }, + "CurrentConfiguration":{ + "shape":"CapacityReservationConfiguration", + "documentation":"

    The current configuration of the Capacity Reservation.

    ", + "locationName":"currentConfiguration" + }, + "CancellationTerms":{ + "shape":"CancellationTermsSet", + "documentation":"

    The cancellation terms associated with the quote, including the fee type and charge details.

    ", + "locationName":"cancellationTermSet" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    The tags assigned to the cancellation quote.

    ", + "locationName":"tagSet" + } + }, + "documentation":"

    Describes a Capacity Reservation cancellation quote, which provides the cancellation terms for cancelling a future-dated Capacity Reservation during its commitment duration.

    " + }, + "CapacityReservationCancellationQuoteId":{"type":"string"}, + "CapacityReservationCancellationQuoteIdSet":{ + "type":"list", + "member":{ + "shape":"CapacityReservationCancellationQuoteId", + "locationName":"item" + } + }, + "CapacityReservationCancellationQuoteResponseSet":{ + "type":"list", + "member":{ + "shape":"CapacityReservationCancellationQuote", + "locationName":"item" + } + }, + "CapacityReservationCancellationQuoteState":{ + "type":"string", + "enum":[ + "pending", + "active", + "expired" + ] + }, "CapacityReservationCommitmentDuration":{ "type":"long", "max":200000000, @@ -13083,6 +13223,22 @@ }, "documentation":"

    Information about your commitment for a future-dated Capacity Reservation.

    " }, + "CapacityReservationConfiguration":{ + "type":"structure", + "members":{ + "InstanceCount":{ + "shape":"Integer", + "documentation":"

    The number of instances in the Capacity Reservation.

    ", + "locationName":"instanceCount" + }, + "ReservationState":{ + "shape":"String", + "documentation":"

    The current state of the Capacity Reservation.

    ", + "locationName":"reservationState" + } + }, + "documentation":"

    Describes the configuration of a Capacity Reservation.

    " + }, "CapacityReservationDeliveryPreference":{ "type":"string", "enum":[ @@ -13373,6 +13529,7 @@ "assessing", "delayed", "unsupported", + "cancelling", "unavailable" ] }, @@ -14711,7 +14868,7 @@ "members":{ "TcpEstablishedTimeout":{ "shape":"Integer", - "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds.

    ", + "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all other instance types (including P6e-GB200). Recommended: Less than 432000 seconds.

    ", "locationName":"tcpEstablishedTimeout" }, "UdpStreamTimeout":{ @@ -14732,7 +14889,7 @@ "members":{ "TcpEstablishedTimeout":{ "shape":"Integer", - "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds.

    ", + "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all other instance types (including P6e-GB200). Recommended: Less than 432000 seconds.

    ", "locationName":"tcpEstablishedTimeout" }, "UdpTimeout":{ @@ -14753,7 +14910,7 @@ "members":{ "TcpEstablishedTimeout":{ "shape":"Integer", - "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds.

    " + "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all other instance types (including P6e-GB200). Recommended: Less than 432000 seconds.

    " }, "UdpStreamTimeout":{ "shape":"Integer", @@ -14771,7 +14928,7 @@ "members":{ "TcpEstablishedTimeout":{ "shape":"Integer", - "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds.

    ", + "documentation":"

    Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all other instance types (including P6e-GB200). Recommended: Less than 432000 seconds.

    ", "locationName":"tcpEstablishedTimeout" }, "UdpStreamTimeout":{ @@ -15330,6 +15487,40 @@ } } }, + "CreateCapacityReservationCancellationQuoteRequest":{ + "type":"structure", + "required":["CapacityReservationId"], + "members":{ + "CapacityReservationId":{ + "shape":"CapacityReservationId", + "documentation":"

    The ID of the Capacity Reservation.

    " + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

    ", + "idempotencyToken":true + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

    The tags to apply to the cancellation quote.

    ", + "locationName":"TagSpecification" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

    " + } + } + }, + "CreateCapacityReservationCancellationQuoteResult":{ + "type":"structure", + "members":{ + "CapacityReservationCancellationQuote":{ + "shape":"CapacityReservationCancellationQuote", + "documentation":"

    Information about the Capacity Reservation cancellation quote.

    ", + "locationName":"capacityReservationCancellationQuote" + } + } + }, "CreateCapacityReservationFleetRequest":{ "type":"structure", "required":[ @@ -24577,6 +24768,53 @@ } } }, + "DescribeCapacityReservationCancellationQuotesRequest":{ + "type":"structure", + "members":{ + "CapacityReservationCancellationQuoteIds":{ + "shape":"CapacityReservationCancellationQuoteIdSet", + "documentation":"

    The IDs of the cancellation quotes to describe.

    ", + "locationName":"CapacityReservationCancellationQuoteId" + }, + "MaxResults":{ + "shape":"DescribeCapacityReservationCancellationQuotesRequestMaxResults", + "documentation":"

    The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

    " + }, + "NextToken":{ + "shape":"String", + "documentation":"

    The token to use to retrieve the next page of results.

    " + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

    " + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

    One or more filters. Filter names and values are case-sensitive.

    ", + "locationName":"Filter" + } + } + }, + "DescribeCapacityReservationCancellationQuotesRequestMaxResults":{ + "type":"integer", + "max":1000, + "min":1 + }, + "DescribeCapacityReservationCancellationQuotesResult":{ + "type":"structure", + "members":{ + "CapacityReservationCancellationQuotes":{ + "shape":"CapacityReservationCancellationQuoteResponseSet", + "documentation":"

    Information about the Capacity Reservation cancellation quotes.

    ", + "locationName":"capacityReservationCancellationQuoteSet" + }, + "NextToken":{ + "shape":"String", + "documentation":"

    The token to use to retrieve the next page of results. This value is null when there are no more results to return.

    ", + "locationName":"nextToken" + } + } + }, "DescribeCapacityReservationFleetsMaxResults":{ "type":"integer", "max":100, @@ -38467,7 +38705,7 @@ }, "State":{ "shape":"CapacityReservationState", - "documentation":"

    The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

    • active - The capacity is available for use.

    • expired - The Capacity Reservation expired automatically at the date and time specified in your reservation request. The reserved capacity is no longer available for your use.

    • cancelled - The Capacity Reservation was canceled. The reserved capacity is no longer available for your use.

    • pending - The Capacity Reservation request was successful but the capacity provisioning is still pending.

    • failed - The Capacity Reservation request has failed. A request can fail due to request parameters that are not valid, capacity constraints, or instance limit constraints. You can view a failed request for 60 minutes.

    • scheduled - (Future-dated Capacity Reservations) The future-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled for delivery on the requested start date.

    • payment-pending - (Capacity Blocks) The upfront payment has not been processed yet.

    • payment-failed - (Capacity Blocks) The upfront payment was not processed in the 12-hour time frame. Your Capacity Block was released.

    • assessing - (Future-dated Capacity Reservations) Amazon EC2 is assessing your request for a future-dated Capacity Reservation.

    • delayed - (Future-dated Capacity Reservations) Amazon EC2 encountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is unable to deliver the requested capacity by the requested start date and time.

    • unsupported - (Future-dated Capacity Reservations) Amazon EC2 can't support the future-dated Capacity Reservation request due to capacity constraints. You can view unsupported requests for 30 days. The Capacity Reservation will not be delivered.

    ", + "documentation":"

    The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

    • active - The capacity is available for use.

    • expired - The Capacity Reservation expired automatically at the date and time specified in your reservation request. The reserved capacity is no longer available for your use.

    • cancelled - The Capacity Reservation was canceled. The reserved capacity is no longer available for your use.

    • pending - The Capacity Reservation request was successful but the capacity provisioning is still pending.

    • failed - The Capacity Reservation request has failed. A request can fail due to request parameters that are not valid, capacity constraints, or instance limit constraints. You can view a failed request for 60 minutes.

    • scheduled - (Future-dated Capacity Reservations) The future-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled for delivery on the requested start date.

    • payment-pending - (Capacity Blocks) The upfront payment has not been processed yet.

    • payment-failed - (Capacity Blocks) The upfront payment was not processed in the 12-hour time frame. Your Capacity Block was released.

    • assessing - (Future-dated Capacity Reservations) Amazon EC2 is assessing your request for a future-dated Capacity Reservation.

    • delayed - (Future-dated Capacity Reservations) Amazon EC2 encountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is unable to deliver the requested capacity by the requested start date and time.

    • unsupported - (Future-dated Capacity Reservations) Amazon EC2 can't support the future-dated Capacity Reservation request due to capacity constraints. You can view unsupported requests for 30 days. The Capacity Reservation will not be delivered.

    • cancelling - (Future-dated Capacity Reservations) The Capacity Reservation is being cancelled. Capacity has been released but charges continue for the commitment wind-down period. The reservation transitions to cancelled when the wind-down completes.

    ", "locationName":"state" }, "InstanceUsages":{ @@ -63989,7 +64227,8 @@ "secondary-subnet", "capacity-manager-data-export", "vpn-concentrator", - "ipam-pool-allocation" + "ipam-pool-allocation", + "capacity-reservation-cancellation-quote" ] }, "ResourceTypeOption":{ diff --git a/awscli/botocore/data/elasticache/2015-02-02/service-2.json b/awscli/botocore/data/elasticache/2015-02-02/service-2.json index a8f58bd4bdae..951d1352b52d 100644 --- a/awscli/botocore/data/elasticache/2015-02-02/service-2.json +++ b/awscli/botocore/data/elasticache/2015-02-02/service-2.json @@ -3075,7 +3075,7 @@ }, "AtRestEncryptionEnabled":{ "shape":"BooleanOptional", - "documentation":"

    A flag that enables encryption at rest when set to true.

    You cannot modify the value of AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group.

    Required: Only available when creating a replication group in an Amazon VPC using Valkey 7.2 and later, Redis OSS version 3.2.6, or Redis OSS 4.x and later.

    Default: true when using Valkey, false when using Redis OSS

    " + "documentation":"

    A flag that enables encryption at-rest on the replication group when set to true. In some cases, encryption at-rest may be enabled even when this value is false. Use StorageEncryptionType to view the effective encryption state of a cluster.

    You cannot modify the value of AtRestEncryptionEnabled after the replication group is created.

    Default: true when using Valkey, false when using Redis OSS

    " }, "KmsKeyId":{ "shape":"String", @@ -3112,6 +3112,10 @@ "ServerlessCacheSnapshotName":{ "shape":"String", "documentation":"

    The name of the snapshot used to create a replication group. Available for Valkey, Redis OSS only.

    " + }, + "Durability":{ + "shape":"Durability", + "documentation":"

    Specifies the durability setting for the replication group. When set to default, the service determines the effective durability based on the engine version, cluster mode, and other parameters. The resolved setting is reflected in the EffectiveDurability property of the replication group. For more information, see Durability.

    " } }, "documentation":"

    Represents the input of a CreateReplicationGroup operation.

    " @@ -3183,7 +3187,7 @@ }, "NetworkType":{ "shape":"NetworkType", - "documentation":"

    The IP protocol version used by the serverless cache. Must be either ipv4 | ipv6 | dual_stack. ipv6 is only supported with ipv6-only subnets. If not specified, defaults to ipv4, unless all provided subnets are IPv6-only, in which case it defaults to ipv6.

    " + "documentation":"

    The IP protocol version used by the serverless cache. Must be either ipv4 | ipv6 | dual_stack. ipv6 is only supported with IPv6-only subnets. If not specified, defaults to ipv4, unless all provided subnets are IPv6-only, in which case it defaults to ipv6.

    " } } }, @@ -4280,6 +4284,15 @@ }, "exception":true }, + "Durability":{ + "type":"string", + "enum":[ + "default", + "async", + "sync", + "disabled" + ] + }, "EC2SecurityGroup":{ "type":"structure", "members":{ @@ -4319,6 +4332,14 @@ }, "documentation":"

    The configuration for the number of ElastiCache Processing Units (ECPU) the cache can consume per second.

    " }, + "EffectiveDurability":{ + "type":"string", + "enum":[ + "async", + "sync", + "disabled" + ] + }, "Endpoint":{ "type":"structure", "members":{ @@ -5398,6 +5419,10 @@ "ClusterMode":{ "shape":"ClusterMode", "documentation":"

    Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first set the cluster mode to Compatible. Compatible mode allows your Valkey or Redis OSS clients to connect using both cluster mode enabled and cluster mode disabled. After you migrate all Valkey or Redis OSS clients to use cluster mode enabled, you can then complete cluster mode configuration and set the cluster mode to Enabled.

    " + }, + "Durability":{ + "shape":"Durability", + "documentation":"

    Specifies the durability setting for the replication group. Use this parameter to change the durability mode of an existing replication group, for example from sync to async or vice versa. For more information, see Durability.

    " } }, "documentation":"

    Represents the input of a ModifyReplicationGroups operation.

    " @@ -6353,7 +6378,7 @@ }, "AtRestEncryptionEnabled":{ "shape":"BooleanOptional", - "documentation":"

    A flag that enables encryption at-rest when set to true.

    You cannot modify the value of AtRestEncryptionEnabled after the cluster is created. To enable encryption at-rest on a cluster you must set AtRestEncryptionEnabled to true when you create a cluster.

    Required: Only available when creating a replication group in an Amazon VPC using Redis OSS version 3.2.6, 4.x or later.

    Default: false

    " + "documentation":"

    A flag that enables encryption at-rest on the cluster when set to true. In some cases, encryption at-rest may be enabled even when this value is false. Use StorageEncryptionType to view the effective encryption state of a cluster.

    You cannot modify the value of AtRestEncryptionEnabled after the cluster is created.

    Default: true when using Valkey, false when using Redis OSS

    " }, "MemberClustersOutpostArns":{ "shape":"ReplicationGroupOutpostArnList", @@ -6363,6 +6388,10 @@ "shape":"String", "documentation":"

    The ID of the KMS key used to encrypt the disk in the cluster.

    " }, + "StorageEncryptionType":{ + "shape":"StorageEncryptionType", + "documentation":"

    Indicates the type of encryption for data stored at rest in the replication group. The value is none if at-rest encryption is not enabled, sse-elasticache if an ElastiCache service-managed key is used, or sse-kms if a customer-managed KMS key is used.

    " + }, "ARN":{ "shape":"String", "documentation":"

    The ARN (Amazon Resource Name) of the replication group.

    " @@ -6406,6 +6435,14 @@ "Engine":{ "shape":"String", "documentation":"

    The engine used in a replication group. The options are valkey, memcached or redis.

    " + }, + "Durability":{ + "shape":"Durability", + "documentation":"

    The durability setting of the replication group. For more information, see Durability.

    " + }, + "EffectiveDurability":{ + "shape":"EffectiveDurability", + "documentation":"

    The effective durability of the replication group. When Durability is set to default, the service resolves the actual durability based on the engine version, cluster mode, and other parameters. This field reflects the resolved value. For more information, see Configuring Durability.

    " } }, "documentation":"

    Contains all of the attributes of a specific Valkey or Redis OSS replication group.

    ", @@ -6871,6 +6908,10 @@ "shape":"String", "documentation":"

    The ID of the Amazon Web Services Key Management Service (KMS) key that is used to encrypt data at rest in the serverless cache.

    " }, + "StorageEncryptionType":{ + "shape":"StorageEncryptionType", + "documentation":"

    Indicates the type of encryption for data stored at rest in the serverless cache. Serverless caches are always encrypted at rest. The value is sse-elasticache if an ElastiCache service-managed key is used, or sse-kms if a customer-managed KMS key is used.

    " + }, "SecurityGroupIds":{ "shape":"SecurityGroupIdsList", "documentation":"

    The IDs of the EC2 security groups associated with the serverless cache.

    " @@ -7295,6 +7336,10 @@ "DataTiering":{ "shape":"DataTieringStatus", "documentation":"

    Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see Data tiering.

    " + }, + "Durability":{ + "shape":"Durability", + "documentation":"

    The durability setting of the cluster when the snapshot was taken. When restoring from this snapshot, the cluster uses this durability setting unless overridden in the restore request. For more information, see Durability.

    " } }, "documentation":"

    Represents a copy of an entire Valkey or Redis OSS cluster as of the time when the snapshot was taken.

    ", @@ -7395,6 +7440,14 @@ "ReplicationGroup":{"shape":"ReplicationGroup"} } }, + "StorageEncryptionType":{ + "type":"string", + "enum":[ + "none", + "sse-elasticache", + "sse-kms" + ] + }, "String":{"type":"string"}, "Subnet":{ "type":"structure", diff --git a/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json b/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json index 439336ae23da..b52fb08760de 100644 --- a/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json +++ b/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json @@ -1,6 +1,12 @@ { "version": "1.0", "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, "UseDualStack": { "builtIn": "AWS::UseDualStack", "required": true, @@ -20,12 +26,6 @@ "required": false, "documentation": "Override the endpoint used to send this request", "type": "string" - }, - "Region": { - "builtIn": "AWS::Region", - "required": false, - "documentation": "The AWS region used to dispatch the request.", - "type": "string" } }, "rules": [ @@ -119,350 +119,6 @@ } ], "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - false - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - false - ] - } - ], - "endpoint": { - "url": "https://routes.geo.{Region}.{PartitionResult#dnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "endpoint": { - "url": "https://routes.geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - false - ] - } - ], - "endpoint": { - "url": "https://routes.geo-fips.{Region}.{PartitionResult#dnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - false - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "endpoint": { - "url": "https://routes.geo.{Region}.{PartitionResult#dualStackDnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - false - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - false - ] - } - ], - "endpoint": { - "url": "https://routes.geo.{Region}.us-gov.{PartitionResult#dnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "endpoint": { - "url": "https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - false - ] - } - ], - "endpoint": { - "url": "https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - false - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "endpoint": { - "url": "https://routes.geo.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}/v2", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, { "conditions": [ { @@ -521,12 +177,18 @@ "rules": [ { "conditions": [], - "endpoint": { - "url": "https://geo-routes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" } ], "type": "tree" @@ -549,15 +211,6 @@ }, true ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - false - ] } ], "rules": [ @@ -582,12 +235,18 @@ "rules": [ { "conditions": [], - "endpoint": { - "url": "https://geo-routes-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" } ], "type": "tree" @@ -602,15 +261,6 @@ }, { "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - false - ] - }, { "fn": "booleanEquals", "argv": [ @@ -643,12 +293,18 @@ "rules": [ { "conditions": [], - "endpoint": { - "url": "https://geo-routes.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" } ], "type": "tree" @@ -663,12 +319,18 @@ }, { "conditions": [], - "endpoint": { - "url": "https://geo-routes.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" } ], "type": "tree" diff --git a/awscli/botocore/data/geo-routes/2020-11-19/service-2.json b/awscli/botocore/data/geo-routes/2020-11-19/service-2.json index f5cf270b5dce..bc9c6ac525b7 100644 --- a/awscli/botocore/data/geo-routes/2020-11-19/service-2.json +++ b/awscli/botocore/data/geo-routes/2020-11-19/service-2.json @@ -17,7 +17,7 @@ "name":"CalculateIsolines", "http":{ "method":"POST", - "requestUri":"/isolines", + "requestUri":"/v2/isolines", "responseCode":200 }, "input":{"shape":"CalculateIsolinesRequest"}, @@ -35,7 +35,7 @@ "name":"CalculateRouteMatrix", "http":{ "method":"POST", - "requestUri":"/route-matrix", + "requestUri":"/v2/route-matrix", "responseCode":200 }, "input":{"shape":"CalculateRouteMatrixRequest"}, @@ -53,7 +53,7 @@ "name":"CalculateRoutes", "http":{ "method":"POST", - "requestUri":"/routes", + "requestUri":"/v2/routes", "responseCode":200 }, "input":{"shape":"CalculateRoutesRequest"}, @@ -71,7 +71,7 @@ "name":"OptimizeWaypoints", "http":{ "method":"POST", - "requestUri":"/optimize-waypoints", + "requestUri":"/v2/optimize-waypoints", "responseCode":200 }, "input":{"shape":"OptimizeWaypointsRequest"}, @@ -89,7 +89,7 @@ "name":"SnapToRoads", "http":{ "method":"POST", - "requestUri":"/snap-to-roads", + "requestUri":"/v2/snap-to-roads", "responseCode":200 }, "input":{"shape":"SnapToRoadsRequest"}, @@ -283,7 +283,7 @@ }, "Destinations":{ "shape":"CalculateRouteMatrixRequestDestinationsList", - "documentation":"

    List of destinations for the route.

    Route calculations are billed for each origin and destination pair. If you use a large matrix of origins and destinations, your costs will increase accordingly. For more information, see Routes pricing in the Amazon Location Service Developer Guide.

    " + "documentation":"

    List of destinations for the route in World Geodetic System (WGS 84) format: [longitude, latitude].

    Route calculations are billed for each origin and destination pair. If you use a large matrix of origins and destinations, your costs will increase accordingly. For more information, see Routes pricing in the Amazon Location Service Developer Guide.

    The maximum number of destinations depends on the routing boundary configuration:

    • With RoutingBoundary.Geometry set: maximum 500 destinations

    • With RoutingBoundary.Unbounded set to true: maximum 100 destinations

    • For GrabMaps customers in ap-southeast-1 and ap-southeast-5: maximum 350 destinations

    The total matrix size (origins × destinations) must not exceed:

    • With RoutingBoundary.Geometry: 160,000

    • With RoutingBoundary.Unbounded: 100

    • For GrabMaps customers in ap-southeast-1 and ap-southeast-5: 122,500

    " }, "Exclude":{ "shape":"RouteMatrixExclusionOptions", @@ -301,11 +301,11 @@ }, "Origins":{ "shape":"CalculateRouteMatrixRequestOriginsList", - "documentation":"

    The position for the origin in World Geodetic System (WGS 84) format: [longitude, latitude].

    Route calculations are billed for each origin and destination pair. Using a large amount of Origins in a request can lead you to incur unexpected charges. For more information, see Routes pricing in the Amazon Location Service Developer Guide.

    " + "documentation":"

    List of origins for the route in World Geodetic System (WGS 84) format: [longitude, latitude].

    Route calculations are billed for each origin and destination pair. Using a large amount of Origins in a request can lead you to incur unexpected charges. For more information, see Routes pricing in the Amazon Location Service Developer Guide.

    The maximum number of origins depends on the routing boundary configuration:

    • With RoutingBoundary.Geometry set: maximum 500 origins

    • With RoutingBoundary.Unbounded set to true: maximum 15 origins

    • For GrabMaps customers in ap-southeast-1 and ap-southeast-5: maximum 350 origins

    The total matrix size (origins × destinations) must not exceed:

    • With RoutingBoundary.Geometry: 160,000

    • With RoutingBoundary.Unbounded: 100

    • For GrabMaps customers in ap-southeast-1 and ap-southeast-5: 122,500

    " }, "RoutingBoundary":{ "shape":"RouteMatrixBoundary", - "documentation":"

    Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid. For GrabMaps customers, ap-southeast-1 and ap-southeast-5 regions support only Unbounded set to true.

    Default value: Unbounded set to true

    When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

    " + "documentation":"

    Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid. For GrabMaps customers, ap-southeast-1 and ap-southeast-5 regions support only Unbounded set to true.

    Default value: Unbounded set to true

    When AutoCircle is set in the request, the response routing boundary will return Circle derived from the AutoCircle settings.

    " }, "Traffic":{ "shape":"RouteMatrixTrafficOptions", @@ -356,7 +356,7 @@ }, "RoutingBoundary":{ "shape":"RouteMatrixBoundary", - "documentation":"

    Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid.

    When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

    " + "documentation":"

    Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid.

    When AutoCircle is set in the request, the response routing boundary will return Circle derived from the AutoCircle settings.

    " } } }, @@ -530,10 +530,10 @@ }, "Radius":{ "shape":"SensitiveDouble", - "documentation":"

    Radius of the Circle.

    Unit: meters

    " + "documentation":"

    Radius of the Circle.

    Unit: meters

    Valid Range: Minimum value of 0. Maximum value of 200000.

    " } }, - "documentation":"

    Geometry defined as a circle. When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

    ", + "documentation":"

    Geometry defined as a circle. The circle defines the routing boundary area. Any waypoints outside the circle will result in a route matrix entry error.

    You can specify a Circle directly in the request, or it will be auto-derived when AutoCircle is used. When AutoCircle is set in the request, the response routing boundary will return Circle derived from the AutoCircle settings.

    ", "sensitive":true }, "ClusterIndex":{ @@ -633,6 +633,12 @@ "min":0, "sensitive":true }, + "EnergyKilowattHours":{ + "type":"double", + "box":true, + "min":0.0, + "sensitive":true + }, "GeometryFormat":{ "type":"string", "enum":[ @@ -646,6 +652,11 @@ "min":0.0, "sensitive":true }, + "HexColor":{ + "type":"string", + "pattern":".*#[0-9A-Fa-f]{6}.*", + "sensitive":true + }, "IndexList":{ "type":"list", "member":{"shape":"Integer"} @@ -1489,7 +1500,7 @@ }, "Waypoints":{ "shape":"WaypointOptimizationWaypointList", - "documentation":"

    List of waypoints between the Origin and Destination.

    " + "documentation":"

    List of waypoints between the Origin and Destination, in World Geodetic System (WGS 84) format: [longitude, latitude].

    The maximum number of waypoints allowed per request:

    • Maximum 50 waypoints per request

    • Maximum 20 waypoints when using constraints (AccessHours, AppointmentTime, ServiceDuration, Heading, SideOfStreet, Before)

    " } } }, @@ -1585,6 +1596,12 @@ "min":2, "sensitive":true }, + "PowerKilowatts":{ + "type":"double", + "box":true, + "min":0.0, + "sensitive":true + }, "RoadSnapHazardousCargoType":{ "type":"string", "enum":[ @@ -1841,6 +1858,46 @@ }, "documentation":"

    The route.

    " }, + "RouteAccessPointDetails":{ + "type":"structure", + "members":{ + "Accessibility":{ + "shape":"RouteAccessibilityAvailabilityDetails", + "documentation":"

    Wheelchair accessibility information for the access point.

    " + } + }, + "documentation":"

    Details of the access point.

    " + }, + "RouteAccessibilityAttribute":{ + "type":"string", + "enum":["Wheelchair"], + "sensitive":true + }, + "RouteAccessibilityAttributeList":{ + "type":"list", + "member":{"shape":"RouteAccessibilityAttribute"}, + "max":1, + "min":0 + }, + "RouteAccessibilityAvailability":{ + "type":"string", + "enum":[ + "Available", + "Limited", + "Unavailable", + "Unknown" + ] + }, + "RouteAccessibilityAvailabilityDetails":{ + "type":"structure", + "members":{ + "Wheelchair":{ + "shape":"RouteAccessibilityAvailability", + "documentation":"

    Wheelchair accessibility status.

    " + } + }, + "documentation":"

    Details about the availability of accessibility features.

    " + }, "RouteAllowOptions":{ "type":"structure", "members":{ @@ -1855,6 +1912,33 @@ }, "documentation":"

    Features that are allowed while calculating a route.

    " }, + "RouteAttribution":{ + "type":"structure", + "required":["WebLink"], + "members":{ + "AttributionType":{ + "shape":"RouteAttributionType", + "documentation":"

    The type of the attribution link.

    " + }, + "WebLink":{ + "shape":"RouteWebLink", + "documentation":"

    The URL to an external resource.

    " + } + }, + "documentation":"

    Required attribution to display.

    " + }, + "RouteAttributionList":{ + "type":"list", + "member":{"shape":"RouteAttribution"} + }, + "RouteAttributionType":{ + "type":"string", + "enum":[ + "Disclaimer", + "Tariff" + ], + "sensitive":true + }, "RouteAvoidanceArea":{ "type":"structure", "required":["Geometry"], @@ -2019,6 +2103,24 @@ "min":1, "sensitive":true }, + "RouteChargeStepDetails":{ + "type":"structure", + "members":{ + "ArrivalCharge":{ + "shape":"EnergyKilowattHours", + "documentation":"

    Estimated vehicle battery charge before this step (in kWh).

    " + }, + "ConsumablePower":{ + "shape":"PowerKilowatts", + "documentation":"

    Maximum charging power available to the vehicle.

    Unit: KwH

    " + }, + "DesiredCharge":{ + "shape":"EnergyKilowattHours", + "documentation":"

    Details that are specific to a Charge step.

    Unit: KwH

    " + } + }, + "documentation":"

    Details about the EV charge at the current step.

    " + }, "RouteContinueHighwayStepDetails":{ "type":"structure", "required":["Intersection"], @@ -2259,11 +2361,11 @@ "members":{ "Place":{ "shape":"RouteFerryPlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the arrival.

    " }, "Time":{ "shape":"TimestampWithTimezoneOffset", - "documentation":"

    The time.

    " + "documentation":"

    The arrival time.

    " } }, "documentation":"

    Details corresponding to the arrival for the leg.

    " @@ -2305,11 +2407,11 @@ "members":{ "Place":{ "shape":"RouteFerryPlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the departure.

    " }, "Time":{ "shape":"TimestampWithTimezoneOffset", - "documentation":"

    The time.

    " + "documentation":"

    The departure time.

    " } }, "documentation":"

    Details corresponding to the departure for the leg.

    " @@ -2412,14 +2514,14 @@ "members":{ "Distance":{ "shape":"DistanceMeters", - "documentation":"

    Distance of the step.

    " + "documentation":"

    Distance of the entire leg.

    Unit: meters

    " }, "Duration":{ "shape":"DurationSeconds", - "documentation":"

    Duration of the step.

    Unit: seconds

    " + "documentation":"

    Duration of the entire leg.

    Unit: seconds

    " } }, - "documentation":"

    Summarized details of the leg.

    " + "documentation":"

    Summary including duration and distance for the entire leg.

    " }, "RouteFerryPlace":{ "type":"structure", @@ -2471,7 +2573,7 @@ }, "Names":{ "shape":"LocalizedStringList", - "documentation":"

    Provides an array of names of the ferry span in available languages.

    " + "documentation":"

    Names of the ferry span in available languages.

    " }, "Region":{ "shape":"RouteFerrySpanRegionString", @@ -2591,6 +2693,162 @@ "max":11, "min":0 }, + "RouteIntermodalEnabledLegs":{ + "type":"string", + "enum":[ + "FirstLeg", + "LastLeg", + "EntireRoute", + "None" + ], + "sensitive":true + }, + "RouteIntermodalEnabledLegsList":{ + "type":"list", + "member":{"shape":"RouteIntermodalEnabledLegs"}, + "max":2, + "min":1 + }, + "RouteIntermodalOptions":{ + "type":"structure", + "members":{ + "AccessibilityAttributes":{ + "shape":"RouteAccessibilityAttributeList", + "documentation":"

    Accessibility attributes to consider when calculating the route.

    " + }, + "MaxTransfers":{ + "shape":"RouteIntermodalOptionsMaxTransfersInteger", + "documentation":"

    Maximum number of transfers allowed when calculating the route.

    " + }, + "Pedestrian":{ + "shape":"RouteIntermodalPedestrianOptions", + "documentation":"

    Options for the pedestrian leg of the intermodal route.

    " + }, + "Rental":{ + "shape":"RouteIntermodalRentalOptions", + "documentation":"

    Options for the rental leg of the intermodal route.

    " + }, + "Taxi":{ + "shape":"RouteIntermodalTaxiOptions", + "documentation":"

    Options for the taxi leg of the intermodal route.

    " + }, + "Transit":{ + "shape":"RouteIntermodalTransitOptions", + "documentation":"

    Options for the transit leg of the intermodal route.

    " + }, + "Vehicle":{ + "shape":"RouteIntermodalVehicleOptions", + "documentation":"

    Options for the vehicle leg of the intermodal route.

    " + } + }, + "documentation":"

    Options related to intermodal routing.

    Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " + }, + "RouteIntermodalOptionsMaxTransfersInteger":{ + "type":"integer", + "box":true, + "max":6, + "min":0 + }, + "RouteIntermodalPedestrianOptions":{ + "type":"structure", + "members":{ + "MaxDistance":{ + "shape":"RouteIntermodalPedestrianOptionsMaxDistanceLong", + "documentation":"

    Maximum walking distance allowed.

    Unit: meters

    ", + "box":true + }, + "Speed":{ + "shape":"RouteIntermodalPedestrianOptionsSpeedDouble", + "documentation":"

    Walking speed.

    Unit: kilometers per hour

    ", + "box":true + } + }, + "documentation":"

    Options for the pedestrian leg of the intermodal route.

    " + }, + "RouteIntermodalPedestrianOptionsMaxDistanceLong":{ + "type":"long", + "max":6000, + "min":0, + "sensitive":true + }, + "RouteIntermodalPedestrianOptionsSpeedDouble":{ + "type":"double", + "max":7.2, + "min":1.8, + "sensitive":true + }, + "RouteIntermodalRentalOptions":{ + "type":"structure", + "members":{ + "AllowedModes":{ + "shape":"RouteRentalModeList", + "documentation":"

    Allowed rental transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with ExcludedModes.

    " + }, + "EnabledFor":{ + "shape":"RouteIntermodalEnabledLegsList", + "documentation":"

    Specifies the portion of the route for which this leg type is enabled. By default, the leg type is enabled for all legs. Valid values:

    • FirstLeg - Enable this leg type for the first non-pedestrian leg of the route.

    • LastLeg - Enable this leg type for the last non-pedestrian leg of the route.

    • EntireRoute - Enable this leg type for the entire route.

    • None - Disable this leg type entirely.

    " + }, + "ExcludedModes":{ + "shape":"RouteRentalModeList", + "documentation":"

    Excluded rental transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with AllowedModes.

    " + } + }, + "documentation":"

    Options for the rental leg of the intermodal route.

    " + }, + "RouteIntermodalTaxiOptions":{ + "type":"structure", + "members":{ + "AllowedModes":{ + "shape":"RouteTaxiModeList", + "documentation":"

    Allowed taxi transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with ExcludedModes.

    " + }, + "EnabledFor":{ + "shape":"RouteIntermodalEnabledLegsList", + "documentation":"

    Specifies the portion of the route for which this leg type is enabled. By default, the leg type is enabled for all legs. Valid values:

    • FirstLeg - Enable this leg type for the first non-pedestrian leg of the route.

    • LastLeg - Enable this leg type for the last non-pedestrian leg of the route.

    • EntireRoute - Enable this leg type for the entire route.

    • None - Disable this leg type entirely.

    " + }, + "ExcludedModes":{ + "shape":"RouteTaxiModeList", + "documentation":"

    Excluded taxi transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with AllowedModes.

    " + } + }, + "documentation":"

    Options for the taxi leg of the intermodal route.

    " + }, + "RouteIntermodalTransitOptions":{ + "type":"structure", + "members":{ + "AllowedModes":{ + "shape":"RouteTransitModeList", + "documentation":"

    Allowed transit transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with ExcludedModes.

    " + }, + "EnabledFor":{ + "shape":"RouteIntermodalEnabledLegsList", + "documentation":"

    Specifies the portion of the route for which this leg type is enabled. By default, the leg type is enabled for all legs. Valid values:

    • FirstLeg - Enable this leg type for the first non-pedestrian leg of the route.

    • LastLeg - Enable this leg type for the last non-pedestrian leg of the route.

    • EntireRoute - Enable this leg type for the entire route.

    • None - Disable this leg type entirely.

    " + }, + "ExcludedModes":{ + "shape":"RouteTransitModeList", + "documentation":"

    Excluded transit transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with AllowedModes.

    " + } + }, + "documentation":"

    Options for the transit leg of the intermodal route.

    " + }, + "RouteIntermodalVehicleOptions":{ + "type":"structure", + "members":{ + "AllowedModes":{ + "shape":"RouteVehicleModeList", + "documentation":"

    Allowed vehicle transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with ExcludedModes.

    " + }, + "EnabledFor":{ + "shape":"RouteIntermodalEnabledLegsList", + "documentation":"

    Specifies the portion of the route for which this leg type is enabled. By default, the leg type is enabled for all legs. Valid values:

    • FirstLeg - Enable this leg type for the first non-pedestrian leg of the route.

    • LastLeg - Enable this leg type for the last non-pedestrian leg of the route.

    • EntireRoute - Enable this leg type for the entire route.

    • None - Disable this leg type entirely.

    " + }, + "ExcludedModes":{ + "shape":"RouteVehicleModeList", + "documentation":"

    Excluded vehicle transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with AllowedModes.

    " + } + }, + "documentation":"

    Options for the vehicle leg of the intermodal route.

    " + }, "RouteKeepStepDetails":{ "type":"structure", "required":["Intersection"], @@ -2649,6 +2907,18 @@ "VehicleLegDetails":{ "shape":"RouteVehicleLegDetails", "documentation":"

    Details related to the vehicle leg.

    " + }, + "RentalLegDetails":{ + "shape":"RouteRentalLegDetails", + "documentation":"

    Details related to the rental leg.

    Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " + }, + "TaxiLegDetails":{ + "shape":"RouteTaxiLegDetails", + "documentation":"

    Details related to the taxi leg.

    Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " + }, + "TransitLegDetails":{ + "shape":"RouteTransitLegDetails", + "documentation":"

    Details related to the transit leg.

    " } }, "documentation":"

    A leg is a section of a route from one waypoint to the next. A leg could be of type Vehicle, Pedestrian or Ferry. Legs of different types could occur together within a single route. For example, a car employing the use of a Ferry will contain Vehicle legs corresponding to journey on land, and Ferry legs corresponding to the journey via Ferry.

    " @@ -2664,14 +2934,17 @@ "TravelStepInstructions", "TruckRoadTypes", "TypicalDuration", - "Zones" + "Zones", + "Bookings", + "IntermediateStops", + "NextDepartures" ], "sensitive":true }, "RouteLegAdditionalFeatureList":{ "type":"list", "member":{"shape":"RouteLegAdditionalFeature"}, - "max":9, + "max":12, "min":0 }, "RouteLegGeometry":{ @@ -2700,7 +2973,21 @@ "Pedestrian", "Scooter", "Truck", - "CarShuttleTrain" + "CarShuttleTrain", + "AerialTramway", + "Airplane", + "Bus", + "BusRapidTransit", + "CityTrain", + "FunicularRailway", + "HighSpeedTrain", + "IntercityTrain", + "InterregionalTrain", + "LightRail", + "Monorail", + "PrivateBus", + "RegionalTrain", + "Subway" ], "sensitive":true }, @@ -2709,7 +2996,10 @@ "enum":[ "Ferry", "Pedestrian", - "Vehicle" + "Vehicle", + "Rental", + "Taxi", + "Transit" ], "sensitive":true }, @@ -2789,14 +3079,14 @@ "members":{ "Margin":{ "shape":"RouteMatrixAutoCircleMarginLong", - "documentation":"

    The margin provided for the calculation.

    " + "documentation":"

    The minimal distance, in meters, between any waypoint and the perimeter of the circle auto-defined for the boundary. Some margin is usually recommended so that the routing has enough leeway to travel from one waypoint to another optimally without conflicting with the routing boundary.

    The total of MaxRadius and Margin must be less than or equal to 200,000 meters.

    " }, "MaxRadius":{ "shape":"RouteMatrixAutoCircleMaxRadiusLong", - "documentation":"

    The maximum size of the radius provided for the calculation.

    " + "documentation":"

    The maximum radius, in meters, that the auto-defined Circle boundary should have, before the Margin distance is added to the circle.

    The total of MaxRadius and Margin must be less than or equal to 200,000 meters.

    " } }, - "documentation":"

    Provides the circle that was used while calculating the route.

    " + "documentation":"

    AutoCircle requests the route matrix service to define a Circle boundary that best attempts to include most waypoints (Origins and Destinations) using the AutoCircle settings. Any waypoints outside of the auto-defined Circle boundary will be considered out of the routing boundary, which results in a route matrix entry error.

    AutoCircle is only used in the request to configure a Circle for the route calculation. The derived Circle will also be provided in the response.

    " }, "RouteMatrixAutoCircleMarginLong":{ "type":"long", @@ -2942,19 +3232,19 @@ "members":{ "AutoCircle":{ "shape":"RouteMatrixAutoCircle", - "documentation":"

    Provides the circle that was used while calculating the route.

    " + "documentation":"

    AutoCircle requests the route matrix service to define a Circle boundary that best attempts to include most waypoints (Origins and Destinations) using the AutoCircle settings. Any waypoints outside of the auto-defined Circle boundary will be considered out of the routing boundary, which results in a route matrix entry error.

    AutoCircle is only used in the request to configure a Circle for the route calculation. The derived Circle will also be provided in the response.

    " }, "Circle":{ "shape":"Circle", - "documentation":"

    Geometry defined as a circle. When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

    " + "documentation":"

    Geometry defined as a circle. The circle defines the routing boundary area. Any waypoints outside the circle will result in a route matrix entry error.

    You can specify a Circle directly in the request, or it will be auto-derived when AutoCircle is used. When AutoCircle is set in the request, the response routing boundary will return Circle derived from the AutoCircle settings.

    " }, "BoundingBox":{ "shape":"BoundingBox", - "documentation":"

    Geometry defined as a bounding box. The first pair represents the X and Y coordinates (longitude and latitude,) of the southwest corner of the bounding box; the second pair represents the X and Y coordinates (longitude and latitude) of the northeast corner.

    " + "documentation":"

    Geometry defined as a bounding box. The first pair represents the X and Y coordinates (longitude and latitude,) of the southwest corner of the bounding box; the second pair represents the X and Y coordinates (longitude and latitude) of the northeast corner.

    Diagonal distance of the bounding box must be less than or equal to 400,000 meters.

    " }, "Polygon":{ "shape":"RouteMatrixBoundaryGeometryPolygonList", - "documentation":"

    Geometry defined as a polygon with only one linear ring.

    " + "documentation":"

    Geometry defined as a polygon with only one linear ring. A linear ring is a closed sequence of four or more coordinates. The first and last coordinates are the same, forming a closed boundary. Each coordinate is a position in [longitude, latitude] format.

    The structure is an array of linear rings (only 1 allowed). Each linear ring is an array of coordinates (minimum 4), and each coordinate is an array of two doubles [longitude, latitude].

    Maximum distance between any two vertices must be less than or equal to 400,000 meters.

    " } }, "documentation":"

    Geometry of the routing boundary.

    " @@ -3547,7 +3837,7 @@ }, "Place":{ "shape":"RoutePassThroughPlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the pass-through waypoint.

    " } }, "documentation":"

    If the waypoint should be treated as a stop. If yes, the route is split up into different legs around the stop.

    " @@ -3561,17 +3851,49 @@ "type":"list", "member":{"shape":"RoutePassThroughWaypoint"} }, + "RoutePedestrianAfterTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    Only available when the TravelStepType is Default.

    " + }, + "Type":{ + "shape":"RoutePedestrianAfterTravelStepType", + "documentation":"

    Type of the step.

    " + } + }, + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " + }, + "RoutePedestrianAfterTravelStepList":{ + "type":"list", + "member":{"shape":"RoutePedestrianAfterTravelStep"} + }, + "RoutePedestrianAfterTravelStepType":{ + "type":"string", + "enum":["Wait"], + "sensitive":true + }, "RoutePedestrianArrival":{ "type":"structure", "required":["Place"], "members":{ "Place":{ "shape":"RoutePedestrianPlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the arrival.

    " }, "Time":{ "shape":"TimestampWithTimezoneOffset", - "documentation":"

    The time.

    " + "documentation":"

    The arrival time.

    " } }, "documentation":"

    Details corresponding to the arrival for a leg.

    Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm

    Examples:

    2020-04-22T17:57:24Z

    2020-04-22T17:57:24+02:00

    " @@ -3582,11 +3904,11 @@ "members":{ "Place":{ "shape":"RoutePedestrianPlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the departure.

    " }, "Time":{ "shape":"TimestampWithTimezoneOffset", - "documentation":"

    The time.

    " + "documentation":"

    The departure time.

    " } }, "documentation":"

    Details corresponding to the departure for a leg.

    Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm

    Examples:

    2020-04-22T17:57:24Z

    2020-04-22T17:57:24+02:00

    " @@ -3594,6 +3916,7 @@ "RoutePedestrianLegDetails":{ "type":"structure", "required":[ + "AfterTravelSteps", "Arrival", "Departure", "Notices", @@ -3602,6 +3925,10 @@ "TravelSteps" ], "members":{ + "AfterTravelSteps":{ + "shape":"RoutePedestrianAfterTravelStepList", + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " + }, "Arrival":{ "shape":"RoutePedestrianArrival", "documentation":"

    Details corresponding to the arrival for the leg.

    " @@ -3689,19 +4016,23 @@ "members":{ "Distance":{ "shape":"DistanceMeters", - "documentation":"

    Distance of the step.

    " + "documentation":"

    Distance of the entire leg.

    Unit: meters

    " }, "Duration":{ "shape":"DurationSeconds", - "documentation":"

    Duration of the step.

    " + "documentation":"

    Duration of the entire leg.

    Unit: seconds

    " } }, - "documentation":"

    Provides a summary of a pedestrian route step.

    " + "documentation":"

    Summary including duration and distance for the entire leg.

    " }, "RoutePedestrianPlace":{ "type":"structure", "required":["Position"], "members":{ + "AccessPointDetails":{ + "shape":"RouteAccessPointDetails", + "documentation":"

    Details of the access point.

    " + }, "Name":{ "shape":"SensitiveString", "documentation":"

    The name of the place.

    " @@ -3718,6 +4049,14 @@ "shape":"RouteSideOfStreet", "documentation":"

    Options to configure matching the provided position to a side of the street.

    " }, + "StationDetails":{ + "shape":"RouteStationDetails", + "documentation":"

    Details about the station.

    " + }, + "Type":{ + "shape":"RoutePedestrianPlaceType", + "documentation":"

    The type of the place.

    " + }, "WaypointIndex":{ "shape":"RoutePedestrianPlaceWaypointIndexInteger", "documentation":"

    Index of the waypoint in the request.

    " @@ -3725,6 +4064,16 @@ }, "documentation":"

    Place details corresponding to the arrival or departure.

    " }, + "RoutePedestrianPlaceType":{ + "type":"string", + "enum":[ + "AccessPoint", + "DockingStation", + "ParkingLot", + "Station" + ], + "sensitive":true + }, "RoutePedestrianPlaceWaypointIndexInteger":{ "type":"integer", "box":true, @@ -3934,7 +4283,8 @@ "RoundaboutExit", "RoundaboutPass", "Turn" - ] + ], + "sensitive":true }, "RouteRampStepDetails":{ "type":"structure", @@ -3959,237 +4309,633 @@ }, "documentation":"

    Details that are specific to a ramp step.

    " }, - "RouteResponseNotice":{ + "RouteRentalAfterTravelStep":{ "type":"structure", - "required":["Code"], + "required":[ + "Duration", + "Type" + ], "members":{ - "Code":{ - "shape":"RouteResponseNoticeCode", - "documentation":"

    Code corresponding to the issue.

    " + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true }, - "Impact":{ - "shape":"RouteNoticeImpact", - "documentation":"

    Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

    " + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "Type":{ + "shape":"RouteRentalAfterTravelStepType", + "documentation":"

    Type of the step.

    " } }, - "documentation":"

    Notices are additional information returned that indicate issues that occurred during route calculation.

    " - }, - "RouteResponseNoticeCode":{ - "type":"string", - "enum":[ - "MainLanguageNotFound", - "Other", - "TravelTimeExceedsDriverWorkHours" - ] + "documentation":"

    A step that must be performed after the travel portion of the leg.

    " }, - "RouteResponseNoticeList":{ + "RouteRentalAfterTravelStepList":{ "type":"list", - "member":{"shape":"RouteResponseNotice"} + "member":{"shape":"RouteRentalAfterTravelStep"} }, - "RouteRoad":{ + "RouteRentalAfterTravelStepType":{ + "type":"string", + "enum":["Park"], + "sensitive":true + }, + "RouteRentalAgency":{ "type":"structure", - "required":[ - "RoadName", - "RouteNumber", - "Towards" - ], + "required":["Name"], "members":{ - "RoadName":{ - "shape":"LocalizedStringList", - "documentation":"

    Name of the road (localized).

    " - }, - "RouteNumber":{ - "shape":"RouteNumberList", - "documentation":"

    Route number of the road.

    " - }, - "Towards":{ - "shape":"LocalizedStringList", - "documentation":"

    Names of destinations that can be reached when traveling on the road.

    " + "Name":{ + "shape":"SensitiveString", + "documentation":"

    Name of the agency.

    " }, - "Type":{ - "shape":"RouteRoadType", - "documentation":"

    The type of road.

    " + "Url":{ + "shape":"SensitiveString", + "documentation":"

    URL to the agency's website.

    " } }, - "documentation":"

    The road on the route.

    " + "documentation":"

    Details about the rental agency.

    " }, - "RouteRoadType":{ - "type":"string", - "enum":[ - "Highway", - "Rural", - "Urban" - ], - "sensitive":true - }, - "RouteRoundaboutEnterStepDetails":{ + "RouteRentalArrival":{ "type":"structure", - "required":["Intersection"], + "required":["Place"], "members":{ - "Intersection":{ - "shape":"LocalizedStringList", - "documentation":"

    Name of the intersection, if applicable to the step.

    " + "Place":{ + "shape":"RouteRentalPlace", + "documentation":"

    Place details corresponding to the arrival.

    " }, - "SteeringDirection":{ - "shape":"RouteSteeringDirection", - "documentation":"

    Steering direction for the step.

    " + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The arrival time.

    " + } + }, + "documentation":"

    Details corresponding to the arrival for the leg.

    " + }, + "RouteRentalBeforeTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true }, - "TurnAngle":{ - "shape":"TurnAngle", - "documentation":"

    Angle of the turn.

    " + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " }, - "TurnIntensity":{ - "shape":"RouteTurnIntensity", - "documentation":"

    Intensity of the turn.

    " + "Type":{ + "shape":"RouteRentalBeforeTravelStepType", + "documentation":"

    Type of the step.

    " } }, - "documentation":"

    Details about the roundabout leg.

    " + "documentation":"

    A step that must be performed before the travel portion of the leg.

    " }, - "RouteRoundaboutExitStepDetails":{ + "RouteRentalBeforeTravelStepList":{ + "type":"list", + "member":{"shape":"RouteRentalBeforeTravelStep"} + }, + "RouteRentalBeforeTravelStepType":{ + "type":"string", + "enum":["Setup"], + "sensitive":true + }, + "RouteRentalDeparture":{ "type":"structure", - "required":["Intersection"], + "required":["Place"], "members":{ - "Intersection":{ - "shape":"LocalizedStringList", - "documentation":"

    Name of the intersection, if applicable to the step.

    " + "Place":{ + "shape":"RouteRentalPlace", + "documentation":"

    Place details corresponding to the departure.

    " }, - "RelativeExit":{ - "shape":"RouteRoundaboutExitStepDetailsRelativeExitInteger", - "documentation":"

    Exit to be taken.

    " + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The departure time.

    " + } + }, + "documentation":"

    Details corresponding to the departure for the leg.

    " + }, + "RouteRentalLegDetails":{ + "type":"structure", + "required":[ + "AfterTravelSteps", + "Agency", + "Arrival", + "Attributions", + "BeforeTravelSteps", + "BookingWebLinks", + "Departure", + "Transport", + "TravelSteps" + ], + "members":{ + "AfterTravelSteps":{ + "shape":"RouteRentalAfterTravelStepList", + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " }, - "RoundaboutAngle":{ - "shape":"RoundaboutAngle", - "documentation":"

    Angle of the roundabout.

    " + "Agency":{ + "shape":"RouteRentalAgency", + "documentation":"

    Details about the rental agency.

    " }, - "SteeringDirection":{ - "shape":"RouteSteeringDirection", - "documentation":"

    Steering direction for the step.

    " + "Arrival":{ + "shape":"RouteRentalArrival", + "documentation":"

    Details corresponding to the arrival for the leg.

    " + }, + "Attributions":{ + "shape":"RouteAttributionList", + "documentation":"

    List of required attributions to display.

    " + }, + "BeforeTravelSteps":{ + "shape":"RouteRentalBeforeTravelStepList", + "documentation":"

    Steps of a leg that must be performed before the travel portion of the leg.

    " + }, + "BookingWebLinks":{ + "shape":"RouteWebLinkList", + "documentation":"

    Web links to external ticket booking services for the rental.

    " + }, + "Departure":{ + "shape":"RouteRentalDeparture", + "documentation":"

    Details corresponding to the departure for the leg.

    " + }, + "Summary":{ + "shape":"RouteRentalSummary", + "documentation":"

    Summary of the rental leg.

    " + }, + "Transport":{ + "shape":"RouteRentalTransportModeDetails", + "documentation":"

    Transport mode details for the rental leg.

    " + }, + "TravelSteps":{ + "shape":"RouteRentalTravelStepList", + "documentation":"

    Steps of a leg that must be performed during the travel portion of the leg.

    " } }, - "documentation":"

    Details about the roundabout step.

    " + "documentation":"

    Populated when the Leg type is Rental, and provides additional information that is specific to rental vehicle travel.

    " }, - "RouteRoundaboutExitStepDetailsRelativeExitInteger":{ - "type":"integer", - "box":true, - "max":12, - "min":1, + "RouteRentalMode":{ + "type":"string", + "enum":[ + "All", + "Car" + ], "sensitive":true }, - "RouteRoundaboutPassStepDetails":{ + "RouteRentalModeList":{ + "type":"list", + "member":{"shape":"RouteRentalMode"}, + "max":1, + "min":1 + }, + "RouteRentalOverviewSummary":{ "type":"structure", - "required":["Intersection"], + "required":[ + "Duration", + "Distance" + ], "members":{ - "Intersection":{ - "shape":"LocalizedStringList", - "documentation":"

    Name of the intersection, if applicable to the step.

    " - }, - "SteeringDirection":{ - "shape":"RouteSteeringDirection", - "documentation":"

    Steering direction for the step.

    " - }, - "TurnAngle":{ - "shape":"TurnAngle", - "documentation":"

    Angle of the turn.

    " + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the entire leg.

    Unit: seconds

    ", + "box":true }, - "TurnIntensity":{ - "shape":"RouteTurnIntensity", - "documentation":"

    Intensity of the turn.

    " + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the entire leg.

    Unit: meters

    ", + "box":true } }, - "documentation":"

    Details about the step.

    " + "documentation":"

    Summary including duration and distance for the entire leg.

    " }, - "RouteScooterOptions":{ + "RouteRentalPlace":{ "type":"structure", + "required":["Position"], "members":{ - "EngineType":{ - "shape":"RouteEngineType", - "documentation":"

    Engine type of the vehicle. Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " + "AccessPointDetails":{ + "shape":"RouteAccessPointDetails", + "documentation":"

    Details of the access point.

    " }, - "LicensePlate":{ - "shape":"RouteVehicleLicensePlate", - "documentation":"

    The vehicle License Plate.

    " + "Name":{ + "shape":"SensitiveString", + "documentation":"

    The name of the place.

    " }, - "MaxSpeed":{ - "shape":"RouteScooterOptionsMaxSpeedDouble", - "documentation":"

    Maximum speed Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    Unit: kilometers per hour

    ", - "box":true + "OriginalPosition":{ + "shape":"Position23", + "documentation":"

    Position provided in the request.

    " }, - "Occupancy":{ - "shape":"RouteScooterOptionsOccupancyInteger", - "documentation":"

    The number of occupants in the vehicle. Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    Default value: 1

    " + "Position":{ + "shape":"Position23", + "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + }, + "StationDetails":{ + "shape":"RouteStationDetails", + "documentation":"

    Details about the station.

    " + }, + "Type":{ + "shape":"RouteRentalPlaceType", + "documentation":"

    The type of the place.

    " + }, + "WaypointIndex":{ + "shape":"RouteRentalPlaceWaypointIndexInteger", + "documentation":"

    Index of the waypoint in the request.

    " } }, - "documentation":"

    Travel mode options when the provided travel mode is Scooter. For GrabMaps customers, ap-southeast-1 and ap-southeast-5 regions support only LicensePlate options.

    " + "documentation":"

    Place details corresponding to the arrival or departure.

    " }, - "RouteScooterOptionsMaxSpeedDouble":{ - "type":"double", - "max":252.0, - "min":3.6, + "RouteRentalPlaceType":{ + "type":"string", + "enum":[ + "AccessPoint", + "DockingStation", + "ParkingLot", + "Station" + ], "sensitive":true }, - "RouteScooterOptionsOccupancyInteger":{ + "RouteRentalPlaceWaypointIndexInteger":{ "type":"integer", "box":true, - "min":1, + "min":0, "sensitive":true }, - "RouteSideOfStreet":{ - "type":"string", - "enum":[ - "Left", - "Right" - ], - "sensitive":true + "RouteRentalSummary":{ + "type":"structure", + "members":{ + "Overview":{ + "shape":"RouteRentalOverviewSummary", + "documentation":"

    Summary including duration and distance for the entire leg.

    " + }, + "TravelOnly":{ + "shape":"RouteRentalTravelOnlySummary", + "documentation":"

    Summary including duration and distance for the travel portion of the leg only.

    " + } + }, + "documentation":"

    Summary of the rental leg.

    " }, - "RouteSideOfStreetOptions":{ + "RouteRentalTransportModeDetails":{ "type":"structure", - "required":["Position"], + "required":["Mode"], "members":{ - "Position":{ - "shape":"Position", - "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + "AvailableSeats":{ + "shape":"RouteRentalTransportModeDetailsAvailableSeatsInteger", + "documentation":"

    Number of available seats in the vehicle.

    " }, - "UseWith":{ - "shape":"SideOfStreetMatchingStrategy", - "documentation":"

    Strategy that defines when the side of street position should be used.

    Default value: DividedStreetOnly

    " + "Category":{ + "shape":"SensitiveString", + "documentation":"

    Human readable transport category.

    " + }, + "Color":{ + "shape":"SensitiveString", + "documentation":"

    Color of the transport polyline and background for the transport name.

    " + }, + "Engine":{ + "shape":"RouteEngineType", + "documentation":"

    Vehicle engine type.

    " + }, + "LicensePlate":{ + "shape":"SensitiveString", + "documentation":"

    Vehicle license plate number.

    " + }, + "Mode":{ + "shape":"RouteRentalMode", + "documentation":"

    Mode of the rental transport.

    " + }, + "Model":{ + "shape":"SensitiveString", + "documentation":"

    Vehicle model.

    " + }, + "Name":{ + "shape":"SensitiveString", + "documentation":"

    Vehicle name or mobility provider name.

    " + }, + "TextColor":{ + "shape":"SensitiveString", + "documentation":"

    Color of the transport name text.

    " } }, - "documentation":"

    Options to configure matching the provided position to a side of the street.

    " + "documentation":"

    Transport mode details for the rental leg.

    " }, - "RouteSignpost":{ + "RouteRentalTransportModeDetailsAvailableSeatsInteger":{ + "type":"integer", + "box":true, + "min":0, + "sensitive":true + }, + "RouteRentalTravelOnlySummary":{ "type":"structure", - "required":["Labels"], + "required":["Duration"], "members":{ - "Labels":{ - "shape":"RouteSignpostLabelList", - "documentation":"

    Labels present on the sign post.

    " + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the travel portion of the rental leg.

    Unit: seconds

    ", + "box":true } }, - "documentation":"

    Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

    " + "documentation":"

    Summary including duration and distance for the travel portion of the leg only.

    " }, - "RouteSignpostLabel":{ + "RouteRentalTravelStep":{ "type":"structure", + "required":[ + "Duration", + "Type" + ], "members":{ - "RouteNumber":{ - "shape":"RouteNumber", - "documentation":"

    Route number of the road.

    " + "ContinueStepDetails":{"shape":"RouteContinueStepDetails"}, + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the step.

    Unit: meters

    ", + "box":true }, - "Text":{ - "shape":"LocalizedString", - "documentation":"

    The Signpost text.

    " - } + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "ExitStepDetails":{"shape":"RouteExitStepDetails"}, + "GeometryOffset":{ + "shape":"RouteRentalTravelStepGeometryOffsetInteger", + "documentation":"

    Offset in the leg geometry corresponding to the start of this step.

    " + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "KeepStepDetails":{"shape":"RouteKeepStepDetails"}, + "RampStepDetails":{"shape":"RouteRampStepDetails"}, + "RoundaboutEnterStepDetails":{"shape":"RouteRoundaboutEnterStepDetails"}, + "RoundaboutExitStepDetails":{"shape":"RouteRoundaboutExitStepDetails"}, + "RoundaboutPassStepDetails":{"shape":"RouteRoundaboutPassStepDetails"}, + "TurnStepDetails":{"shape":"RouteTurnStepDetails"}, + "Type":{ + "shape":"RouteRentalTravelStepType", + "documentation":"

    Type of the step.

    " + }, + "UTurnStepDetails":{"shape":"RouteUTurnStepDetails"} }, - "documentation":"

    Labels presented on the sign post.

    " + "documentation":"

    A step that must be performed during the travel portion of the leg.

    " }, - "RouteSignpostLabelList":{ + "RouteRentalTravelStepGeometryOffsetInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "RouteRentalTravelStepList":{ "type":"list", - "member":{"shape":"RouteSignpostLabel"} + "member":{"shape":"RouteRentalTravelStep"} }, - "RouteSpanAdditionalFeature":{ + "RouteRentalTravelStepType":{ "type":"string", "enum":[ - "BestCaseDuration", - "CarAccess", + "Arrive", + "Continue", + "Depart", + "Exit", + "Keep", + "Ramp", + "RoundaboutEnter", + "RoundaboutExit", + "RoundaboutPass", + "Turn", + "UTurn" + ], + "sensitive":true + }, + "RouteResponseNotice":{ + "type":"structure", + "required":["Code"], + "members":{ + "Code":{ + "shape":"RouteResponseNoticeCode", + "documentation":"

    Code corresponding to the issue.

    " + }, + "Impact":{ + "shape":"RouteNoticeImpact", + "documentation":"

    Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

    " + } + }, + "documentation":"

    Notices are additional information returned that indicate issues that occurred during route calculation.

    " + }, + "RouteResponseNoticeCode":{ + "type":"string", + "enum":[ + "MainLanguageNotFound", + "Other", + "TravelTimeExceedsDriverWorkHours", + "TransitDataUnavailable", + "TransitRouteUnavailable", + "NoTransitStationsFound" + ] + }, + "RouteResponseNoticeList":{ + "type":"list", + "member":{"shape":"RouteResponseNotice"} + }, + "RouteRoad":{ + "type":"structure", + "required":[ + "RoadName", + "RouteNumber", + "Towards" + ], + "members":{ + "RoadName":{ + "shape":"LocalizedStringList", + "documentation":"

    Name of the road (localized).

    " + }, + "RouteNumber":{ + "shape":"RouteNumberList", + "documentation":"

    Route number of the road.

    " + }, + "Towards":{ + "shape":"LocalizedStringList", + "documentation":"

    Names of destinations that can be reached when traveling on the road.

    " + }, + "Type":{ + "shape":"RouteRoadType", + "documentation":"

    The type of road.

    " + } + }, + "documentation":"

    The road on the route.

    " + }, + "RouteRoadType":{ + "type":"string", + "enum":[ + "Highway", + "Rural", + "Urban" + ], + "sensitive":true + }, + "RouteRoundaboutEnterStepDetails":{ + "type":"structure", + "required":["Intersection"], + "members":{ + "Intersection":{ + "shape":"LocalizedStringList", + "documentation":"

    Name of the intersection, if applicable to the step.

    " + }, + "SteeringDirection":{ + "shape":"RouteSteeringDirection", + "documentation":"

    Steering direction for the step.

    " + }, + "TurnAngle":{ + "shape":"TurnAngle", + "documentation":"

    Angle of the turn.

    " + }, + "TurnIntensity":{ + "shape":"RouteTurnIntensity", + "documentation":"

    Intensity of the turn.

    " + } + }, + "documentation":"

    Details about the roundabout leg.

    " + }, + "RouteRoundaboutExitStepDetails":{ + "type":"structure", + "required":["Intersection"], + "members":{ + "Intersection":{ + "shape":"LocalizedStringList", + "documentation":"

    Name of the intersection, if applicable to the step.

    " + }, + "RelativeExit":{ + "shape":"RouteRoundaboutExitStepDetailsRelativeExitInteger", + "documentation":"

    Exit to be taken.

    " + }, + "RoundaboutAngle":{ + "shape":"RoundaboutAngle", + "documentation":"

    Angle of the roundabout.

    " + }, + "SteeringDirection":{ + "shape":"RouteSteeringDirection", + "documentation":"

    Steering direction for the step.

    " + } + }, + "documentation":"

    Details about the roundabout step.

    " + }, + "RouteRoundaboutExitStepDetailsRelativeExitInteger":{ + "type":"integer", + "box":true, + "max":12, + "min":1, + "sensitive":true + }, + "RouteRoundaboutPassStepDetails":{ + "type":"structure", + "required":["Intersection"], + "members":{ + "Intersection":{ + "shape":"LocalizedStringList", + "documentation":"

    Name of the intersection, if applicable to the step.

    " + }, + "SteeringDirection":{ + "shape":"RouteSteeringDirection", + "documentation":"

    Steering direction for the step.

    " + }, + "TurnAngle":{ + "shape":"TurnAngle", + "documentation":"

    Angle of the turn.

    " + }, + "TurnIntensity":{ + "shape":"RouteTurnIntensity", + "documentation":"

    Intensity of the turn.

    " + } + }, + "documentation":"

    Details about the step.

    " + }, + "RouteScooterOptions":{ + "type":"structure", + "members":{ + "EngineType":{ + "shape":"RouteEngineType", + "documentation":"

    Engine type of the vehicle. Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " + }, + "LicensePlate":{ + "shape":"RouteVehicleLicensePlate", + "documentation":"

    The vehicle License Plate.

    " + }, + "MaxSpeed":{ + "shape":"RouteScooterOptionsMaxSpeedDouble", + "documentation":"

    Maximum speed Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    Unit: kilometers per hour

    ", + "box":true + }, + "Occupancy":{ + "shape":"RouteScooterOptionsOccupancyInteger", + "documentation":"

    The number of occupants in the vehicle. Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    Default value: 1

    " + } + }, + "documentation":"

    Travel mode options when the provided travel mode is Scooter. For GrabMaps customers, ap-southeast-1 and ap-southeast-5 regions support only LicensePlate options.

    " + }, + "RouteScooterOptionsMaxSpeedDouble":{ + "type":"double", + "max":252.0, + "min":3.6, + "sensitive":true + }, + "RouteScooterOptionsOccupancyInteger":{ + "type":"integer", + "box":true, + "min":1, + "sensitive":true + }, + "RouteSideOfStreet":{ + "type":"string", + "enum":[ + "Left", + "Right" + ], + "sensitive":true + }, + "RouteSideOfStreetOptions":{ + "type":"structure", + "required":["Position"], + "members":{ + "Position":{ + "shape":"Position", + "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + }, + "UseWith":{ + "shape":"SideOfStreetMatchingStrategy", + "documentation":"

    Strategy that defines when the side of street position should be used.

    Default value: DividedStreetOnly

    " + } + }, + "documentation":"

    Options to configure matching the provided position to a side of the street.

    " + }, + "RouteSignpost":{ + "type":"structure", + "required":["Labels"], + "members":{ + "Labels":{ + "shape":"RouteSignpostLabelList", + "documentation":"

    Labels present on the sign post.

    " + } + }, + "documentation":"

    Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

    " + }, + "RouteSignpostLabel":{ + "type":"structure", + "members":{ + "RouteNumber":{ + "shape":"RouteNumber", + "documentation":"

    Route number of the road.

    " + }, + "Text":{ + "shape":"LocalizedString", + "documentation":"

    The Signpost text.

    " + } + }, + "documentation":"

    Labels presented on the sign post.

    " + }, + "RouteSignpostLabelList":{ + "type":"list", + "member":{"shape":"RouteSignpostLabel"} + }, + "RouteSpanAdditionalFeature":{ + "type":"string", + "enum":[ + "BestCaseDuration", + "CarAccess", "Country", "Distance", "Duration", @@ -4356,6 +5102,24 @@ "max":3, "min":0 }, + "RouteStationDetails":{ + "type":"structure", + "members":{ + "Accessibility":{ + "shape":"RouteAccessibilityAvailabilityDetails", + "documentation":"

    Wheelchair accessibility information for the station.

    " + }, + "PlatformName":{ + "shape":"SensitiveString", + "documentation":"

    Platform name or number.

    " + }, + "ShortName":{ + "shape":"SensitiveString", + "documentation":"

    Short text or a number that identifies the station.

    " + } + }, + "documentation":"

    Details about the station.

    " + }, "RouteSteeringDirection":{ "type":"string", "enum":[ @@ -4383,399 +5147,1542 @@ }, "documentation":"

    Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

    " }, - "RouteToll":{ + "RouteTaxiAfterTravelStep":{ "type":"structure", "required":[ - "PaymentSites", - "Rates", + "Duration", + "Type" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "Type":{ + "shape":"RouteTaxiAfterTravelStepType", + "documentation":"

    Type of the step.

    " + } + }, + "documentation":"

    A step that must be performed after the travel portion of the leg.

    " + }, + "RouteTaxiAfterTravelStepList":{ + "type":"list", + "member":{"shape":"RouteTaxiAfterTravelStep"} + }, + "RouteTaxiAfterTravelStepType":{ + "type":"string", + "enum":["Park"], + "sensitive":true + }, + "RouteTaxiAgency":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"SensitiveString", + "documentation":"

    Name of the agency.

    " + }, + "Url":{ + "shape":"SensitiveString", + "documentation":"

    URL to the agency's website.

    " + } + }, + "documentation":"

    Details about the taxi agency.

    " + }, + "RouteTaxiArrival":{ + "type":"structure", + "required":["Place"], + "members":{ + "Place":{ + "shape":"RouteTaxiPlace", + "documentation":"

    Place details corresponding to the arrival.

    " + }, + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The arrival time.

    " + } + }, + "documentation":"

    Details corresponding to the arrival for the leg.

    " + }, + "RouteTaxiBeforeTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "Type":{ + "shape":"RouteTaxiBeforeTravelStepType", + "documentation":"

    Type of the step.

    " + } + }, + "documentation":"

    A step that must be performed before the travel portion of the leg.

    " + }, + "RouteTaxiBeforeTravelStepList":{ + "type":"list", + "member":{"shape":"RouteTaxiBeforeTravelStep"} + }, + "RouteTaxiBeforeTravelStepType":{ + "type":"string", + "enum":["Wait"], + "sensitive":true + }, + "RouteTaxiDeparture":{ + "type":"structure", + "required":["Place"], + "members":{ + "Place":{ + "shape":"RouteTaxiPlace", + "documentation":"

    Place details corresponding to the departure.

    " + }, + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The departure time.

    " + } + }, + "documentation":"

    Details corresponding to the departure for the leg.

    " + }, + "RouteTaxiLegDetails":{ + "type":"structure", + "required":[ + "AfterTravelSteps", + "Agency", + "Arrival", + "Attributions", + "BeforeTravelSteps", + "BookingWebLinks", + "Departure", + "Notices", + "Transport", + "TravelSteps" + ], + "members":{ + "AfterTravelSteps":{ + "shape":"RouteTaxiAfterTravelStepList", + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " + }, + "Agency":{ + "shape":"RouteTaxiAgency", + "documentation":"

    Details about the taxi agency.

    " + }, + "Arrival":{ + "shape":"RouteTaxiArrival", + "documentation":"

    Details corresponding to the arrival for the leg.

    " + }, + "Attributions":{ + "shape":"RouteAttributionList", + "documentation":"

    List of required attributions to display.

    " + }, + "BeforeTravelSteps":{ + "shape":"RouteTaxiBeforeTravelStepList", + "documentation":"

    Steps of a leg that must be performed before the travel portion of the leg.

    " + }, + "BookingWebLinks":{ + "shape":"RouteWebLinkList", + "documentation":"

    Web links to external ticket booking services for the taxi.

    " + }, + "Departure":{ + "shape":"RouteTaxiDeparture", + "documentation":"

    Details corresponding to the departure for the leg.

    " + }, + "Notices":{ + "shape":"RouteTaxiNoticeList", + "documentation":"

    List of notices that indicate issues that occurred during route calculation.

    " + }, + "Summary":{ + "shape":"RouteTaxiSummary", + "documentation":"

    Summary of the taxi leg.

    " + }, + "Transport":{ + "shape":"RouteTaxiTransportModeDetails", + "documentation":"

    Transport mode details for the taxi leg.

    " + }, + "TravelSteps":{ + "shape":"RouteTaxiTravelStepList", + "documentation":"

    Steps of a leg that must be performed during the travel portion of the leg.

    " + } + }, + "documentation":"

    Populated when the Leg type is Taxi, and provides additional information that is specific to taxi travel.

    " + }, + "RouteTaxiMode":{ + "type":"string", + "enum":[ + "All", + "Car" + ], + "sensitive":true + }, + "RouteTaxiModeList":{ + "type":"list", + "member":{"shape":"RouteTaxiMode"}, + "max":1, + "min":1 + }, + "RouteTaxiNotice":{ + "type":"structure", + "required":["Code"], + "members":{ + "Code":{ + "shape":"RouteTaxiNoticeCode", + "documentation":"

    Code corresponding to the issue.

    " + }, + "Impact":{ + "shape":"RouteNoticeImpact", + "documentation":"

    Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

    " + } + }, + "documentation":"

    A notice that indicates an issue that occurred during route calculation.

    " + }, + "RouteTaxiNoticeCode":{ + "type":"string", + "enum":[ + "AccuratePolylineUnavailable", + "Other" + ] + }, + "RouteTaxiNoticeList":{ + "type":"list", + "member":{"shape":"RouteTaxiNotice"} + }, + "RouteTaxiOverviewSummary":{ + "type":"structure", + "required":[ + "Duration", + "Distance" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the entire leg.

    Unit: seconds

    ", + "box":true + }, + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the entire leg.

    Unit: meters

    ", + "box":true + } + }, + "documentation":"

    Summary including duration and distance for the entire leg.

    " + }, + "RouteTaxiPlace":{ + "type":"structure", + "required":["Position"], + "members":{ + "AccessPointDetails":{ + "shape":"RouteAccessPointDetails", + "documentation":"

    Details of the access point.

    " + }, + "Name":{ + "shape":"SensitiveString", + "documentation":"

    The name of the place.

    " + }, + "OriginalPosition":{ + "shape":"Position23", + "documentation":"

    Position provided in the request.

    " + }, + "Position":{ + "shape":"Position23", + "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + }, + "StationDetails":{ + "shape":"RouteStationDetails", + "documentation":"

    Details about the station.

    " + }, + "Type":{ + "shape":"RouteTaxiPlaceType", + "documentation":"

    The type of the place.

    " + }, + "WaypointIndex":{ + "shape":"RouteTaxiPlaceWaypointIndexInteger", + "documentation":"

    Index of the waypoint in the request.

    " + } + }, + "documentation":"

    Place details corresponding to the arrival or departure.

    " + }, + "RouteTaxiPlaceType":{ + "type":"string", + "enum":[ + "AccessPoint", + "Station" + ], + "sensitive":true + }, + "RouteTaxiPlaceWaypointIndexInteger":{ + "type":"integer", + "box":true, + "min":0, + "sensitive":true + }, + "RouteTaxiSummary":{ + "type":"structure", + "members":{ + "Overview":{ + "shape":"RouteTaxiOverviewSummary", + "documentation":"

    Summary including duration and distance for the entire leg.

    " + }, + "TravelOnly":{ + "shape":"RouteTaxiTravelOnlySummary", + "documentation":"

    Summary including duration and distance for the travel portion of the leg only.

    " + } + }, + "documentation":"

    Summary of the taxi leg.

    " + }, + "RouteTaxiTransportModeDetails":{ + "type":"structure", + "required":["Mode"], + "members":{ + "AvailableSeats":{ + "shape":"RouteTaxiTransportModeDetailsAvailableSeatsInteger", + "documentation":"

    Number of available seats in the vehicle.

    " + }, + "Category":{ + "shape":"SensitiveString", + "documentation":"

    Human readable transport category.

    " + }, + "Color":{ + "shape":"SensitiveString", + "documentation":"

    Color of the transport polyline and background for the transport name.

    " + }, + "Engine":{ + "shape":"RouteEngineType", + "documentation":"

    Vehicle engine type.

    " + }, + "LicensePlate":{ + "shape":"SensitiveString", + "documentation":"

    Vehicle license plate number.

    " + }, + "Mode":{ + "shape":"RouteTaxiMode", + "documentation":"

    Mode of the taxi transport.

    " + }, + "Model":{ + "shape":"SensitiveString", + "documentation":"

    Vehicle model.

    " + }, + "Name":{ + "shape":"SensitiveString", + "documentation":"

    Vehicle name or mobility provider name.

    " + }, + "TextColor":{ + "shape":"SensitiveString", + "documentation":"

    Color of the transport name text.

    " + } + }, + "documentation":"

    Transport mode details for the taxi leg.

    " + }, + "RouteTaxiTransportModeDetailsAvailableSeatsInteger":{ + "type":"integer", + "box":true, + "min":0, + "sensitive":true + }, + "RouteTaxiTravelOnlySummary":{ + "type":"structure", + "required":["Duration"], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the travel portion of the taxi leg.

    Unit: seconds

    ", + "box":true + } + }, + "documentation":"

    Summary including duration and distance for the travel portion of the leg only.

    " + }, + "RouteTaxiTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "ContinueStepDetails":{"shape":"RouteContinueStepDetails"}, + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the step.

    Unit: meters

    ", + "box":true + }, + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "ExitStepDetails":{"shape":"RouteExitStepDetails"}, + "GeometryOffset":{ + "shape":"RouteTaxiTravelStepGeometryOffsetInteger", + "documentation":"

    Offset in the leg geometry corresponding to the start of this step.

    " + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "KeepStepDetails":{"shape":"RouteKeepStepDetails"}, + "RampStepDetails":{"shape":"RouteRampStepDetails"}, + "RoundaboutEnterStepDetails":{"shape":"RouteRoundaboutEnterStepDetails"}, + "RoundaboutExitStepDetails":{"shape":"RouteRoundaboutExitStepDetails"}, + "RoundaboutPassStepDetails":{"shape":"RouteRoundaboutPassStepDetails"}, + "TurnStepDetails":{"shape":"RouteTurnStepDetails"}, + "Type":{ + "shape":"RouteTaxiTravelStepType", + "documentation":"

    Type of the step.

    " + }, + "UTurnStepDetails":{"shape":"RouteUTurnStepDetails"} + }, + "documentation":"

    A step that must be performed during the travel portion of the leg.

    " + }, + "RouteTaxiTravelStepGeometryOffsetInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "RouteTaxiTravelStepList":{ + "type":"list", + "member":{"shape":"RouteTaxiTravelStep"} + }, + "RouteTaxiTravelStepType":{ + "type":"string", + "enum":[ + "Arrive", + "Continue", + "Depart", + "Exit", + "Keep", + "Ramp", + "RoundaboutEnter", + "RoundaboutExit", + "RoundaboutPass", + "Turn", + "UTurn" + ], + "sensitive":true + }, + "RouteToll":{ + "type":"structure", + "required":[ + "PaymentSites", + "Rates", "Systems" ], "members":{ - "Country":{ - "shape":"CountryCode3", - "documentation":"

    The alpha-2 or alpha-3 character code for the country.

    " + "Country":{ + "shape":"CountryCode3", + "documentation":"

    The alpha-2 or alpha-3 character code for the country.

    " + }, + "PaymentSites":{ + "shape":"RouteTollPaymentSiteList", + "documentation":"

    Locations or sites where the toll fare is collected.

    " + }, + "Rates":{ + "shape":"RouteTollRateList", + "documentation":"

    Toll rates that need to be paid to travel this leg of the route.

    " + }, + "Systems":{ + "shape":"IndexList", + "documentation":"

    Toll systems are authorities that collect payments for the toll.

    " + } + }, + "documentation":"

    Provides details about toll information along a route, including the payment sites, applicable toll rates, toll systems, and the country associated with the toll collection.

    " + }, + "RouteTollList":{ + "type":"list", + "member":{"shape":"RouteToll"} + }, + "RouteTollOptions":{ + "type":"structure", + "members":{ + "AllTransponders":{ + "shape":"SensitiveBoolean", + "documentation":"

    Specifies if the user has valid transponder with access to all toll systems. This impacts toll calculation, and if true the price with transponders is used.

    " + }, + "AllVignettes":{ + "shape":"SensitiveBoolean", + "documentation":"

    Specifies if the user has valid vignettes with access for all toll roads. If a user has a vignette for a toll road, then toll cost for that road is omitted since no further payment is necessary.

    " + }, + "Currency":{ + "shape":"CurrencyCode", + "documentation":"

    Currency code corresponding to the price. This is the same as Currency specified in the request.

    " + }, + "EmissionType":{ + "shape":"RouteEmissionType", + "documentation":"

    Emission type of the vehicle for toll cost calculation.

    Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev

    " + }, + "VehicleCategory":{ + "shape":"RouteTollVehicleCategory", + "documentation":"

    Vehicle category for toll cost calculation.

    " + } + }, + "documentation":"

    Options related to Tolls on a route.

    " + }, + "RouteTollPass":{ + "type":"structure", + "members":{ + "IncludesReturnTrip":{ + "shape":"SensitiveBoolean", + "documentation":"

    If the pass includes the rate for the return leg of the trip.

    " + }, + "SeniorPass":{ + "shape":"SensitiveBoolean", + "documentation":"

    If the pass is only valid for senior persons.

    " + }, + "TransferCount":{ + "shape":"RouteTollPassTransferCountInteger", + "documentation":"

    If the toll pass can be transferred, and how many times.

    " + }, + "TripCount":{ + "shape":"RouteTollPassTripCountInteger", + "documentation":"

    Number of trips the pass is valid for.

    " + }, + "ValidityPeriod":{ + "shape":"RouteTollPassValidityPeriod", + "documentation":"

    Period for which the pass is valid.

    " + } + }, + "documentation":"

    Details if the toll rate can be a pass that supports multiple trips.

    " + }, + "RouteTollPassTransferCountInteger":{ + "type":"integer", + "box":true, + "min":0, + "sensitive":true + }, + "RouteTollPassTripCountInteger":{ + "type":"integer", + "box":true, + "min":0, + "sensitive":true + }, + "RouteTollPassValidityPeriod":{ + "type":"structure", + "required":["Period"], + "members":{ + "Period":{ + "shape":"RouteTollPassValidityPeriodType", + "documentation":"

    Validity period.

    " + }, + "PeriodCount":{ + "shape":"RouteTollPassValidityPeriodPeriodCountInteger", + "documentation":"

    Counts for the validity period.

    " + } + }, + "documentation":"

    Period for which the pass is valid.

    " + }, + "RouteTollPassValidityPeriodPeriodCountInteger":{ + "type":"integer", + "box":true, + "min":0, + "sensitive":true + }, + "RouteTollPassValidityPeriodType":{ + "type":"string", + "enum":[ + "Annual", + "Days", + "ExtendedAnnual", + "Minutes", + "Months" + ], + "sensitive":true + }, + "RouteTollPaymentMethod":{ + "type":"string", + "enum":[ + "BankCard", + "Cash", + "CashExact", + "CreditCard", + "PassSubscription", + "TravelCard", + "Transponder", + "VideoToll" + ], + "sensitive":true + }, + "RouteTollPaymentMethodList":{ + "type":"list", + "member":{"shape":"RouteTollPaymentMethod"}, + "max":8, + "min":0 + }, + "RouteTollPaymentSite":{ + "type":"structure", + "required":["Position"], + "members":{ + "Name":{ + "shape":"String", + "documentation":"

    Name of the payment site.

    " + }, + "Position":{ + "shape":"Position23", + "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + } + }, + "documentation":"

    Locations or sites where the toll fare is collected.

    " + }, + "RouteTollPaymentSiteList":{ + "type":"list", + "member":{"shape":"RouteTollPaymentSite"} + }, + "RouteTollPrice":{ + "type":"structure", + "required":[ + "Currency", + "Estimate", + "Range", + "Value" + ], + "members":{ + "Currency":{ + "shape":"CurrencyCode", + "documentation":"

    Currency code corresponding to the price. This is the same as Currency specified in the request.

    " + }, + "Estimate":{ + "shape":"SensitiveBoolean", + "documentation":"

    If the price is an estimate or an exact value.

    " + }, + "PerDuration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration for which the price corresponds to.

    Unit: seconds

    " + }, + "Range":{ + "shape":"SensitiveBoolean", + "documentation":"

    If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

    " + }, + "RangeValue":{ + "shape":"RouteTollPriceValueRange", + "documentation":"

    Price range with a minimum and maximum value, if a range.

    " + }, + "Value":{ + "shape":"RouteTollPriceValueDouble", + "documentation":"

    Exact price, if not a range.

    " + } + }, + "documentation":"

    The toll price.

    " + }, + "RouteTollPriceSummary":{ + "type":"structure", + "required":[ + "Currency", + "Estimate", + "Range", + "Value" + ], + "members":{ + "Currency":{ + "shape":"CurrencyCode", + "documentation":"

    Currency code corresponding to the price. This is the same as Currency specified in the request.

    " + }, + "Estimate":{ + "shape":"SensitiveBoolean", + "documentation":"

    If the price is an estimate or an exact value.

    " + }, + "Range":{ + "shape":"SensitiveBoolean", + "documentation":"

    If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

    " + }, + "RangeValue":{ + "shape":"RouteTollPriceValueRange", + "documentation":"

    Price range with a minimum and maximum value, if a range.

    " + }, + "Value":{ + "shape":"RouteTollPriceSummaryValueDouble", + "documentation":"

    Exact price, if not a range.

    " + } + }, + "documentation":"

    Summary of the route and toll price.

    " + }, + "RouteTollPriceSummaryValueDouble":{ + "type":"double", + "box":true, + "min":0.0, + "sensitive":true + }, + "RouteTollPriceValueDouble":{ + "type":"double", + "box":true, + "min":0.0, + "sensitive":true + }, + "RouteTollPriceValueRange":{ + "type":"structure", + "required":[ + "Min", + "Max" + ], + "members":{ + "Min":{ + "shape":"RouteTollPriceValueRangeMinDouble", + "documentation":"

    Minimum price.

    " + }, + "Max":{ + "shape":"RouteTollPriceValueRangeMaxDouble", + "documentation":"

    Maximum price.

    " + } + }, + "documentation":"

    Price range with a minimum and maximum value, if a range.

    " + }, + "RouteTollPriceValueRangeMaxDouble":{ + "type":"double", + "box":true, + "min":0.0, + "sensitive":true + }, + "RouteTollPriceValueRangeMinDouble":{ + "type":"double", + "box":true, + "min":0.0, + "sensitive":true + }, + "RouteTollRate":{ + "type":"structure", + "required":[ + "Id", + "LocalPrice", + "Name", + "PaymentMethods", + "Transponders" + ], + "members":{ + "ApplicableTimes":{ + "shape":"SensitiveString", + "documentation":"

    Time when the rate is valid.

    " + }, + "ConvertedPrice":{ + "shape":"RouteTollPrice", + "documentation":"

    Price in the converted currency as specified in the request.

    " + }, + "Id":{ + "shape":"SensitiveString", + "documentation":"

    The Toll rate Id.

    " + }, + "LocalPrice":{ + "shape":"RouteTollPrice", + "documentation":"

    Price in the local regional currency.

    " + }, + "Name":{ + "shape":"SensitiveString", + "documentation":"

    The name of the toll.

    " + }, + "Pass":{ + "shape":"RouteTollPass", + "documentation":"

    Details if the toll rate can be a pass that supports multiple trips.

    " + }, + "PaymentMethods":{ + "shape":"RouteTollPaymentMethodList", + "documentation":"

    Accepted payment methods at the toll.

    " + }, + "Transponders":{ + "shape":"RouteTransponderList", + "documentation":"

    Transponders for which this toll can be applied.

    " + } + }, + "documentation":"

    The toll rate.

    " + }, + "RouteTollRateList":{ + "type":"list", + "member":{"shape":"RouteTollRate"} + }, + "RouteTollSummary":{ + "type":"structure", + "members":{ + "Total":{ + "shape":"RouteTollPriceSummary", + "documentation":"

    Total toll summary for the complete route. Total is the only summary available today.

    " + } + }, + "documentation":"

    The toll summary for the complete route.

    " + }, + "RouteTollSystem":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"SensitiveString", + "documentation":"

    The toll system name.

    " + } + }, + "documentation":"

    Toll systems are authorities that collect payments for the toll.

    " + }, + "RouteTollSystemList":{ + "type":"list", + "member":{"shape":"RouteTollSystem"} + }, + "RouteTollVehicleCategory":{ + "type":"string", + "enum":["Minibus"], + "sensitive":true + }, + "RouteTrafficOptions":{ + "type":"structure", + "members":{ + "FlowEventThresholdOverride":{ + "shape":"DurationSeconds", + "documentation":"

    Duration for which flow traffic is considered valid. For this period, the flow traffic is used over historical traffic data. Flow traffic refers to congestion, which changes very quickly. Duration in seconds for which flow traffic event would be considered valid. While flow traffic event is valid it will be used over the historical traffic data.

    " + }, + "Usage":{ + "shape":"TrafficUsage", + "documentation":"

    Specifies how traffic data should be used when calculating routes.

    Default Value: UseTrafficData

    Traffic data usage depends on the time parameters in your route request:

    • When Usage is set to UseTrafficData:

      • If DepartNow is set to true, or if you specify DepartureTime or ArrivalTime, then all traffic data is considered (including live traffic and closures).

      • If DepartNow, DepartureTime, and ArrivalTime are all unspecified, then only long-term closures are considered, regardless of this setting.

    • When Usage is set to IgnoreTrafficData, then all traffic data is ignored regardless of the time parameters in your route request.

    " + } + }, + "documentation":"

    Traffic options for the route.

    " + }, + "RouteTrailerOptions":{ + "type":"structure", + "members":{ + "AxleCount":{ + "shape":"RouteTrailerOptionsAxleCountInteger", + "documentation":"

    Total number of axles of the vehicle.

    " + }, + "TrailerCount":{ + "shape":"RouteTrailerOptionsTrailerCountInteger", + "documentation":"

    Number of trailers attached to the vehicle.

    Default value: 0

    " + } + }, + "documentation":"

    Trailer options corresponding to the vehicle.

    " + }, + "RouteTrailerOptionsAxleCountInteger":{ + "type":"integer", + "box":true, + "min":1, + "sensitive":true + }, + "RouteTrailerOptionsTrailerCountInteger":{ + "type":"integer", + "box":true, + "max":255, + "min":1, + "sensitive":true + }, + "RouteTransitAfterTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true }, - "PaymentSites":{ - "shape":"RouteTollPaymentSiteList", - "documentation":"

    Locations or sites where the toll fare is collected.

    " + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " }, - "Rates":{ - "shape":"RouteTollRateList", - "documentation":"

    Toll rates that need to be paid to travel this leg of the route.

    " + "Type":{ + "shape":"RouteTransitAfterTravelStepType", + "documentation":"

    Type of the step.

    " + } + }, + "documentation":"

    A step that must be performed after the travel portion of the leg.

    " + }, + "RouteTransitAfterTravelStepList":{ + "type":"list", + "member":{"shape":"RouteTransitAfterTravelStep"} + }, + "RouteTransitAfterTravelStepType":{ + "type":"string", + "enum":["Deboard"], + "sensitive":true + }, + "RouteTransitAgency":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"SensitiveString", + "documentation":"

    Name of the agency.

    " }, - "Systems":{ - "shape":"IndexList", - "documentation":"

    Toll systems are authorities that collect payments for the toll.

    " + "Url":{ + "shape":"SensitiveString", + "documentation":"

    URL to the agency's website.

    " } }, - "documentation":"

    Provides details about toll information along a route, including the payment sites, applicable toll rates, toll systems, and the country associated with the toll collection.

    " + "documentation":"

    Details about the transit agency.

    " }, - "RouteTollList":{ + "RouteTransitArrival":{ + "type":"structure", + "required":["Place"], + "members":{ + "Delay":{ + "shape":"DurationSeconds", + "documentation":"

    The delay from the scheduled arrival time.

    Unit: seconds

    ", + "box":true + }, + "Place":{ + "shape":"RouteTransitPlace", + "documentation":"

    Place details corresponding to the arrival.

    " + }, + "Status":{ + "shape":"RouteTransitTripStatus", + "documentation":"

    The status of the arrival.

    " + }, + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The arrival time.

    " + } + }, + "documentation":"

    Details corresponding to the arrival for the leg.

    " + }, + "RouteTransitBeforeTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "Type":{ + "shape":"RouteTransitBeforeTravelStepType", + "documentation":"

    Type of the step.

    " + } + }, + "documentation":"

    A step that must be performed before the travel portion of the leg.

    " + }, + "RouteTransitBeforeTravelStepList":{ + "type":"list", + "member":{"shape":"RouteTransitBeforeTravelStep"} + }, + "RouteTransitBeforeTravelStepType":{ + "type":"string", + "enum":["Board"], + "sensitive":true + }, + "RouteTransitDeparture":{ + "type":"structure", + "required":["Place"], + "members":{ + "Delay":{ + "shape":"DurationSeconds", + "documentation":"

    The delay from the scheduled departure time.

    Unit: seconds

    ", + "box":true + }, + "Place":{ + "shape":"RouteTransitPlace", + "documentation":"

    Place details corresponding to the departure.

    " + }, + "Status":{ + "shape":"RouteTransitTripStatus", + "documentation":"

    The status of the departure.

    " + }, + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The departure time.

    " + } + }, + "documentation":"

    Details corresponding to the departure for the leg.

    " + }, + "RouteTransitIncident":{ + "type":"structure", + "required":[ + "Effect", + "Type" + ], + "members":{ + "Description":{ + "shape":"SensitiveString", + "documentation":"

    A human readable description of the incident.

    " + }, + "Effect":{ + "shape":"RouteTransitIncidentEffect", + "documentation":"

    The effect of the incident on the transit service.

    " + }, + "EndTime":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The end time of the incident.

    " + }, + "StartTime":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The start time of the incident.

    " + }, + "Type":{ + "shape":"RouteTransitIncidentType", + "documentation":"

    Type of the incident.

    " + }, + "Url":{ + "shape":"SensitiveString", + "documentation":"

    URL to the original incident published at the agency website.

    " + } + }, + "documentation":"

    An incident describes disruptions on the transit route.

    " + }, + "RouteTransitIncidentEffect":{ + "type":"string", + "enum":[ + "Delayed", + "Detoured", + "Other", + "ServiceAdded", + "ServiceCancelled", + "ServiceModified", + "ServiceReduced", + "StopMoved" + ], + "sensitive":true + }, + "RouteTransitIncidentList":{ + "type":"list", + "member":{"shape":"RouteTransitIncident"} + }, + "RouteTransitIncidentType":{ + "type":"string", + "enum":[ + "Accident", + "Construction", + "Demonstration", + "Holiday", + "Maintenance", + "MedicalEmergency", + "Other", + "PoliceActivity", + "Strike", + "TechnicalProblem", + "Weather" + ], + "sensitive":true + }, + "RouteTransitIntermediateStop":{ + "type":"structure", + "required":[ + "Departure", + "Duration" + ], + "members":{ + "Attributes":{ + "shape":"RouteTransitIntermediateStopAttributeList", + "documentation":"

    Attributes of the intermediate stop.

    " + }, + "Departure":{ + "shape":"RouteTransitDeparture", + "documentation":"

    Departure details for the intermediate stop.

    " + }, + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the stop.

    Unit: seconds

    ", + "box":true + }, + "GeometryOffset":{ + "shape":"RouteTransitIntermediateStopGeometryOffsetInteger", + "documentation":"

    Offset in the leg geometry corresponding to the start of this stop.

    " + }, + "Transport":{ + "shape":"RouteTransitTransportModeDetails", + "documentation":"

    Transport mode details at the intermediate stop.

    " + } + }, + "documentation":"

    An intermediate stop between departure and destination of the transit route.

    " + }, + "RouteTransitIntermediateStopAttribute":{ + "type":"string", + "enum":[ + "NoEntry", + "NoExit" + ], + "sensitive":true + }, + "RouteTransitIntermediateStopAttributeList":{ + "type":"list", + "member":{"shape":"RouteTransitIntermediateStopAttribute"}, + "max":2, + "min":0 + }, + "RouteTransitIntermediateStopGeometryOffsetInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "RouteTransitIntermediateStopList":{ "type":"list", - "member":{"shape":"RouteToll"} + "member":{"shape":"RouteTransitIntermediateStop"} }, - "RouteTollOptions":{ + "RouteTransitLegDetails":{ "type":"structure", + "required":[ + "AfterTravelSteps", + "Arrival", + "Attributions", + "BeforeTravelSteps", + "BookingWebLinks", + "Departure", + "Incidents", + "IntermediateStops", + "NextDepartures", + "Notices", + "PassThroughWaypoints", + "Spans", + "Transport", + "TravelSteps" + ], "members":{ - "AllTransponders":{ - "shape":"SensitiveBoolean", - "documentation":"

    Specifies if the user has valid transponder with access to all toll systems. This impacts toll calculation, and if true the price with transponders is used.

    " + "AfterTravelSteps":{ + "shape":"RouteTransitAfterTravelStepList", + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " }, - "AllVignettes":{ - "shape":"SensitiveBoolean", - "documentation":"

    Specifies if the user has valid vignettes with access for all toll roads. If a user has a vignette for a toll road, then toll cost for that road is omitted since no further payment is necessary.

    " + "Agency":{ + "shape":"RouteTransitAgency", + "documentation":"

    Details about the transit agency.

    " }, - "Currency":{ - "shape":"CurrencyCode", - "documentation":"

    Currency code corresponding to the price. This is the same as Currency specified in the request.

    " + "Arrival":{ + "shape":"RouteTransitArrival", + "documentation":"

    Details corresponding to the arrival for the leg.

    " }, - "EmissionType":{ - "shape":"RouteEmissionType", - "documentation":"

    Emission type of the vehicle for toll cost calculation.

    Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev

    " + "Attributions":{ + "shape":"RouteAttributionList", + "documentation":"

    List of required attributions to display.

    " }, - "VehicleCategory":{ - "shape":"RouteTollVehicleCategory", - "documentation":"

    Vehicle category for toll cost calculation.

    " + "BeforeTravelSteps":{ + "shape":"RouteTransitBeforeTravelStepList", + "documentation":"

    Steps of a leg that must be performed before the travel portion of the leg.

    " + }, + "BookingWebLinks":{ + "shape":"RouteWebLinkList", + "documentation":"

    Web links to external ticket booking services for the transit.

    " + }, + "Departure":{ + "shape":"RouteTransitDeparture", + "documentation":"

    Details corresponding to the departure for the leg.

    " + }, + "Incidents":{ + "shape":"RouteTransitIncidentList", + "documentation":"

    Incidents affecting this leg of the transit route.

    " + }, + "IntermediateStops":{ + "shape":"RouteTransitIntermediateStopList", + "documentation":"

    Intermediate stops between departure and destination of the transit route.

    " + }, + "NextDepartures":{ + "shape":"RouteTransitNextDepartureList", + "documentation":"

    List of next departures that cover the same section of the route.

    " + }, + "Notices":{ + "shape":"RouteTransitNoticeList", + "documentation":"

    List of notices that indicate issues that occurred during route calculation.

    " + }, + "PassThroughWaypoints":{ + "shape":"RoutePassThroughWaypointList", + "documentation":"

    Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option. Not populated when the TravelMode is Transit or Intermodal.

    " + }, + "Spans":{ + "shape":"RouteTransitSpanList", + "documentation":"

    Spans that were computed for the requested SpanAdditionalFeatures. Not populated when the TravelMode is Transit or Intermodal.

    " + }, + "Summary":{ + "shape":"RouteTransitSummary", + "documentation":"

    Summary of the transit leg.

    " + }, + "Transport":{ + "shape":"RouteTransitTransportModeDetails", + "documentation":"

    Transport mode details for the transit leg.

    " + }, + "TravelSteps":{ + "shape":"RouteTransitTravelStepList", + "documentation":"

    Steps of a leg that must be performed during the travel portion of the leg.

    " } }, - "documentation":"

    Options related to Tolls on a route.

    " + "documentation":"

    Populated when the Leg type is Transit, and provides additional information that is specific to public transit travel.

    " }, - "RouteTollPass":{ + "RouteTransitMode":{ + "type":"string", + "enum":[ + "AerialTramway", + "Airplane", + "All", + "Bus", + "BusRapidTransit", + "CityTrain", + "Ferry", + "FunicularRailway", + "HighSpeedTrain", + "IntercityTrain", + "InterregionalTrain", + "LightRail", + "Monorail", + "PrivateBus", + "RegionalTrain", + "Subway" + ], + "sensitive":true + }, + "RouteTransitModeList":{ + "type":"list", + "member":{"shape":"RouteTransitMode"}, + "max":15, + "min":1 + }, + "RouteTransitNextDeparture":{ "type":"structure", + "required":["Time"], "members":{ - "IncludesReturnTrip":{ - "shape":"SensitiveBoolean", - "documentation":"

    If the pass includes the rate for the return leg of the trip.

    " + "Delay":{ + "shape":"DurationSeconds", + "documentation":"

    The delay from the scheduled departure time.

    Unit: seconds

    ", + "box":true }, - "SeniorPass":{ - "shape":"SensitiveBoolean", - "documentation":"

    If the pass is only valid for senior persons.

    " + "PlatformName":{ + "shape":"SensitiveString", + "documentation":"

    Platform name or number for the departure.

    " }, - "TransferCount":{ - "shape":"RouteTollPassTransferCountInteger", - "documentation":"

    If the toll pass can be transferred, and how many times.

    " + "Status":{ + "shape":"RouteTransitTripStatus", + "documentation":"

    The status of the departure.

    " }, - "TripCount":{ - "shape":"RouteTollPassTripCountInteger", - "documentation":"

    Number of trips the pass is valid for.

    " + "Time":{ + "shape":"TimestampWithTimezoneOffset", + "documentation":"

    The departure time.

    " }, - "ValidityPeriod":{ - "shape":"RouteTollPassValidityPeriod", - "documentation":"

    Period for which the pass is valid.

    " + "Transport":{ + "shape":"RouteTransitTransportModeDetails", + "documentation":"

    Transport mode details for this departure.

    " } }, - "documentation":"

    Details if the toll rate can be a pass that supports multiple trips.

    " - }, - "RouteTollPassTransferCountInteger":{ - "type":"integer", - "box":true, - "min":0, - "sensitive":true + "documentation":"

    Details about the next available departure for the transit service.

    " }, - "RouteTollPassTripCountInteger":{ - "type":"integer", - "box":true, - "min":0, - "sensitive":true + "RouteTransitNextDepartureList":{ + "type":"list", + "member":{"shape":"RouteTransitNextDeparture"} }, - "RouteTollPassValidityPeriod":{ + "RouteTransitNotice":{ "type":"structure", - "required":["Period"], + "required":["Code"], "members":{ - "Period":{ - "shape":"RouteTollPassValidityPeriodType", - "documentation":"

    Validity period.

    " + "Code":{ + "shape":"RouteTransitNoticeCode", + "documentation":"

    Code corresponding to the issue.

    " }, - "PeriodCount":{ - "shape":"RouteTollPassValidityPeriodPeriodCountInteger", - "documentation":"

    Counts for the validity period.

    " + "Impact":{ + "shape":"RouteNoticeImpact", + "documentation":"

    Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

    " } }, - "documentation":"

    Period for which the pass is valid.

    " - }, - "RouteTollPassValidityPeriodPeriodCountInteger":{ - "type":"integer", - "box":true, - "min":0, - "sensitive":true - }, - "RouteTollPassValidityPeriodType":{ - "type":"string", - "enum":[ - "Annual", - "Days", - "ExtendedAnnual", - "Minutes", - "Months" - ], - "sensitive":true + "documentation":"

    A notice that indicates an issue that occurred during route calculation.

    " }, - "RouteTollPaymentMethod":{ + "RouteTransitNoticeCode":{ "type":"string", "enum":[ - "BankCard", - "Cash", - "CashExact", - "CreditCard", - "PassSubscription", - "TravelCard", - "Transponder", - "VideoToll" - ], - "sensitive":true + "AccuratePolylineUnavailable", + "IntermediateStopsUnavailable", + "NoSchedule", + "Other", + "PotentialViolatedVehicleRestrictionUsage", + "ScheduledTimes", + "SeasonalClosure", + "ViolatedAvoidFerry", + "ViolatedAvoidRailFerry", + "ViolatedExcludedTransitMode", + "ViolatedVehicleRestriction", + "ViolatedAvoidAreas" + ] }, - "RouteTollPaymentMethodList":{ + "RouteTransitNoticeList":{ "type":"list", - "member":{"shape":"RouteTollPaymentMethod"}, - "max":8, - "min":0 + "member":{"shape":"RouteTransitNotice"} }, - "RouteTollPaymentSite":{ + "RouteTransitOptions":{ "type":"structure", - "required":["Position"], "members":{ - "Name":{ - "shape":"String", - "documentation":"

    Name of the payment site.

    " + "AccessibilityAttributes":{ + "shape":"RouteAccessibilityAttributeList", + "documentation":"

    Accessibility attributes to consider when calculating the route.

    " }, - "Position":{ - "shape":"Position23", - "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + "AllowedModes":{ + "shape":"RouteTransitModeList", + "documentation":"

    Allowed transit transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with ExcludedModes.

    " + }, + "ExcludedModes":{ + "shape":"RouteTransitModeList", + "documentation":"

    Excluded transit transport modes when calculating the route. By default, all transport modes are allowed. Cannot be used together with AllowedModes.

    " + }, + "MaxTransfers":{ + "shape":"RouteTransitOptionsMaxTransfersInteger", + "documentation":"

    Maximum number of transfers allowed when calculating the route.

    " + }, + "Pedestrian":{ + "shape":"RouteTransitPedestrianOptions", + "documentation":"

    Options for the pedestrian leg of the transit route.

    " } }, - "documentation":"

    Locations or sites where the toll fare is collected.

    " + "documentation":"

    Options related to transit routing.

    Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " }, - "RouteTollPaymentSiteList":{ - "type":"list", - "member":{"shape":"RouteTollPaymentSite"} + "RouteTransitOptionsMaxTransfersInteger":{ + "type":"integer", + "box":true, + "max":6, + "min":0 }, - "RouteTollPrice":{ + "RouteTransitOverviewSummary":{ "type":"structure", "required":[ - "Currency", - "Estimate", - "Range", - "Value" + "Distance", + "Duration" ], "members":{ - "Currency":{ - "shape":"CurrencyCode", - "documentation":"

    Currency code corresponding to the price. This is the same as Currency specified in the request.

    " - }, - "Estimate":{ - "shape":"SensitiveBoolean", - "documentation":"

    If the price is an estimate or an exact value.

    " + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the entire leg.

    Unit: meters

    ", + "box":true }, - "PerDuration":{ + "Duration":{ "shape":"DurationSeconds", - "documentation":"

    Duration for which the price corresponds to.

    Unit: seconds

    " - }, - "Range":{ - "shape":"SensitiveBoolean", - "documentation":"

    If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

    " - }, - "RangeValue":{ - "shape":"RouteTollPriceValueRange", - "documentation":"

    Price range with a minimum and maximum value, if a range.

    " - }, - "Value":{ - "shape":"RouteTollPriceValueDouble", - "documentation":"

    Exact price, if not a range.

    " + "documentation":"

    Duration of the entire leg.

    Unit: seconds

    ", + "box":true } }, - "documentation":"

    The toll price.

    " + "documentation":"

    Summary including duration and distance for the entire leg.

    " }, - "RouteTollPriceSummary":{ + "RouteTransitPedestrianOptions":{ "type":"structure", - "required":[ - "Currency", - "Estimate", - "Range", - "Value" - ], "members":{ - "Currency":{ - "shape":"CurrencyCode", - "documentation":"

    Currency code corresponding to the price. This is the same as Currency specified in the request.

    " - }, - "Estimate":{ - "shape":"SensitiveBoolean", - "documentation":"

    If the price is an estimate or an exact value.

    " - }, - "Range":{ - "shape":"SensitiveBoolean", - "documentation":"

    If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

    " - }, - "RangeValue":{ - "shape":"RouteTollPriceValueRange", - "documentation":"

    Price range with a minimum and maximum value, if a range.

    " + "MaxDistance":{ + "shape":"RouteTransitPedestrianOptionsMaxDistanceLong", + "documentation":"

    Maximum walking distance allowed.

    Unit: meters

    ", + "box":true }, - "Value":{ - "shape":"RouteTollPriceSummaryValueDouble", - "documentation":"

    Exact price, if not a range.

    " + "Speed":{ + "shape":"RouteTransitPedestrianOptionsSpeedDouble", + "documentation":"

    Walking speed.

    Unit: kilometers per hour

    ", + "box":true } }, - "documentation":"

    Summary of the route and toll price.

    " + "documentation":"

    Options for the pedestrian leg of the transit route.

    " }, - "RouteTollPriceSummaryValueDouble":{ - "type":"double", - "box":true, - "min":0.0, + "RouteTransitPedestrianOptionsMaxDistanceLong":{ + "type":"long", + "max":6000, "sensitive":true }, - "RouteTollPriceValueDouble":{ + "RouteTransitPedestrianOptionsSpeedDouble":{ "type":"double", - "box":true, - "min":0.0, + "max":7.2, + "min":1.8, "sensitive":true }, - "RouteTollPriceValueRange":{ + "RouteTransitPlace":{ "type":"structure", - "required":[ - "Min", - "Max" - ], + "required":["Position"], "members":{ - "Min":{ - "shape":"RouteTollPriceValueRangeMinDouble", - "documentation":"

    Minimum price.

    " + "Name":{ + "shape":"SensitiveString", + "documentation":"

    The name of the place.

    " }, - "Max":{ - "shape":"RouteTollPriceValueRangeMaxDouble", - "documentation":"

    Maximum price.

    " + "OriginalPosition":{ + "shape":"Position23", + "documentation":"

    Position provided in the request.

    " + }, + "Position":{ + "shape":"Position23", + "documentation":"

    Position in World Geodetic System (WGS 84) format: [longitude, latitude].

    " + }, + "StationDetails":{ + "shape":"RouteStationDetails", + "documentation":"

    Details about the station.

    " + }, + "Type":{ + "shape":"RouteTransitPlaceType", + "documentation":"

    The type of the place.

    " + }, + "WaypointIndex":{ + "shape":"RouteTransitPlaceWaypointIndexInteger", + "documentation":"

    Index of the waypoint in the request.

    " } }, - "documentation":"

    Price range with a minimum and maximum value, if a range.

    " + "documentation":"

    Place details corresponding to the arrival or departure.

    " }, - "RouteTollPriceValueRangeMaxDouble":{ - "type":"double", - "box":true, - "min":0.0, + "RouteTransitPlaceType":{ + "type":"string", + "enum":["Station"], "sensitive":true }, - "RouteTollPriceValueRangeMinDouble":{ - "type":"double", + "RouteTransitPlaceWaypointIndexInteger":{ + "type":"integer", "box":true, - "min":0.0, + "min":0, "sensitive":true }, - "RouteTollRate":{ + "RouteTransitSpan":{ "type":"structure", - "required":[ - "Id", - "LocalPrice", - "Name", - "PaymentMethods", - "Transponders" - ], "members":{ - "ApplicableTimes":{ - "shape":"SensitiveString", - "documentation":"

    Time when the rate is valid.

    " - }, - "ConvertedPrice":{ - "shape":"RouteTollPrice", - "documentation":"

    Price in the converted currency as specified in the request.

    " - }, - "Id":{ - "shape":"SensitiveString", - "documentation":"

    The Toll rate Id.

    " + "Country":{ + "shape":"CountryCode3", + "documentation":"

    3 letter Country code corresponding to the Span.

    " }, - "LocalPrice":{ - "shape":"RouteTollPrice", - "documentation":"

    Price in the local regional currency.

    " + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

    Unit: meters

    ", + "box":true }, - "Name":{ - "shape":"SensitiveString", - "documentation":"

    The name of the toll.

    " + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

    Unit: seconds

    ", + "box":true }, - "Pass":{ - "shape":"RouteTollPass", - "documentation":"

    Details if the toll rate can be a pass that supports multiple trips.

    " + "GeometryOffset":{ + "shape":"RouteTransitSpanGeometryOffsetInteger", + "documentation":"

    Offset in the leg geometry corresponding to the start of this span.

    " }, - "PaymentMethods":{ - "shape":"RouteTollPaymentMethodList", - "documentation":"

    Accepted payment methods at the toll.

    " + "Names":{ + "shape":"LocalizedStringList", + "documentation":"

    Names of the transit span in available languages.

    " }, - "Transponders":{ - "shape":"RouteTransponderList", - "documentation":"

    Transponders for which this toll can be applied.

    " + "Region":{ + "shape":"RouteTransitSpanRegionString", + "documentation":"

    2-3 letter Region code corresponding to the Span. This is either a province or a state.

    " } }, - "documentation":"

    The toll rate.

    " + "documentation":"

    Span computed for the requested SpanAdditionalFeatures.

    " }, - "RouteTollRateList":{ + "RouteTransitSpanGeometryOffsetInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "RouteTransitSpanList":{ "type":"list", - "member":{"shape":"RouteTollRate"} + "member":{"shape":"RouteTransitSpan"} }, - "RouteTollSummary":{ + "RouteTransitSpanRegionString":{ + "type":"string", + "max":3, + "min":0, + "sensitive":true + }, + "RouteTransitSummary":{ "type":"structure", "members":{ - "Total":{ - "shape":"RouteTollPriceSummary", - "documentation":"

    Total toll summary for the complete route. Total is the only summary available today.

    " + "Overview":{ + "shape":"RouteTransitOverviewSummary", + "documentation":"

    Summary including duration and distance for the entire leg.

    " + }, + "TravelOnly":{ + "shape":"RouteTransitTravelOnlySummary", + "documentation":"

    Summary including duration and distance for the travel portion of the leg only.

    " } }, - "documentation":"

    The toll summary for the complete route.

    " + "documentation":"

    Summary of the transit leg.

    " }, - "RouteTollSystem":{ + "RouteTransitTransportModeDetails":{ "type":"structure", + "required":["Mode"], "members":{ - "Name":{ + "Accessibility":{ + "shape":"RouteAccessibilityAvailabilityDetails", + "documentation":"

    Wheelchair accessibility information for the transit vehicle.

    " + }, + "Color":{ + "shape":"HexColor", + "documentation":"

    Color of the transport polyline and background for the transport name.

    " + }, + "Headsign":{ "shape":"SensitiveString", - "documentation":"

    The toll system name.

    " + "documentation":"

    Transit route headsign.

    " + }, + "LongRouteName":{ + "shape":"SensitiveString", + "documentation":"

    Long name of the transit route.

    " + }, + "Mode":{ + "shape":"RouteTransitMode", + "documentation":"

    Mode of the transit transport.

    " + }, + "RouteName":{ + "shape":"SensitiveString", + "documentation":"

    Transit route name.

    " + }, + "ShortRouteName":{ + "shape":"SensitiveString", + "documentation":"

    Short name of the transit route.

    " + }, + "TextColor":{ + "shape":"HexColor", + "documentation":"

    Color of the transport name text.

    " } }, - "documentation":"

    Toll systems are authorities that collect payments for the toll.

    " - }, - "RouteTollSystemList":{ - "type":"list", - "member":{"shape":"RouteTollSystem"} - }, - "RouteTollVehicleCategory":{ - "type":"string", - "enum":["Minibus"], - "sensitive":true + "documentation":"

    Transport mode details for the transit leg.

    " }, - "RouteTrafficOptions":{ + "RouteTransitTravelOnlySummary":{ "type":"structure", + "required":["Duration"], "members":{ - "FlowEventThresholdOverride":{ + "Duration":{ "shape":"DurationSeconds", - "documentation":"

    Duration for which flow traffic is considered valid. For this period, the flow traffic is used over historical traffic data. Flow traffic refers to congestion, which changes very quickly. Duration in seconds for which flow traffic event would be considered valid. While flow traffic event is valid it will be used over the historical traffic data.

    " - }, - "Usage":{ - "shape":"TrafficUsage", - "documentation":"

    Specifies how traffic data should be used when calculating routes.

    Default Value: UseTrafficData

    Traffic data usage depends on the time parameters in your route request:

    • When Usage is set to UseTrafficData:

      • If DepartNow is set to true, or if you specify DepartureTime or ArrivalTime, then all traffic data is considered (including live traffic and closures).

      • If DepartNow, DepartureTime, and ArrivalTime are all unspecified, then only long-term closures are considered, regardless of this setting.

    • When Usage is set to IgnoreTrafficData, then all traffic data is ignored regardless of the time parameters in your route request.

    " + "documentation":"

    Duration of the travel portion of the transit leg.

    Unit: seconds

    ", + "box":true } }, - "documentation":"

    Traffic options for the route.

    " + "documentation":"

    Summary including duration and distance for the travel portion of the leg only.

    " }, - "RouteTrailerOptions":{ + "RouteTransitTravelStep":{ "type":"structure", + "required":[ + "Duration", + "Type" + ], "members":{ - "AxleCount":{ - "shape":"RouteTrailerOptionsAxleCountInteger", - "documentation":"

    Total number of axles of the vehicle.

    " + "Distance":{ + "shape":"DistanceMeters", + "documentation":"

    Distance of the step.

    Unit: meters

    ", + "box":true }, - "TrailerCount":{ - "shape":"RouteTrailerOptionsTrailerCountInteger", - "documentation":"

    Number of trailers attached to the vehicle.

    Default value: 0

    " + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "GeometryOffset":{ + "shape":"RouteTransitTravelStepGeometryOffsetInteger", + "documentation":"

    Offset in the leg geometry corresponding to the start of this step.

    " + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    " + }, + "Type":{ + "shape":"RouteTransitTravelStepType", + "documentation":"

    Type of the step.

    " } }, - "documentation":"

    Trailer options corresponding to the vehicle.

    " + "documentation":"

    A step that must be performed during the travel portion of the leg.

    " }, - "RouteTrailerOptionsAxleCountInteger":{ + "RouteTransitTravelStepGeometryOffsetInteger":{ "type":"integer", "box":true, - "min":1, + "min":0 + }, + "RouteTransitTravelStepList":{ + "type":"list", + "member":{"shape":"RouteTransitTravelStep"} + }, + "RouteTransitTravelStepType":{ + "type":"string", + "enum":["Depart"], "sensitive":true }, - "RouteTrailerOptionsTrailerCountInteger":{ - "type":"integer", - "box":true, - "max":255, - "min":1, + "RouteTransitTripStatus":{ + "type":"string", + "enum":[ + "Added", + "Cancelled", + "Replaced", + "Scheduled" + ], "sensitive":true }, "RouteTransponder":{ @@ -4798,7 +6705,9 @@ "Car", "Pedestrian", "Scooter", - "Truck" + "Truck", + "Intermodal", + "Transit" ] }, "RouteTravelModeOptions":{ @@ -4819,6 +6728,14 @@ "Truck":{ "shape":"RouteTruckOptions", "documentation":"

    Travel mode options when the provided travel mode is Truck.

    " + }, + "Intermodal":{ + "shape":"RouteIntermodalOptions", + "documentation":"

    Travel mode options when the provided travel mode is Intermodal.

    Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " + }, + "Transit":{ + "shape":"RouteTransitOptions", + "documentation":"

    Travel mode options when the provided travel mode is Transit.

    Not supported in ap-southeast-1 and ap-southeast-5 regions for GrabMaps customers.

    " } }, "documentation":"

    Travel mode related options for the provided travel mode.

    " @@ -5033,17 +6950,53 @@ }, "documentation":"

    Details related to the U-turn step.

    " }, + "RouteVehicleAfterTravelStep":{ + "type":"structure", + "required":[ + "Duration", + "Type" + ], + "members":{ + "ChargeStepDetails":{ + "shape":"RouteChargeStepDetails", + "documentation":"

    Details that are specific to a Charge step.

    Unit: KwH

    " + }, + "Duration":{ + "shape":"DurationSeconds", + "documentation":"

    Duration of the step.

    Unit: seconds

    ", + "box":true + }, + "Instruction":{ + "shape":"SensitiveString", + "documentation":"

    Brief description of the step in the requested language.

    Only available when the TravelStepType is Default.

    " + }, + "Type":{ + "shape":"RouteVehicleAfterTravelStepType", + "documentation":"

    Type of the step.

    " + } + }, + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " + }, + "RouteVehicleAfterTravelStepList":{ + "type":"list", + "member":{"shape":"RouteVehicleAfterTravelStep"} + }, + "RouteVehicleAfterTravelStepType":{ + "type":"string", + "enum":["Park"], + "sensitive":true + }, "RouteVehicleArrival":{ "type":"structure", "required":["Place"], "members":{ "Place":{ "shape":"RouteVehiclePlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the arrival.

    " }, "Time":{ "shape":"TimestampWithTimezoneOffset", - "documentation":"

    The time.

    " + "documentation":"

    The arrival time.

    " } }, "documentation":"

    Details corresponding to the arrival for a leg.

    " @@ -5054,7 +7007,7 @@ "members":{ "Place":{ "shape":"RouteVehiclePlace", - "documentation":"

    The place details.

    " + "documentation":"

    Place details corresponding to the departure.

    " }, "Time":{ "shape":"TimestampWithTimezoneOffset", @@ -5123,6 +7076,7 @@ "RouteVehicleLegDetails":{ "type":"structure", "required":[ + "AfterTravelSteps", "Arrival", "Departure", "Incidents", @@ -5136,6 +7090,10 @@ "Zones" ], "members":{ + "AfterTravelSteps":{ + "shape":"RouteVehicleAfterTravelStepList", + "documentation":"

    Steps of a leg that must be performed after the travel portion of the leg.

    " + }, "Arrival":{ "shape":"RouteVehicleArrival", "documentation":"

    Details corresponding to the arrival for the leg.

    " @@ -5203,6 +7161,20 @@ "min":1, "sensitive":true }, + "RouteVehicleMode":{ + "type":"string", + "enum":[ + "All", + "Car" + ], + "sensitive":true + }, + "RouteVehicleModeList":{ + "type":"list", + "member":{"shape":"RouteVehicleMode"}, + "max":1, + "min":1 + }, "RouteVehicleNotice":{ "type":"structure", "required":[ @@ -5293,18 +7265,18 @@ }, "Distance":{ "shape":"DistanceMeters", - "documentation":"

    Distance of the step.

    " + "documentation":"

    Distance of the entire leg.

    Unit: meters

    " }, "Duration":{ "shape":"DurationSeconds", - "documentation":"

    Duration of the step.

    Unit: seconds

    " + "documentation":"

    Duration of the entire leg.

    Unit: seconds

    " }, "TypicalDuration":{ "shape":"DurationSeconds", - "documentation":"

    Duration of the computed span under typical traffic congestion.

    Unit: seconds

    " + "documentation":"

    Duration of the leg under typical traffic congestion.

    Unit: seconds

    " } }, - "documentation":"

    Summarized details of the leg.

    " + "documentation":"

    Summary including duration and distance for the entire leg.

    " }, "RouteVehiclePlace":{ "type":"structure", @@ -5329,10 +7301,32 @@ "WaypointIndex":{ "shape":"RouteVehiclePlaceWaypointIndexInteger", "documentation":"

    Index of the waypoint in the request.

    " + }, + "AccessPointDetails":{ + "shape":"RouteAccessPointDetails", + "documentation":"

    Details of the access point.

    " + }, + "StationDetails":{ + "shape":"RouteStationDetails", + "documentation":"

    Details about the station.

    " + }, + "Type":{ + "shape":"RouteVehiclePlaceType", + "documentation":"

    The type of the place.

    " } }, "documentation":"

    Place details corresponding to the arrival or departure.

    " }, + "RouteVehiclePlaceType":{ + "type":"string", + "enum":[ + "AccessPoint", + "DockingStation", + "ParkingLot", + "Station" + ], + "sensitive":true + }, "RouteVehiclePlaceWaypointIndexInteger":{ "type":"integer", "box":true, @@ -5487,7 +7481,7 @@ }, "TypicalDuration":{ "shape":"DurationSeconds", - "documentation":"

    Duration of the computed span under typical traffic congestion.

    Unit: seconds

    " + "documentation":"

    Duration of the leg under typical traffic congestion.

    Unit: seconds

    " } }, "documentation":"

    Summarized details of the route.

    " @@ -5746,6 +7740,42 @@ "max":49999, "sensitive":true }, + "RouteWebLink":{ + "type":"structure", + "required":["Description"], + "members":{ + "AnchorText":{ + "shape":"SensitiveString", + "documentation":"

    The interactive or clickable portion of the text.

    " + }, + "Description":{ + "shape":"SensitiveString", + "documentation":"

    Text describing the URL.

    " + }, + "DeviceType":{ + "shape":"RouteWebLinkDeviceType", + "documentation":"

    Device type for which the link is intended.

    " + }, + "Url":{ + "shape":"SensitiveString", + "documentation":"

    The URL of the link.

    " + } + }, + "documentation":"

    The URL to an external resource.

    " + }, + "RouteWebLinkDeviceType":{ + "type":"string", + "enum":[ + "Android", + "Ios", + "Web" + ], + "sensitive":true + }, + "RouteWebLinkList":{ + "type":"list", + "member":{"shape":"RouteWebLink"} + }, "RouteWeightConstraint":{ "type":"structure", "required":[ @@ -6738,5 +8768,5 @@ "documentation":"

    Specifies the total weight for different axle group configurations. Used in regions where regulations set different weight limits based on axle group types.

    Unit: kilograms

    " } }, - "documentation":"

    With the Amazon Location Routes API you can calculate routes and estimate travel time based on up-to-date road network and live traffic information.

    Calculate optimal travel routes and estimate travel times using up-to-date road network and traffic data. Key features include:

    • Point-to-point routing with estimated travel time, distance, and turn-by-turn directions

    • Multi-point route optimization to minimize travel time or distance

    • Route matrices for efficient multi-destination planning

    • Isoline calculations to determine reachable areas within specified time or distance thresholds

    • Map-matching to align GPS traces with the road network

    " + "documentation":"

    With the Routes API you can calculate routes and estimate travel time based on up-to-date road network and live traffic information. Key features include:

    • Point-to-point routing with estimated travel time, distance, and turn-by-turn directions. See CalculateRoutes.

    • Multi-point route optimization to minimize travel time or distance. See OptimizeWaypoints.

    • Route matrices for efficient multi-destination planning. See CalculateRouteMatrix.

    • Isoline calculations to determine reachable areas within specified time or distance thresholds. See CalculateIsolines.

    • Map-matching to align GPS traces with the road network. See SnapToRoads.

    " } diff --git a/awscli/botocore/data/guardduty/2017-11-28/service-2.json b/awscli/botocore/data/guardduty/2017-11-28/service-2.json index 69bec0fac101..470d20e26b6c 100644 --- a/awscli/botocore/data/guardduty/2017-11-28/service-2.json +++ b/awscli/botocore/data/guardduty/2017-11-28/service-2.json @@ -9419,6 +9419,12 @@ }, "documentation":"

    Contains details about the backup recovery point.

    " }, + "RelatedFilePathsList":{ + "type":"list", + "member":{"shape":"String"}, + "max":25, + "min":1 + }, "RemoteAccountDetails":{ "type":"structure", "members":{ @@ -9931,6 +9937,21 @@ "shape":"String", "documentation":"

    The suspicious file path for which the threat intelligence details were found.

    ", "locationName":"threatFilePath" + }, + "FileOperation":{ + "shape":"String", + "documentation":"

    Represents the type of file operation that triggered the finding, such as Write, Delete, Rename, Link, or Symlink.

    ", + "locationName":"fileOperation" + }, + "FilePath":{ + "shape":"String", + "documentation":"

    The path of the sensitive file that was modified. Modification includes write, delete, rename, link, or symlink operations. This field is indexed for filtering.

    ", + "locationName":"filePath" + }, + "RelatedFilePaths":{ + "shape":"RelatedFilePathsList", + "documentation":"

    All file paths modified by the same process that triggered the finding, up to a maximum of 25 paths.

    ", + "locationName":"relatedFilePaths" } }, "documentation":"

    Additional information about the suspicious activity.

    " diff --git a/awscli/botocore/data/iot/2015-05-28/service-2.json b/awscli/botocore/data/iot/2015-05-28/service-2.json index 949d44453aa5..1bebb06b81f5 100644 --- a/awscli/botocore/data/iot/2015-05-28/service-2.json +++ b/awscli/botocore/data/iot/2015-05-28/service-2.json @@ -2563,7 +2563,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"IndexNotReadyException"} ], - "documentation":"

    Retrieves the live connectivity status per device.

    " + "documentation":"

    Retrieves the live connectivity status per device. If a device has never connected to IoT Core or was disconnected for more than 1 hour before fleet indexing's thingConnectivityIndexingMode was enabled, the response will have the connected field set to false with no additional session details.

    " }, "GetTopicRule":{ "name":"GetTopicRule", @@ -3859,7 +3859,7 @@ {"shape":"InvalidQueryException"}, {"shape":"IndexNotReadyException"} ], - "documentation":"

    The query search index.

    Requires permission to access the SearchIndex action.

    " + "documentation":"

    Searches the specified index.

    If a device has never connected to IoT Core or was disconnected for more than 1 hour before fleet indexing's thingConnectivityIndexingMode was enabled, the connectivity object for this device in the response will have the connected field set to false with no additional session details.

    Requires permission to access the SearchIndex action.

    " }, "SetDefaultAuthorizer":{ "name":"SetDefaultAuthorizer", @@ -13033,11 +13033,11 @@ }, "timestamp":{ "shape":"Timestamp", - "documentation":"

    The timestamp of when the event occurred. When you enable or update the indexing configuration, this value might be the Unix epoch time (0) for devices that have never connected or have been disconnected for more than an hour.

    " + "documentation":"

    The timestamp of when the device connected or disconnected.

    " }, "disconnectReason":{ "shape":"DisconnectReasonValue", - "documentation":"

    The reason why the client is disconnecting. When you enable or update the indexing configuration, this value might be UNKNOWN for devices that have never connected or have been disconnected for more than an hour.

    " + "documentation":"

    The reason that the client is disconnected.

    " }, "sourceIp":{ "shape":"SourceIp", @@ -20534,11 +20534,11 @@ }, "timestamp":{ "shape":"ConnectivityTimestamp", - "documentation":"

    The epoch time (in milliseconds) when the thing last connected or disconnected. If the thing has been disconnected for approximately an hour, the time value might be missing. When you enable or update the indexing configuration, this value might be 0 (the Unix epoch time) for devices that have never connected or have been disconnected for more than an hour.

    " + "documentation":"

    The epoch time (in milliseconds) when the thing last connected or disconnected.

    " }, "disconnectReason":{ "shape":"DisconnectReason", - "documentation":"

    The reason why the client is disconnected. When you enable or update the indexing configuration, this value might be missing for devices that have never connected or have been disconnected for more than an hour.

    " + "documentation":"

    The reason that the client is disconnected.

    " }, "keepAliveDuration":{ "shape":"KeepAliveDuration", diff --git a/awscli/botocore/data/keyspacesstreams/2024-09-09/service-2.json b/awscli/botocore/data/keyspacesstreams/2024-09-09/service-2.json index e152256b878d..1d3072b089ea 100644 --- a/awscli/botocore/data/keyspacesstreams/2024-09-09/service-2.json +++ b/awscli/botocore/data/keyspacesstreams/2024-09-09/service-2.json @@ -132,6 +132,10 @@ "nextShardIterator":{ "shape":"ShardIterator", "documentation":"

    The next position in the shard from which to start sequentially reading data records. If null, the shard has been closed and the requested iterator will not return any more data.

    " + }, + "iteratorDescription":{ + "shape":"IteratorDescription", + "documentation":"

    Provides information about the current iterator at the time GetRecords request was processed by Keyspaces.

    " } } }, @@ -260,6 +264,23 @@ "exception":true, "fault":true }, + "IteratorDescription":{ + "type":"structure", + "members":{ + "iteratorPosition":{ + "shape":"IteratorPosition", + "documentation":"

    Indicates the current iterator's position within the shard. The possible values are:

    • AT_TIP - No more records are currently available.

    • BEHIND_TIP - Additional records may be available.

    Stream progresses in absence of customer records. BEHIND_TIP with an empty changeRecords list indicates the stream is progressing but no customer records are available at this position. Continue polling normally.

    " + } + }, + "documentation":"

    Provides information about the current iterator.

    " + }, + "IteratorPosition":{ + "type":"string", + "enum":[ + "AT_TIP", + "BEHIND_TIP" + ] + }, "KeyspaceName":{ "type":"string", "max":48, diff --git a/awscli/botocore/data/lambda/2015-03-31/service-2.json b/awscli/botocore/data/lambda/2015-03-31/service-2.json index de4532ba135e..4bb0b30dfbac 100644 --- a/awscli/botocore/data/lambda/2015-03-31/service-2.json +++ b/awscli/botocore/data/lambda/2015-03-31/service-2.json @@ -2088,7 +2088,8 @@ "LastModified":{ "shape":"Timestamp", "documentation":"

    The date and time when the capacity provider was last modified.

    " - } + }, + "PropagateTags":{"shape":"PropagateTags"} }, "documentation":"

    A capacity provider manages compute resources for Lambda functions.

    " }, @@ -2686,6 +2687,10 @@ "Tags":{ "shape":"Tags", "documentation":"

    A list of tags to associate with the capacity provider.

    " + }, + "PropagateTags":{ + "shape":"PropagateTags", + "documentation":"

    The tag propagation configuration for the capacity provider. Specifies tags to apply to managed resources at launch.

    " } } }, @@ -7319,6 +7324,34 @@ "min":12, "pattern":"o-[a-z0-9]{10,32}" }, + "PropagateTags":{ + "type":"structure", + "members":{ + "Mode":{ + "shape":"PropagateTagsMode", + "documentation":"

    The tag propagation mode. Set to Explicit to propagate the tags specified in ExplicitTags to managed resources. Set to None to disable tag propagation.

    " + }, + "ExplicitTags":{ + "shape":"PropagateTagsExplicitTagsMap", + "documentation":"

    A list of tags to apply to managed resources when Mode is set to Explicit. You can specify up to 40 tags.

    " + } + }, + "documentation":"

    Configuration for tag propagation to managed resources launched by the capacity provider.

    " + }, + "PropagateTagsExplicitTagsMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":40, + "min":0 + }, + "PropagateTagsMode":{ + "type":"string", + "enum":[ + "None", + "Explicit" + ] + }, "ProvisionedConcurrencyConfigList":{ "type":"list", "member":{"shape":"ProvisionedConcurrencyConfigListItem"} @@ -8933,7 +8966,8 @@ "CapacityProviderScalingConfig":{ "shape":"CapacityProviderScalingConfig", "documentation":"

    The updated scaling configuration for the capacity provider.

    " - } + }, + "PropagateTags":{"shape":"PropagateTags"} } }, "UpdateCapacityProviderResponse":{ diff --git a/awscli/botocore/data/sagemaker/2017-07-24/paginators-1.json b/awscli/botocore/data/sagemaker/2017-07-24/paginators-1.json index d41812787285..cee248f48f35 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/paginators-1.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/paginators-1.json @@ -521,6 +521,18 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "AIWorkloadConfigs" + }, + "ListJobSchemaVersions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "JobConfigSchemas" + }, + "ListJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "JobSummaries" } } } diff --git a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json index 1c6c94ffe30b..ceb4f316dc3b 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json @@ -626,6 +626,21 @@ ], "documentation":"

    Starts a recommendation job. You can create either an instance recommendation or load test job.

    " }, + "CreateJob":{ + "name":"CreateJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateJobRequest"}, + "output":{"shape":"CreateJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"} + ], + "documentation":"

    Creates a model customization job in Amazon SageMaker. A job runs a workload based on the job category and configuration you provide. You specify the job category, a schema-versioned configuration document, and an IAM role that grants Amazon SageMaker permission to access resources on your behalf.

    Use the AgentRFT category to fine-tune a model using multi-turn reinforcement learning with reward signals. Use the AgentRFTEvaluation category to evaluate a fine-tuned or base model by running multi-turn rollouts against a held-out prompt dataset and computing metrics such as pass@k and mean reward.

    Before creating a job, call ListJobSchemaVersions and DescribeJobSchemaVersion to retrieve the configuration schema for your job category. The JobConfigDocument must conform to the schema specified by JobConfigSchemaVersion.

    The following operations are related to CreateJob:

    • DescribeJob

    • ListJobs

    • StopJob

    • DeleteJob

    • ListJobSchemaVersions

    • DescribeJobSchemaVersion

    " + }, "CreateLabelingJob":{ "name":"CreateLabelingJob", "http":{ @@ -1504,6 +1519,21 @@ ], "documentation":"

    Deletes an inference experiment.

    This operation does not delete your endpoint, variants, or any underlying resources. This operation only deletes the metadata of your experiment.

    " }, + "DeleteJob":{ + "name":"DeleteJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteJobRequest"}, + "output":{"shape":"DeleteJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ResourceInUse"} + ], + "documentation":"

    Deletes a job. This operation is idempotent. If the job is currently running, you must stop it before deleting it by calling StopJob.

    The following operations are related to DeleteJob:

    • CreateJob

    • StopJob

    • DescribeJob

    ", + "idempotent":true + }, "DeleteMlflowApp":{ "name":"DeleteMlflowApp", "http":{ @@ -2328,6 +2358,34 @@ ], "documentation":"

    Provides the results of the Inference Recommender job. One or more recommendation jobs are returned.

    " }, + "DescribeJob":{ + "name":"DescribeJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeJobRequest"}, + "output":{"shape":"DescribeJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

    Returns detailed information about a job, including its current status, secondary status, configuration, and timestamps. Use SecondaryStatus for granular progress tracking and SecondaryStatusTransitions to see the full history of status changes with timestamps.

    The following operations are related to DescribeJob:

    • CreateJob

    • ListJobs

    • StopJob

    • DeleteJob

    ", + "readonly":true + }, + "DescribeJobSchemaVersion":{ + "name":"DescribeJobSchemaVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeJobSchemaVersionRequest"}, + "output":{"shape":"DescribeJobSchemaVersionResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

    Returns the JSON schema for a specified job category and schema version. Use this schema to validate your JobConfigDocument before calling CreateJob. If you don't specify a schema version, the latest version is returned. The schema defines required fields, allowed values, and constraints for the job configuration.

    The following operations are related to DescribeJobSchemaVersion:

    • ListJobSchemaVersions

    • CreateJob

    ", + "readonly":true + }, "DescribeLabelingJob":{ "name":"DescribeLabelingJob", "http":{ @@ -3353,6 +3411,31 @@ "output":{"shape":"ListInferenceRecommendationsJobsResponse"}, "documentation":"

    Lists recommendation jobs that satisfy various filters.

    " }, + "ListJobSchemaVersions":{ + "name":"ListJobSchemaVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListJobSchemaVersionsRequest"}, + "output":{"shape":"ListJobSchemaVersionsResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

    Lists available configuration schema versions for a specified job category. Use the schema versions with DescribeJobSchemaVersion to retrieve the full schema document.

    The following operations are related to ListJobSchemaVersions:

    • DescribeJobSchemaVersion

    • CreateJob

    ", + "readonly":true + }, + "ListJobs":{ + "name":"ListJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListJobsRequest"}, + "output":{"shape":"ListJobsResponse"}, + "documentation":"

    Lists jobs in a specified category. You can filter results by creation time, last modified time, name, and status. Results are sorted by the field you specify in SortBy. Use pagination to retrieve large result sets efficiently.

    The following operations are related to ListJobs:

    • CreateJob

    • DescribeJob

    ", + "readonly":true + }, "ListLabelingJobs":{ "name":"ListLabelingJobs", "http":{ @@ -4180,6 +4263,19 @@ ], "documentation":"

    Stops an Inference Recommender job.

    " }, + "StopJob":{ + "name":"StopJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopJobRequest"}, + "output":{"shape":"StopJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

    Stops a running job. When you call StopJob, Amazon SageMaker sets the job status to Stopping. After the job stops, the status changes to Stopped. Partial results may be available in the output location if the job was in progress. To delete a stopped job, call DeleteJob.

    The following operations are related to StopJob:

    • CreateJob

    • DescribeJob

    • DeleteJob

    " + }, "StopLabelingJob":{ "name":"StopLabelingJob", "http":{ @@ -14036,6 +14132,52 @@ } } }, + "CreateJobRequest":{ + "type":"structure", + "required":[ + "JobName", + "RoleArn", + "JobCategory", + "JobConfigSchemaVersion", + "JobConfigDocument" + ], + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job. The name must be unique within your account and Amazon Web Services Region.

    " + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker assumes to perform the job. The role must have the necessary permissions to access the resources required by the job configuration.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job. The category determines the type of workload that the job runs.

    " + }, + "JobConfigSchemaVersion":{ + "shape":"JobSchemaVersion", + "documentation":"

    The version of the configuration schema to use for the job configuration document. Use ListJobSchemaVersions to get available schema versions for a job category.

    " + }, + "JobConfigDocument":{ + "shape":"JobConfigDocument", + "documentation":"

    The JSON configuration document for the job. The document must conform to the schema specified by JobConfigSchemaVersion. Use DescribeJobSchemaVersion to retrieve the schema for validation.

    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    An array of key-value pairs to apply to the job as tags. For more information, see Tagging Amazon Web Services Resources.

    " + } + } + }, + "CreateJobResponse":{ + "type":"structure", + "required":["JobArn"], + "members":{ + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The Amazon Resource Name (ARN) of the job.

    " + } + } + }, "CreateLabelingJobRequest":{ "type":"structure", "required":[ @@ -16934,6 +17076,27 @@ } } }, + "DeleteJobRequest":{ + "type":"structure", + "required":[ + "JobName", + "JobCategory" + ], + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job to delete.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job to delete.

    " + } + } + }, + "DeleteJobResponse":{ + "type":"structure", + "members":{} + }, "DeleteMlflowAppRequest":{ "type":"structure", "required":["Arn"], @@ -20307,6 +20470,132 @@ } } }, + "DescribeJobRequest":{ + "type":"structure", + "required":[ + "JobName", + "JobCategory" + ], + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job to describe.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job.

    " + } + } + }, + "DescribeJobResponse":{ + "type":"structure", + "required":[ + "JobName", + "JobArn", + "RoleArn", + "JobCategory", + "JobConfigSchemaVersion", + "CreationTime", + "LastModifiedTime", + "JobStatus", + "SecondaryStatus", + "SecondaryStatusTransitions" + ], + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job.

    " + }, + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The Amazon Resource Name (ARN) of the job.

    " + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

    The ARN of the IAM role associated with the job.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job.

    " + }, + "JobConfigSchemaVersion":{ + "shape":"JobSchemaVersion", + "documentation":"

    The schema version used for the job configuration document.

    " + }, + "JobConfigDocument":{ + "shape":"JobConfigDocument", + "documentation":"

    The JSON configuration document for the job.

    " + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job was created.

    " + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job was last modified.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job ended.

    " + }, + "JobStatus":{ + "shape":"JobStatus", + "documentation":"

    The current status of the job.

    " + }, + "SecondaryStatus":{ + "shape":"JobSecondaryStatus", + "documentation":"

    The detailed secondary status of the job, providing more granular information about the job's progress. Secondary statuses may change between releases.

    " + }, + "SecondaryStatusTransitions":{ + "shape":"JobSecondaryStatusTransitions", + "documentation":"

    A list of secondary status transitions for the job, with timestamps and optional status messages.

    " + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

    If the job failed, the reason it failed.

    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    The tags associated with the job.

    " + } + } + }, + "DescribeJobSchemaVersionRequest":{ + "type":"structure", + "required":["JobCategory"], + "members":{ + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job schema to describe.

    " + }, + "JobConfigSchemaVersion":{ + "shape":"JobSchemaVersion", + "documentation":"

    The version of the schema to retrieve. If not specified, the latest version is returned.

    " + } + } + }, + "DescribeJobSchemaVersionResponse":{ + "type":"structure", + "required":[ + "JobCategory", + "JobConfigSchemaVersion", + "JobConfigSchema" + ], + "members":{ + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job schema.

    " + }, + "JobConfigSchemaVersion":{ + "shape":"JobSchemaVersion", + "documentation":"

    The version of the schema.

    " + }, + "JobConfigSchema":{ + "shape":"JobConfigDocument", + "documentation":"

    The JSON schema document that defines the structure of the job configuration.

    " + } + } + }, "DescribeLabelingJobRequest":{ "type":"structure", "required":["LabelingJobName"], @@ -29010,11 +29299,52 @@ "max":256, "min":1 }, + "JobArn":{ + "type":"string", + "max":256, + "min":0, + "pattern":"arn:(aws[a-z\\-]*):sagemaker:[a-z0-9\\-]+:[0-9]{12}:job/[a-zA-Z0-9]+/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, + "JobCategory":{ + "type":"string", + "enum":[ + "AgentRFT", + "AgentRFTEvaluation" + ] + }, + "JobConfigDocument":{ + "type":"string", + "max":262144, + "min":1 + }, + "JobConfigSchemaVersionSummary":{ + "type":"structure", + "required":["JobConfigSchemaVersion"], + "members":{ + "JobConfigSchemaVersion":{ + "shape":"JobSchemaVersion", + "documentation":"

    The version of the job configuration schema.

    " + } + }, + "documentation":"

    Provides summary information about a job configuration schema version.

    " + }, + "JobConfigSchemas":{ + "type":"list", + "member":{"shape":"JobConfigSchemaVersionSummary"}, + "max":100, + "min":0 + }, "JobDurationInSeconds":{ "type":"integer", "box":true, "min":1 }, + "JobName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, "JobReferenceCode":{ "type":"string", "min":1, @@ -29026,6 +29356,139 @@ "min":1, "pattern":".+" }, + "JobSchemaVersion":{ + "type":"string", + "max":16, + "min":5, + "pattern":"\\d+\\.\\d+\\.\\d+" + }, + "JobSecondaryStatus":{ + "type":"string", + "enum":[ + "Starting", + "Downloading", + "Training", + "Uploading", + "Stopping", + "Stopped", + "MaxRuntimeExceeded", + "Interrupted", + "Failed", + "Completed", + "Restarting", + "Pending", + "Evaluating", + "Deleting", + "DeleteFailed" + ] + }, + "JobSecondaryStatusTransition":{ + "type":"structure", + "required":[ + "Status", + "StartTime" + ], + "members":{ + "Status":{ + "shape":"JobSecondaryStatus", + "documentation":"

    The secondary status of the job at this transition point.

    " + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the status transition started.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the status transition ended.

    " + }, + "StatusMessage":{ + "shape":"String", + "documentation":"

    A detailed message about the status transition.

    " + } + }, + "documentation":"

    Represents a secondary status transition for a job. Jobs progress through multiple secondary statuses during execution. Each transition records the status, start time, optional end time, and an optional message with additional details.

    " + }, + "JobSecondaryStatusTransitions":{ + "type":"list", + "member":{"shape":"JobSecondaryStatusTransition"}, + "max":100, + "min":0 + }, + "JobStatus":{ + "type":"string", + "enum":[ + "InProgress", + "Completed", + "Failed", + "Stopping", + "Stopped", + "Deleting", + "DeleteFailed" + ] + }, + "JobStepMetadata":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String1024", + "documentation":"

    The Amazon Resource Name (ARN) of the SageMaker job that was run by this step execution.

    " + } + }, + "documentation":"

    Metadata for a SageMaker job step.

    " + }, + "JobSummaries":{ + "type":"list", + "member":{"shape":"JobSummary"}, + "max":100, + "min":0 + }, + "JobSummary":{ + "type":"structure", + "required":[ + "JobArn", + "JobName", + "JobCategory", + "JobStatus", + "JobSecondaryStatus", + "CreationTime", + "LastModifiedTime" + ], + "members":{ + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The Amazon Resource Name (ARN) of the job.

    " + }, + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job.

    " + }, + "JobStatus":{ + "shape":"JobStatus", + "documentation":"

    The current status of the job.

    " + }, + "JobSecondaryStatus":{ + "shape":"JobSecondaryStatus", + "documentation":"

    The secondary status of the job, providing more granular information about the job's progress. Secondary statuses may change between releases.

    " + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job was created.

    " + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job was last modified.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job ended.

    " + } + }, + "documentation":"

    Provides summary information about a job, returned by the ListJobs operation. Use DescribeJob to get full details for a specific job.

    " + }, "JobType":{ "type":"string", "enum":[ @@ -31961,6 +32424,102 @@ "Status" ] }, + "ListJobSchemaVersionsRequest":{ + "type":"structure", + "required":["JobCategory"], + "members":{ + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of job schemas to list.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the previous response was truncated, this token retrieves the next set of results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of schema versions to return in the response. The default value is 5.

    " + } + } + }, + "ListJobSchemaVersionsResponse":{ + "type":"structure", + "required":["JobConfigSchemas"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the response is truncated, this token retrieves the next set of results.

    " + }, + "JobConfigSchemas":{ + "shape":"JobConfigSchemas", + "documentation":"

    An array of JobConfigSchemaVersionSummary objects listing the available schema versions.

    " + } + } + }, + "ListJobsRequest":{ + "type":"structure", + "required":["JobCategory"], + "members":{ + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of jobs to list.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the previous response was truncated, this token retrieves the next set of results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of jobs to return in the response. The default value is 50.

    " + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

    A filter that returns only jobs created after the specified time.

    " + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

    A filter that returns only jobs created before the specified time.

    " + }, + "LastModifiedTimeAfter":{ + "shape":"Timestamp", + "documentation":"

    A filter that returns only jobs modified after the specified time.

    " + }, + "LastModifiedTimeBefore":{ + "shape":"Timestamp", + "documentation":"

    A filter that returns only jobs modified before the specified time.

    " + }, + "NameContains":{ + "shape":"NameContains", + "documentation":"

    A string in the job name to filter results. Only jobs whose name contains the specified string are returned.

    " + }, + "SortBy":{ + "shape":"SortBy", + "documentation":"

    The field to sort results by.

    " + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

    The sort order for results. Valid values are Ascending and Descending.

    " + }, + "StatusEquals":{ + "shape":"JobStatus", + "documentation":"

    A filter that returns only jobs with the specified status.

    " + } + } + }, + "ListJobsResponse":{ + "type":"structure", + "required":["JobSummaries"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the response is truncated, this token retrieves the next set of results.

    " + }, + "JobSummaries":{ + "shape":"JobSummaries", + "documentation":"

    An array of JobSummary objects that provide summary information about the jobs.

    " + } + } + }, "ListLabelingJobsForWorkteamRequest":{ "type":"structure", "required":["WorkteamArn"], @@ -39252,6 +39811,10 @@ "Lineage":{ "shape":"LineageMetadata", "documentation":"

    The metadata of the lineage used in pipeline execution step.

    " + }, + "Job":{ + "shape":"JobStepMetadata", + "documentation":"

    The metadata for a SageMaker job used in a pipeline execution step.

    " } }, "documentation":"

    Metadata for a step execution.

    " @@ -44628,6 +45191,27 @@ } } }, + "StopJobRequest":{ + "type":"structure", + "required":[ + "JobName", + "JobCategory" + ], + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job to stop.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job to stop.

    " + } + } + }, + "StopJobResponse":{ + "type":"structure", + "members":{} + }, "StopLabelingJobRequest":{ "type":"structure", "required":["LabelingJobName"], diff --git a/awscli/botocore/data/sagemakerjobruntime/2026-02-01/endpoint-rule-set-1.json b/awscli/botocore/data/sagemakerjobruntime/2026-02-01/endpoint-rule-set-1.json new file mode 100644 index 000000000000..0921df94ed5b --- /dev/null +++ b/awscli/botocore/data/sagemakerjobruntime/2026-02-01/endpoint-rule-set-1.json @@ -0,0 +1,239 @@ +{ + "version": "1.0", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "endpoint": { + "url": "https://job-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "endpoint": { + "url": "https://job-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "endpoint": { + "url": "https://job-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://job-runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://job-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/awscli/botocore/data/sagemakerjobruntime/2026-02-01/paginators-1.json b/awscli/botocore/data/sagemakerjobruntime/2026-02-01/paginators-1.json new file mode 100644 index 000000000000..ea142457a6a7 --- /dev/null +++ b/awscli/botocore/data/sagemakerjobruntime/2026-02-01/paginators-1.json @@ -0,0 +1,3 @@ +{ + "pagination": {} +} diff --git a/awscli/botocore/data/sagemakerjobruntime/2026-02-01/service-2.json b/awscli/botocore/data/sagemakerjobruntime/2026-02-01/service-2.json new file mode 100644 index 000000000000..7e2b7b031718 --- /dev/null +++ b/awscli/botocore/data/sagemakerjobruntime/2026-02-01/service-2.json @@ -0,0 +1,393 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2026-02-01", + "auth":["aws.auth#sigv4"], + "endpointPrefix":"job-runtime.sagemaker", + "protocol":"rest-json", + "protocols":["rest-json"], + "serviceFullName":"Sagemaker Job Runtime Service", + "serviceId":"SagemakerJobRuntime", + "signatureVersion":"v4", + "signingName":"sagemaker", + "uid":"sagemakerjobruntime-2026-02-01" + }, + "operations":{ + "CompleteRollout":{ + "name":"CompleteRollout", + "http":{ + "method":"POST", + "requestUri":"/complete-rollout", + "responseCode":200 + }, + "input":{"shape":"CompleteRolloutRequest"}, + "output":{"shape":"CompleteRolloutResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceError"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Marks a rollout as complete, indicating that no further turns will be appended to the trajectory. After calling this operation, the trajectory is sealed and eligible for reward submission via the UpdateReward operation.

    ", + "idempotent":true + }, + "Sample":{ + "name":"Sample", + "http":{ + "method":"POST", + "requestUri":"/sample", + "responseCode":200 + }, + "input":{"shape":"SampleRequest"}, + "output":{"shape":"SampleResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceError"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Sends an inference request to the model during a job execution. The request and response bodies are forwarded to and from the model without modification. Each turn (prompt and response) is captured for later use.

    " + }, + "SampleWithResponseStream":{ + "name":"SampleWithResponseStream", + "http":{ + "method":"POST", + "requestUri":"/sample-with-response-stream", + "responseCode":200 + }, + "input":{"shape":"SampleWithResponseStreamRequest"}, + "output":{"shape":"SampleWithResponseStreamResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceError"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Sends a streaming inference request to the model during a job execution. Returns the response as a stream of payload chunks. Each turn is captured for later use.

    " + }, + "UpdateReward":{ + "name":"UpdateReward", + "http":{ + "method":"POST", + "requestUri":"/update-reward", + "responseCode":200 + }, + "input":{"shape":"UpdateRewardRequest"}, + "output":{"shape":"UpdateRewardResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceError"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Updates the reward values for a trajectory and transitions it to reward-received status, signaling that it is eligible for processing. Call this operation after CompleteRollout to provide the computed reward scores.

    ", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    You do not have permission to perform this operation.

    ", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "CompleteRolloutRequest":{ + "type":"structure", + "required":[ + "JobArn", + "TrajectoryId" + ], + "members":{ + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The job ARN.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-Job-Arn" + }, + "TrajectoryId":{ + "shape":"TrajectoryId", + "documentation":"

    The trajectory ID to mark as complete.

    " + }, + "Status":{ + "shape":"CompletionStatus", + "documentation":"

    The target status for the trajectory. Defaults to READY if not specified. Set to FAILED if the rollout encountered an error and the trajectory should not be used for processing.

    " + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "idempotencyToken":true + } + } + }, + "CompleteRolloutResponse":{ + "type":"structure", + "members":{} + }, + "CompletionStatus":{ + "type":"string", + "documentation":"

    Allowed target statuses for the CompleteTrajectory operation.

    ", + "enum":[ + "ready", + "failed" + ] + }, + "ConflictException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    The request conflicts with the current state of the resource.

    ", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "Double":{ + "type":"double", + "box":true + }, + "DoubleList":{ + "type":"list", + "member":{"shape":"Double"} + }, + "FailureReason":{ + "type":"string", + "max":1024, + "min":0 + }, + "InferenceRequestBody":{ + "type":"blob", + "documentation":"

    Sensitive binary payload containing customer inference data.

    ", + "sensitive":true + }, + "InferenceResponseBody":{ + "type":"blob", + "documentation":"

    Sensitive binary payload containing model inference response data.

    ", + "sensitive":true + }, + "InternalServiceError":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    An internal service error occurred. Retry the request.

    ", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "JobArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:job/[a-zA-Z0-9_\\-]+/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    The specified resource was not found.

    ", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResponseStream":{ + "type":"blob", + "documentation":"

    Streaming response body composed of successive payload chunks.

    ", + "sensitive":true, + "streaming":true + }, + "SampleRequest":{ + "type":"structure", + "required":[ + "JobArn", + "TrajectoryId", + "Body" + ], + "members":{ + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The job ARN that identifies which model session to route the inference request to.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-Job-Arn" + }, + "TrajectoryId":{ + "shape":"TrajectoryId", + "documentation":"

    The trajectory ID for grouping turns into a single rollout. Each turn (prompt and response) is captured for later use.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-Trajectory-Id" + }, + "Body":{ + "shape":"InferenceRequestBody", + "documentation":"

    The raw inference request body in OpenAI-compatible JSON format.

    " + } + }, + "payload":"Body" + }, + "SampleResponse":{ + "type":"structure", + "required":["Body"], + "members":{ + "ContentType":{ + "shape":"String", + "documentation":"

    MIME type of the inference result.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "Body":{ + "shape":"InferenceResponseBody", + "documentation":"

    The raw inference response body from the model.

    " + } + }, + "payload":"Body" + }, + "SampleWithResponseStreamRequest":{ + "type":"structure", + "required":[ + "JobArn", + "TrajectoryId", + "Body" + ], + "members":{ + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The job ARN that identifies which model session to route the inference request to.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-Job-Arn" + }, + "TrajectoryId":{ + "shape":"TrajectoryId", + "documentation":"

    The trajectory ID for grouping turns into a single rollout. Each turn is captured for later use.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-Trajectory-Id" + }, + "Body":{ + "shape":"InferenceRequestBody", + "documentation":"

    The raw inference request body in OpenAI-compatible JSON format.

    " + } + }, + "payload":"Body" + }, + "SampleWithResponseStreamResponse":{ + "type":"structure", + "required":["Body"], + "members":{ + "ContentType":{ + "shape":"String", + "documentation":"

    MIME type of the streaming inference result.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "Body":{ + "shape":"ResponseStream", + "documentation":"

    The streaming response body, delivered as a series of PayloadPart events.

    " + } + }, + "payload":"Body" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    You have exceeded a service quota.

    ", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    The request was throttled. Retry the request after a brief wait.

    ", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "TrajectoryId":{ + "type":"string", + "max":256, + "min":1 + }, + "UpdateRewardRequest":{ + "type":"structure", + "required":[ + "JobArn", + "TrajectoryId", + "Rewards" + ], + "members":{ + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The job ARN.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-Job-Arn" + }, + "TrajectoryId":{ + "shape":"TrajectoryId", + "documentation":"

    The trajectory ID to update with reward values.

    " + }, + "Rewards":{ + "shape":"DoubleList", + "documentation":"

    The list of reward values to assign to this trajectory. Provide one reward value per turn in the trajectory.

    " + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "idempotencyToken":true + } + } + }, + "UpdateRewardResponse":{ + "type":"structure", + "members":{} + }, + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

    The request is not valid. Check the request syntax and parameters

    ", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

    Agentic RFT Runtime Service - manages trajectory and transition data for reinforcement fine-tuning jobs.

    " +} diff --git a/awscli/botocore/data/transcribe/2017-10-26/service-2.json b/awscli/botocore/data/transcribe/2017-10-26/service-2.json index 6eb251f996c9..92882754bd50 100644 --- a/awscli/botocore/data/transcribe/2017-10-26/service-2.json +++ b/awscli/botocore/data/transcribe/2017-10-26/service-2.json @@ -1727,6 +1727,8 @@ "af-ZA", "ar-AE", "ar-SA", + "am-ET", + "cy-GB", "da-DK", "de-CH", "de-DE", @@ -1738,16 +1740,24 @@ "en-US", "en-WL", "es-ES", + "es-MX", "es-US", + "fa-AF", "fa-IR", "fr-CA", "fr-FR", + "ga-IE", + "gd-GB", "he-IL", "hi-IN", + "ht-HT", "id-ID", "it-IT", "ja-JP", + "jv-ID", + "km-KH", "ko-KR", + "my-MM", "ms-MY", "nl-NL", "pt-BR", @@ -1804,6 +1814,7 @@ "mr-IN", "mt-MT", "no-NO", + "ne-NP", "or-IN", "pa-IN", "pl-PL", @@ -1814,6 +1825,7 @@ "sk-SK", "sl-SI", "so-SO", + "sq-AL", "sr-RS", "su-ID", "sw-BI", diff --git a/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json b/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json index 9724eee09724..cbd7b0092afa 100644 --- a/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json +++ b/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json @@ -1,43 +1,10 @@ { "testCases": [ - { - "documentation": "For custom endpoint with region not set and fips disabled", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "Endpoint": "https://example.com", - "UseFIPS": false - } - }, - { - "documentation": "For custom endpoint with fips enabled", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "params": { - "Endpoint": "https://example.com", - "UseFIPS": true - } - }, - { - "documentation": "For custom endpoint with fips disabled and dualstack enabled", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "params": { - "Endpoint": "https://example.com", - "UseFIPS": false, - "UseDualStack": true - } - }, { "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://routes.geo-fips.us-east-1.api.aws/v2" + "url": "https://geo-routes-fips.us-east-1.api.aws" } }, "params": { @@ -50,7 +17,7 @@ "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://routes.geo-fips.us-east-1.amazonaws.com/v2" + "url": "https://geo-routes-fips.us-east-1.amazonaws.com" } }, "params": { @@ -63,7 +30,7 @@ "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://routes.geo.us-east-1.api.aws/v2" + "url": "https://geo-routes.us-east-1.api.aws" } }, "params": { @@ -76,7 +43,7 @@ "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://routes.geo.us-east-1.amazonaws.com/v2" + "url": "https://geo-routes.us-east-1.amazonaws.com" } }, "params": { @@ -86,237 +53,210 @@ } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://geo-routes-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "cn-northwest-1", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://geo-routes-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "cn-northwest-1", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://geo-routes.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "cn-northwest-1", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.cn-northwest-1.amazonaws.com.cn" + "url": "https://geo-routes.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "cn-northwest-1", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.eusc-de-east-1.amazonaws.eu" + "url": "https://geo-routes-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "eusc-de-east-1", + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://geo-routes.eusc-de-east-1.amazonaws.eu" - } - }, - "params": { - "Region": "eusc-de-east-1", - "UseFIPS": false, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://geo-routes-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-gov-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-iso-east-1.c2s.ic.gov" + "url": "https://geo-routes.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://geo-routes-fips.us-isob-east-1.sc2s.sgov.gov" - } - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": true, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-isob-east-1.sc2s.sgov.gov" + "url": "https://geo-routes.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-isob-east-1", + "Region": "us-gov-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.eu-isoe-west-1.cloud.adc-e.uk" + "url": "https://geo-routes-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "eu-isoe-west-1", + "Region": "us-iso-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.eu-isoe-west-1.cloud.adc-e.uk" + "url": "https://geo-routes.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "eu-isoe-west-1", + "Region": "us-iso-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-isof-south-1.csp.hci.ic.gov" + "url": "https://geo-routes-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-isof-south-1", + "Region": "us-isob-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-isof-south-1.csp.hci.ic.gov" + "url": "https://geo-routes.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-isof-south-1", + "Region": "us-isob-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://routes.geo-fips.us-gov-west-1.us-gov.api.aws/v2" + "url": "https://example.com" } }, "params": { - "Region": "us-gov-west-1", - "UseFIPS": true, - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://routes.geo-fips.us-gov-west-1.us-gov.amazonaws.com/v2" + "url": "https://example.com" } }, "params": { - "Region": "us-gov-west-1", - "UseFIPS": true, - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { - "endpoint": { - "url": "https://routes.geo.us-gov-west-1.us-gov.api.aws/v2" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-gov-west-1", - "UseFIPS": false, - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with fips disabled and dualstack enabled", "expect": { - "endpoint": { - "url": "https://routes.geo.us-gov-west-1.us-gov.amazonaws.com/v2" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-gov-west-1", + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false + "UseDualStack": true, + "Endpoint": "https://example.com" } }, { diff --git a/tests/functional/botocore/endpoint-rules/sagemakerjobruntime/endpoint-tests-1.json b/tests/functional/botocore/endpoint-rules/sagemakerjobruntime/endpoint-tests-1.json new file mode 100644 index 000000000000..def5e5ea5b10 --- /dev/null +++ b/tests/functional/botocore/endpoint-rules/sagemakerjobruntime/endpoint-tests-1.json @@ -0,0 +1,105 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://job-runtime.sagemaker-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://job-runtime.sagemaker.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://job-runtime.sagemaker-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://job-runtime.sagemaker.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://job-runtime.sagemaker-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://job-runtime.sagemaker.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file From f40776aba89e3d5074f3bdc3732656082dcc74b9 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Tue, 2 Jun 2026 18:21:07 +0000 Subject: [PATCH 56/73] Bump version to 2.34.59 --- .changes/2.34.59.json | 57 +++++++++++++++++++ .../next-release/api-change-ec2-10619.json | 5 -- .../api-change-elasticache-8634.json | 5 -- .../api-change-georoutes-26674.json | 5 -- .../api-change-guardduty-5461.json | 5 -- .../next-release/api-change-iot-38762.json | 5 -- .../api-change-keyspacesstreams-63868.json | 5 -- .../next-release/api-change-lambda-35433.json | 5 -- .../api-change-sagemaker-80956.json | 5 -- .../api-change-sagemakerjobruntime-82215.json | 5 -- .../api-change-transcribe-14925.json | 5 -- .../bugfix-ec2-instance-connect-ssh-IPv6.json | 5 -- CHANGELOG.rst | 16 ++++++ awscli/__init__.py | 2 +- configure | 14 ++--- configure.ac | 2 +- doc/source/conf.py | 2 +- 17 files changed, 83 insertions(+), 65 deletions(-) create mode 100644 .changes/2.34.59.json delete mode 100644 .changes/next-release/api-change-ec2-10619.json delete mode 100644 .changes/next-release/api-change-elasticache-8634.json delete mode 100644 .changes/next-release/api-change-georoutes-26674.json delete mode 100644 .changes/next-release/api-change-guardduty-5461.json delete mode 100644 .changes/next-release/api-change-iot-38762.json delete mode 100644 .changes/next-release/api-change-keyspacesstreams-63868.json delete mode 100644 .changes/next-release/api-change-lambda-35433.json delete mode 100644 .changes/next-release/api-change-sagemaker-80956.json delete mode 100644 .changes/next-release/api-change-sagemakerjobruntime-82215.json delete mode 100644 .changes/next-release/api-change-transcribe-14925.json delete mode 100644 .changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json diff --git a/.changes/2.34.59.json b/.changes/2.34.59.json new file mode 100644 index 000000000000..1379af213f95 --- /dev/null +++ b/.changes/2.34.59.json @@ -0,0 +1,57 @@ +[ + { + "category": "``transcribe``", + "description": "Release new Language locales including am-ET, es-MX, fa-AF, ht-HT, jv-ID, km-KH, my-MM, sq-AL, ne-NP. The commit shows past locales that have already been release which include cy-gb, ga-ie, gd-gb.", + "type": "api-change" + }, + { + "category": "``elasticache``", + "description": "Amazon ElastiCache for Valkey now supports durability. This new capability is enabled through a Multi-AZ transactional log, enabling fast recovery and restart during failures.", + "type": "api-change" + }, + { + "category": "``guardduty``", + "description": "Amazon GuardDuty Runtime Monitoring now supports 3 new SensitiveFileModified finding types (Persistence, PrivilegeEscalation, DefenseEvasion) that detect when security-sensitive system files are modified on EC2 instances or containers, indicating potential compromise through file tampering.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "Amazon EC2 now supports self-service cancellation of future-dated Capacity Reservations. A cancellation charge applies based on remaining commitment. Customers can generate a cancellation quote to review charges before confirming.", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "Amazon SageMaker Job is a new service to help you manage various workloads related to model fine tuning, evaluation etc. Two job categories are supported today, AgentRFT for multi-turn agentic reinforcement fine tuning, and AgentRFTEvaluation for evaluating base model or trained model from AgentRFT.", + "type": "api-change" + }, + { + "category": "``iot``", + "description": "Fleet indexing documentation update", + "type": "api-change" + }, + { + "category": "``geo-routes``", + "description": "Added Transit and Intermodal travel modes to CalculateRoutes. Plan routes using public transit (bus, subway, train, ferry) or combine transit with driving, taxi, and rental car segments in a single multi-modal route.", + "type": "api-change" + }, + { + "category": "``ec2-instance-connect``", + "description": "Fall back to the instance's IPv6 address in ``ec2-instance-connect ssh --connection-type eice`` and ``ec2-instance-connect open-tunnel`` when the instance has no private IPv4 address (e.g. an IPv6-only subnet).", + "type": "bugfix" + }, + { + "category": "``keyspacesstreams``", + "description": "Added iterator description to the GetRecords API response for Amazon Keyspaces Change Data Capture (CDC) streams, enabling consumers to track their current position within the stream.", + "type": "api-change" + }, + { + "category": "``sagemakerjobruntime``", + "description": "Amazon SageMaker Job Runtime is a new service for managing trajectory data during multi-turn customization jobs. It provides APIs to send inference requests to models during job execution, mark rollouts as complete, and submit reward values for training trajectories.", + "type": "api-change" + }, + { + "category": "``lambda``", + "description": "Adds configuration for tag propagation to Lambda-managed resources.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-ec2-10619.json b/.changes/next-release/api-change-ec2-10619.json deleted file mode 100644 index 0b880bcb28a9..000000000000 --- a/.changes/next-release/api-change-ec2-10619.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ec2``", - "description": "Amazon EC2 now supports self-service cancellation of future-dated Capacity Reservations. A cancellation charge applies based on remaining commitment. Customers can generate a cancellation quote to review charges before confirming." -} diff --git a/.changes/next-release/api-change-elasticache-8634.json b/.changes/next-release/api-change-elasticache-8634.json deleted file mode 100644 index 84df05f5a0fd..000000000000 --- a/.changes/next-release/api-change-elasticache-8634.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``elasticache``", - "description": "Amazon ElastiCache for Valkey now supports durability. This new capability is enabled through a Multi-AZ transactional log, enabling fast recovery and restart during failures." -} diff --git a/.changes/next-release/api-change-georoutes-26674.json b/.changes/next-release/api-change-georoutes-26674.json deleted file mode 100644 index 3c9978912bf2..000000000000 --- a/.changes/next-release/api-change-georoutes-26674.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``geo-routes``", - "description": "Added Transit and Intermodal travel modes to CalculateRoutes. Plan routes using public transit (bus, subway, train, ferry) or combine transit with driving, taxi, and rental car segments in a single multi-modal route." -} diff --git a/.changes/next-release/api-change-guardduty-5461.json b/.changes/next-release/api-change-guardduty-5461.json deleted file mode 100644 index a503f7563e13..000000000000 --- a/.changes/next-release/api-change-guardduty-5461.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``guardduty``", - "description": "Amazon GuardDuty Runtime Monitoring now supports 3 new SensitiveFileModified finding types (Persistence, PrivilegeEscalation, DefenseEvasion) that detect when security-sensitive system files are modified on EC2 instances or containers, indicating potential compromise through file tampering." -} diff --git a/.changes/next-release/api-change-iot-38762.json b/.changes/next-release/api-change-iot-38762.json deleted file mode 100644 index dadfaa45f3d3..000000000000 --- a/.changes/next-release/api-change-iot-38762.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``iot``", - "description": "Fleet indexing documentation update" -} diff --git a/.changes/next-release/api-change-keyspacesstreams-63868.json b/.changes/next-release/api-change-keyspacesstreams-63868.json deleted file mode 100644 index 1097cdd768f5..000000000000 --- a/.changes/next-release/api-change-keyspacesstreams-63868.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``keyspacesstreams``", - "description": "Added iterator description to the GetRecords API response for Amazon Keyspaces Change Data Capture (CDC) streams, enabling consumers to track their current position within the stream." -} diff --git a/.changes/next-release/api-change-lambda-35433.json b/.changes/next-release/api-change-lambda-35433.json deleted file mode 100644 index 2302f3823724..000000000000 --- a/.changes/next-release/api-change-lambda-35433.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``lambda``", - "description": "Adds configuration for tag propagation to Lambda-managed resources." -} diff --git a/.changes/next-release/api-change-sagemaker-80956.json b/.changes/next-release/api-change-sagemaker-80956.json deleted file mode 100644 index 86e877537062..000000000000 --- a/.changes/next-release/api-change-sagemaker-80956.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemaker``", - "description": "Amazon SageMaker Job is a new service to help you manage various workloads related to model fine tuning, evaluation etc. Two job categories are supported today, AgentRFT for multi-turn agentic reinforcement fine tuning, and AgentRFTEvaluation for evaluating base model or trained model from AgentRFT." -} diff --git a/.changes/next-release/api-change-sagemakerjobruntime-82215.json b/.changes/next-release/api-change-sagemakerjobruntime-82215.json deleted file mode 100644 index 720943bf3777..000000000000 --- a/.changes/next-release/api-change-sagemakerjobruntime-82215.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemakerjobruntime``", - "description": "Amazon SageMaker Job Runtime is a new service for managing trajectory data during multi-turn customization jobs. It provides APIs to send inference requests to models during job execution, mark rollouts as complete, and submit reward values for training trajectories." -} diff --git a/.changes/next-release/api-change-transcribe-14925.json b/.changes/next-release/api-change-transcribe-14925.json deleted file mode 100644 index 11ffbd5658aa..000000000000 --- a/.changes/next-release/api-change-transcribe-14925.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``transcribe``", - "description": "Release new Language locales including am-ET, es-MX, fa-AF, ht-HT, jv-ID, km-KH, my-MM, sq-AL, ne-NP. The commit shows past locales that have already been release which include cy-gb, ga-ie, gd-gb." -} diff --git a/.changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json b/.changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json deleted file mode 100644 index 2398806295ee..000000000000 --- a/.changes/next-release/bugfix-ec2-instance-connect-ssh-IPv6.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "bugfix", - "category": "``ec2-instance-connect``", - "description": "Fall back to the instance's IPv6 address in ``ec2-instance-connect ssh --connection-type eice`` and ``ec2-instance-connect open-tunnel`` when the instance has no private IPv4 address (e.g. an IPv6-only subnet)." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 98d3e18e17a5..c84c0ffe4379 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,22 @@ CHANGELOG ========= +2.34.59 +======= + +* api-change:``transcribe``: Release new Language locales including am-ET, es-MX, fa-AF, ht-HT, jv-ID, km-KH, my-MM, sq-AL, ne-NP. The commit shows past locales that have already been release which include cy-gb, ga-ie, gd-gb. +* api-change:``elasticache``: Amazon ElastiCache for Valkey now supports durability. This new capability is enabled through a Multi-AZ transactional log, enabling fast recovery and restart during failures. +* api-change:``guardduty``: Amazon GuardDuty Runtime Monitoring now supports 3 new SensitiveFileModified finding types (Persistence, PrivilegeEscalation, DefenseEvasion) that detect when security-sensitive system files are modified on EC2 instances or containers, indicating potential compromise through file tampering. +* api-change:``ec2``: Amazon EC2 now supports self-service cancellation of future-dated Capacity Reservations. A cancellation charge applies based on remaining commitment. Customers can generate a cancellation quote to review charges before confirming. +* api-change:``sagemaker``: Amazon SageMaker Job is a new service to help you manage various workloads related to model fine tuning, evaluation etc. Two job categories are supported today, AgentRFT for multi-turn agentic reinforcement fine tuning, and AgentRFTEvaluation for evaluating base model or trained model from AgentRFT. +* api-change:``iot``: Fleet indexing documentation update +* api-change:``geo-routes``: Added Transit and Intermodal travel modes to CalculateRoutes. Plan routes using public transit (bus, subway, train, ferry) or combine transit with driving, taxi, and rental car segments in a single multi-modal route. +* bugfix:``ec2-instance-connect``: Fall back to the instance's IPv6 address in ``ec2-instance-connect ssh --connection-type eice`` and ``ec2-instance-connect open-tunnel`` when the instance has no private IPv4 address (e.g. an IPv6-only subnet). +* api-change:``keyspacesstreams``: Added iterator description to the GetRecords API response for Amazon Keyspaces Change Data Capture (CDC) streams, enabling consumers to track their current position within the stream. +* api-change:``sagemakerjobruntime``: Amazon SageMaker Job Runtime is a new service for managing trajectory data during multi-turn customization jobs. It provides APIs to send inference requests to models during job execution, mark rollouts as complete, and submit reward values for training trajectories. +* api-change:``lambda``: Adds configuration for tag propagation to Lambda-managed resources. + + 2.34.58 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index a21a63cdf2e8..515eb7bd4e0f 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.58' +__version__ = '2.34.59' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index ca064f703195..e1d892081eed 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.58. +# Generated by GNU Autoconf 2.71 for awscli 2.34.59. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.58' -PACKAGE_STRING='awscli 2.34.58' +PACKAGE_VERSION='2.34.59' +PACKAGE_STRING='awscli 2.34.59' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.58 +awscli configure 2.34.59 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.58, which was +It was created by awscli $as_me 2.34.59, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.58, which was +This file was extended by awscli $as_me 2.34.59, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.58 +awscli config.status 2.34.59 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index de4ef55744e0..09ad5453fd7d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.58]) +AC_INIT([awscli], [2.34.59]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index fee1bf68b746..5d426e8478fa 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.58' +release = '2.34.59' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From c80e67d8f23e82d50e9046963329d8f5d9b5acbf Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 3 Jun 2026 05:45:20 +0000 Subject: [PATCH 57/73] Update to latest models --- .../api-change-georoutes-65234.json | 5 + .../2020-11-19/endpoint-rule-set-1.json | 446 +++++++++++++++--- .../geo-routes/endpoint-tests-1.json | 188 +++++--- 3 files changed, 521 insertions(+), 118 deletions(-) create mode 100644 .changes/next-release/api-change-georoutes-65234.json diff --git a/.changes/next-release/api-change-georoutes-65234.json b/.changes/next-release/api-change-georoutes-65234.json new file mode 100644 index 000000000000..81acd38c08e1 --- /dev/null +++ b/.changes/next-release/api-change-georoutes-65234.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``geo-routes``", + "description": "Add \"standardRegionalEndpoints\" back to fix 'Could not connect to the endpoint URL'" +} diff --git a/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json b/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json index b52fb08760de..923fe4a0f613 100644 --- a/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json +++ b/awscli/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json @@ -1,12 +1,6 @@ { "version": "1.0", "parameters": { - "Region": { - "builtIn": "AWS::Region", - "required": false, - "documentation": "The AWS region used to dispatch the request.", - "type": "string" - }, "UseDualStack": { "builtIn": "AWS::UseDualStack", "required": true, @@ -26,6 +20,12 @@ "required": false, "documentation": "Override the endpoint used to send this request", "type": "string" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" } }, "rules": [ @@ -119,6 +119,350 @@ } ], "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.us-gov.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [ { @@ -177,18 +521,12 @@ "rules": [ { "conditions": [], - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://geo-routes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ], - "type": "tree" + "endpoint": { + "url": "https://geo-routes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" @@ -211,6 +549,15 @@ }, true ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] } ], "rules": [ @@ -235,18 +582,12 @@ "rules": [ { "conditions": [], - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://geo-routes-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ], - "type": "tree" + "endpoint": { + "url": "https://geo-routes-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" @@ -261,6 +602,15 @@ }, { "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, { "fn": "booleanEquals", "argv": [ @@ -293,18 +643,12 @@ "rules": [ { "conditions": [], - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://geo-routes.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ], - "type": "tree" + "endpoint": { + "url": "https://geo-routes.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" @@ -319,18 +663,12 @@ }, { "conditions": [], - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://geo-routes.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ], - "type": "tree" + "endpoint": { + "url": "https://geo-routes.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" diff --git a/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json b/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json index cbd7b0092afa..5a9fc706f5c8 100644 --- a/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json +++ b/tests/functional/botocore/endpoint-rules/geo-routes/endpoint-tests-1.json @@ -1,10 +1,43 @@ { "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false, + "UseDualStack": true + } + }, { "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-east-1.api.aws" + "url": "https://routes.geo-fips.us-east-1.api.aws" } }, "params": { @@ -17,7 +50,7 @@ "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-east-1.amazonaws.com" + "url": "https://routes.geo-fips.us-east-1.amazonaws.com" } }, "params": { @@ -30,7 +63,7 @@ "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-east-1.api.aws" + "url": "https://routes.geo.us-east-1.api.aws" } }, "params": { @@ -43,7 +76,7 @@ "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-east-1.amazonaws.com" + "url": "https://routes.geo.us-east-1.amazonaws.com" } }, "params": { @@ -53,210 +86,237 @@ } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://geo-routes-fips.cn-northwest-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "cn-north-1", + "Region": "cn-northwest-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.cn-north-1.amazonaws.com.cn" + "url": "https://geo-routes-fips.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "Region": "cn-north-1", + "Region": "cn-northwest-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-routes.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://geo-routes.cn-northwest-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "cn-north-1", + "Region": "cn-northwest-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.cn-north-1.amazonaws.com.cn" + "url": "https://geo-routes.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "Region": "cn-north-1", + "Region": "cn-northwest-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-gov-east-1.api.aws" + "url": "https://geo-routes-fips.eusc-de-east-1.amazonaws.eu" } }, "params": { - "Region": "us-gov-east-1", + "Region": "eusc-de-east-1", "UseFIPS": true, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-gov-east-1.amazonaws.com" + "url": "https://geo-routes.eusc-de-east-1.amazonaws.eu" } }, "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, + "Region": "eusc-de-east-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-gov-east-1.api.aws" + "url": "https://geo-routes-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", - "UseFIPS": false, - "UseDualStack": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-gov-east-1.amazonaws.com" + "url": "https://geo-routes.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", + "Region": "us-iso-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://geo-routes-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-isob-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-iso-east-1.c2s.ic.gov" + "url": "https://geo-routes.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-isob-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://geo-routes-fips.eu-isoe-west-1.cloud.adc-e.uk" } }, "params": { - "Region": "us-isob-east-1", + "Region": "eu-isoe-west-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-routes.us-isob-east-1.sc2s.sgov.gov" + "url": "https://geo-routes.eu-isoe-west-1.cloud.adc-e.uk" } }, "params": { - "Region": "us-isob-east-1", + "Region": "eu-isoe-west-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://geo-routes-fips.us-isof-south-1.csp.hci.ic.gov" } }, "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": false, - "Endpoint": "https://example.com" + "Region": "us-isof-south-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://geo-routes.us-isof-south-1.csp.hci.ic.gov" } }, "params": { + "Region": "us-isof-south-1", "UseFIPS": false, - "UseDualStack": false, - "Endpoint": "https://example.com" + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://routes.geo-fips.us-gov-west-1.us-gov.api.aws" + } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-west-1", "UseFIPS": true, - "UseDualStack": false, - "Endpoint": "https://example.com" + "UseDualStack": true } }, { - "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://routes.geo-fips.us-gov-west-1.us-gov.amazonaws.com" + } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://routes.geo.us-gov-west-1.us-gov.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://routes.geo.us-gov-west-1.us-gov.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "UseDualStack": true, - "Endpoint": "https://example.com" + "UseDualStack": false } }, { From 8d8d139ecd5e3940f9ffa24d95e1cf971f686d21 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 3 Jun 2026 05:45:20 +0000 Subject: [PATCH 58/73] Update endpoints model --- awscli/botocore/data/endpoints.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/awscli/botocore/data/endpoints.json b/awscli/botocore/data/endpoints.json index e8a9fa7e88c7..cc25b5423242 100644 --- a/awscli/botocore/data/endpoints.json +++ b/awscli/botocore/data/endpoints.json @@ -38949,6 +38949,11 @@ "eu-isoe-west-1" : { } } }, + "api.sagemaker" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, "apigateway" : { "endpoints" : { "eu-isoe-west-1" : { } From 700d81df5ea7852435a8dbdcb3f744a8dc9936cc Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 3 Jun 2026 05:47:23 +0000 Subject: [PATCH 59/73] Bump version to 2.34.60 --- .changes/2.34.60.json | 7 +++++++ .../next-release/api-change-georoutes-65234.json | 5 ----- CHANGELOG.rst | 6 ++++++ awscli/__init__.py | 2 +- configure | 14 +++++++------- configure.ac | 2 +- doc/source/conf.py | 2 +- 7 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 .changes/2.34.60.json delete mode 100644 .changes/next-release/api-change-georoutes-65234.json diff --git a/.changes/2.34.60.json b/.changes/2.34.60.json new file mode 100644 index 000000000000..0e2a831152cc --- /dev/null +++ b/.changes/2.34.60.json @@ -0,0 +1,7 @@ +[ + { + "category": "``geo-routes``", + "description": "Add \"standardRegionalEndpoints\" back to fix 'Could not connect to the endpoint URL'", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-georoutes-65234.json b/.changes/next-release/api-change-georoutes-65234.json deleted file mode 100644 index 81acd38c08e1..000000000000 --- a/.changes/next-release/api-change-georoutes-65234.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``geo-routes``", - "description": "Add \"standardRegionalEndpoints\" back to fix 'Could not connect to the endpoint URL'" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c84c0ffe4379..7e3ef2a930a2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,12 @@ CHANGELOG ========= +2.34.60 +======= + +* api-change:``geo-routes``: Add "standardRegionalEndpoints" back to fix 'Could not connect to the endpoint URL' + + 2.34.59 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 515eb7bd4e0f..390aaea5948c 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.59' +__version__ = '2.34.60' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index e1d892081eed..8b62683c4cd1 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.59. +# Generated by GNU Autoconf 2.71 for awscli 2.34.60. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.59' -PACKAGE_STRING='awscli 2.34.59' +PACKAGE_VERSION='2.34.60' +PACKAGE_STRING='awscli 2.34.60' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.59 +awscli configure 2.34.60 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.59, which was +It was created by awscli $as_me 2.34.60, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.59, which was +This file was extended by awscli $as_me 2.34.60, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.59 +awscli config.status 2.34.60 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 09ad5453fd7d..44e7d7e97471 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.59]) +AC_INIT([awscli], [2.34.60]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 5d426e8478fa..05482b6483c1 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.59' +release = '2.34.60' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From af231d48470850cd77166d1212daa83449d50c21 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 3 Jun 2026 18:06:28 +0000 Subject: [PATCH 60/73] Merge customizations for SocialMessaging --- awscli/botocore/__init__.py | 20 ++++++++++++++++ tests/unit/botocore/test_utils.py | 40 +++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/awscli/botocore/__init__.py b/awscli/botocore/__init__.py index 39be7cdfa9b7..14689ca7f688 100644 --- a/awscli/botocore/__init__.py +++ b/awscli/botocore/__init__.py @@ -61,6 +61,8 @@ def emit(self, record): 'AssociateWhatsAppBusinessAccount', '-', ): 'associate-whatsapp-business-account', + ('CreateWhatsAppFlow', '_'): 'create_whatsapp_flow', + ('CreateWhatsAppFlow', '-'): 'create-whatsapp-flow', ('CreateWhatsAppMessageTemplate', '_'): 'create_whatsapp_message_template', ('CreateWhatsAppMessageTemplate', '-'): 'create-whatsapp-message-template', ( @@ -79,10 +81,14 @@ def emit(self, record): 'CreateWhatsAppMessageTemplateMedia', '-', ): 'create-whatsapp-message-template-media', + ('DeleteWhatsAppFlow', '_'): 'delete_whatsapp_flow', + ('DeleteWhatsAppFlow', '-'): 'delete-whatsapp-flow', ('DeleteWhatsAppMessageMedia', '_'): 'delete_whatsapp_message_media', ('DeleteWhatsAppMessageMedia', '-'): 'delete-whatsapp-message-media', ('DeleteWhatsAppMessageTemplate', '_'): 'delete_whatsapp_message_template', ('DeleteWhatsAppMessageTemplate', '-'): 'delete-whatsapp-message-template', + ('DeprecateWhatsAppFlow', '_'): 'deprecate_whatsapp_flow', + ('DeprecateWhatsAppFlow', '-'): 'deprecate-whatsapp-flow', ( 'DisassociateWhatsAppBusinessAccount', '_', @@ -107,6 +113,10 @@ def emit(self, record): 'GetLinkedWhatsAppBusinessAccountPhoneNumber', '-', ): 'get-linked-whatsapp-business-account-phone-number', + ('GetWhatsAppFlow', '_'): 'get_whatsapp_flow', + ('GetWhatsAppFlow', '-'): 'get-whatsapp-flow', + ('GetWhatsAppFlowPreview', '_'): 'get_whatsapp_flow_preview', + ('GetWhatsAppFlowPreview', '-'): 'get-whatsapp-flow-preview', ('GetWhatsAppMessageMedia', '_'): 'get_whatsapp_message_media', ('GetWhatsAppMessageMedia', '-'): 'get-whatsapp-message-media', ('GetWhatsAppMessageTemplate', '_'): 'get_whatsapp_message_template', @@ -119,12 +129,18 @@ def emit(self, record): 'ListLinkedWhatsAppBusinessAccounts', '-', ): 'list-linked-whatsapp-business-accounts', + ('ListWhatsAppFlowAssets', '_'): 'list_whatsapp_flow_assets', + ('ListWhatsAppFlowAssets', '-'): 'list-whatsapp-flow-assets', + ('ListWhatsAppFlows', '_'): 'list_whatsapp_flows', + ('ListWhatsAppFlows', '-'): 'list-whatsapp-flows', ('ListWhatsAppMessageTemplates', '_'): 'list_whatsapp_message_templates', ('ListWhatsAppMessageTemplates', '-'): 'list-whatsapp-message-templates', ('ListWhatsAppTemplateLibrary', '_'): 'list_whatsapp_template_library', ('ListWhatsAppTemplateLibrary', '-'): 'list-whatsapp-template-library', ('PostWhatsAppMessageMedia', '_'): 'post_whatsapp_message_media', ('PostWhatsAppMessageMedia', '-'): 'post-whatsapp-message-media', + ('PublishWhatsAppFlow', '_'): 'publish_whatsapp_flow', + ('PublishWhatsAppFlow', '-'): 'publish-whatsapp-flow', ( 'PutWhatsAppBusinessAccountEventDestinations', '_', @@ -135,6 +151,10 @@ def emit(self, record): ): 'put-whatsapp-business-account-event-destinations', ('SendWhatsAppMessage', '_'): 'send_whatsapp_message', ('SendWhatsAppMessage', '-'): 'send-whatsapp-message', + ('UpdateWhatsAppFlow', '_'): 'update_whatsapp_flow', + ('UpdateWhatsAppFlow', '-'): 'update-whatsapp-flow', + ('UpdateWhatsAppFlowAssets', '_'): 'update_whatsapp_flow_assets', + ('UpdateWhatsAppFlowAssets', '-'): 'update-whatsapp-flow-assets', ('UpdateWhatsAppMessageTemplate', '_'): 'update_whatsapp_message_template', ('UpdateWhatsAppMessageTemplate', '-'): 'update-whatsapp-message-template', } diff --git a/tests/unit/botocore/test_utils.py b/tests/unit/botocore/test_utils.py index c422c8ecd55a..ad6b9653c947 100644 --- a/tests/unit/botocore/test_utils.py +++ b/tests/unit/botocore/test_utils.py @@ -302,6 +302,10 @@ def test_special_cases(self): xform_name('AssociateWhatsAppBusinessAccount', '-'), 'associate-whatsapp-business-account', ) + self.assertEqual( + xform_name('CreateWhatsAppFlow', '-'), + 'create-whatsapp-flow', + ) self.assertEqual( xform_name('CreateWhatsAppMessageTemplate', '-'), 'create-whatsapp-message-template', @@ -314,6 +318,10 @@ def test_special_cases(self): xform_name('CreateWhatsAppMessageTemplateMedia', '-'), 'create-whatsapp-message-template-media', ) + self.assertEqual( + xform_name('DeleteWhatsAppFlow', '-'), + 'delete-whatsapp-flow', + ) self.assertEqual( xform_name('DeleteWhatsAppMessageMedia', '-'), 'delete-whatsapp-message-media', @@ -322,6 +330,10 @@ def test_special_cases(self): xform_name('DeleteWhatsAppMessageTemplate', '-'), 'delete-whatsapp-message-template', ) + self.assertEqual( + xform_name('DeprecateWhatsAppFlow', '-'), + 'deprecate-whatsapp-flow', + ) self.assertEqual( xform_name('DisassociateWhatsAppBusinessAccount', '-'), 'disassociate-whatsapp-business-account', @@ -334,6 +346,14 @@ def test_special_cases(self): xform_name('GetLinkedWhatsAppBusinessAccountPhoneNumber', '-'), 'get-linked-whatsapp-business-account-phone-number', ) + self.assertEqual( + xform_name('GetWhatsAppFlow', '-'), + 'get-whatsapp-flow', + ) + self.assertEqual( + xform_name('GetWhatsAppFlowPreview', '-'), + 'get-whatsapp-flow-preview', + ) self.assertEqual( xform_name('GetWhatsAppMessageMedia', '-'), 'get-whatsapp-message-media', @@ -346,6 +366,14 @@ def test_special_cases(self): xform_name('ListLinkedWhatsAppBusinessAccounts', '-'), 'list-linked-whatsapp-business-accounts', ) + self.assertEqual( + xform_name('ListWhatsAppFlowAssets', '-'), + 'list-whatsapp-flow-assets', + ) + self.assertEqual( + xform_name('ListWhatsAppFlows', '-'), + 'list-whatsapp-flows', + ) self.assertEqual( xform_name('ListWhatsAppMessageTemplates', '-'), 'list-whatsapp-message-templates', @@ -358,6 +386,10 @@ def test_special_cases(self): xform_name('PostWhatsAppMessageMedia', '-'), 'post-whatsapp-message-media', ) + self.assertEqual( + xform_name('PublishWhatsAppFlow', '-'), + 'publish-whatsapp-flow', + ) self.assertEqual( xform_name('PutWhatsAppBusinessAccountEventDestinations', '-'), 'put-whatsapp-business-account-event-destinations', @@ -365,6 +397,14 @@ def test_special_cases(self): self.assertEqual( xform_name('SendWhatsAppMessage', '-'), 'send-whatsapp-message' ) + self.assertEqual( + xform_name('UpdateWhatsAppFlow', '-'), + 'update-whatsapp-flow', + ) + self.assertEqual( + xform_name('UpdateWhatsAppFlowAssets', '-'), + 'update-whatsapp-flow-assets', + ) self.assertEqual( xform_name('UpdateWhatsAppMessageTemplate', '-'), 'update-whatsapp-message-template', From 394df4682788bdc79cc6925c9df7b3c6069ac1ac Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 3 Jun 2026 18:06:35 +0000 Subject: [PATCH 61/73] Update to latest models --- .../api-change-arcregionswitch-40214.json | 5 + .../next-release/api-change-ce-16750.json | 5 + .../api-change-computeoptimizer-61378.json | 5 + .../api-change-connect-85099.json | 5 + .../api-change-inspector2-24370.json | 5 + .../api-change-pinpointsmsvoice-41564.json | 5 + .../api-change-socialmessaging-60882.json | 5 + .../2022-07-26/service-2.json | 209 +++- .../data/ce/2017-10-25/service-2.json | 12 +- .../2019-11-01/service-2.json | 20 +- .../data/connect/2017-08-08/service-2.json | 89 +- .../data/inspector2/2020-06-08/service-2.json | 39 +- .../2018-09-05/endpoint-rule-set-1.json | 8 +- .../2024-01-01/paginators-1.json | 12 + .../socialmessaging/2024-01-01/service-2.json | 950 +++++++++++++++++- 15 files changed, 1331 insertions(+), 43 deletions(-) create mode 100644 .changes/next-release/api-change-arcregionswitch-40214.json create mode 100644 .changes/next-release/api-change-ce-16750.json create mode 100644 .changes/next-release/api-change-computeoptimizer-61378.json create mode 100644 .changes/next-release/api-change-connect-85099.json create mode 100644 .changes/next-release/api-change-inspector2-24370.json create mode 100644 .changes/next-release/api-change-pinpointsmsvoice-41564.json create mode 100644 .changes/next-release/api-change-socialmessaging-60882.json diff --git a/.changes/next-release/api-change-arcregionswitch-40214.json b/.changes/next-release/api-change-arcregionswitch-40214.json new file mode 100644 index 000000000000..96082567613d --- /dev/null +++ b/.changes/next-release/api-change-arcregionswitch-40214.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``arc-region-switch``", + "description": "ARC Region Switch now supports three new execution blocks for multi-Region database workloads-Amazon Aurora Serverless scaling, Amazon Aurora Provisioned scaling, and Amazon Neptune Global Database failover." +} diff --git a/.changes/next-release/api-change-ce-16750.json b/.changes/next-release/api-change-ce-16750.json new file mode 100644 index 000000000000..9f6418caf798 --- /dev/null +++ b/.changes/next-release/api-change-ce-16750.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ce``", + "description": "Added support for target-coverage-based Savings Plans purchase analysis. The StartCommitmentPurchaseAnalysis API now accepts a new TARGET AVERAGE COVERAGE value for AnalysisType, as well as an optional SavingsPlansTargetCoverage field in SavingsPlansPurchaseAnalysisConfiguration" +} diff --git a/.changes/next-release/api-change-computeoptimizer-61378.json b/.changes/next-release/api-change-computeoptimizer-61378.json new file mode 100644 index 000000000000..89d75bcaa733 --- /dev/null +++ b/.changes/next-release/api-change-computeoptimizer-61378.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``compute-optimizer``", + "description": "This release lets customers extend the lookback period for Amazon EBS volume and Amazon ECS rightsizing recommendations to 32 days." +} diff --git a/.changes/next-release/api-change-connect-85099.json b/.changes/next-release/api-change-connect-85099.json new file mode 100644 index 000000000000..c8b34f26d283 --- /dev/null +++ b/.changes/next-release/api-change-connect-85099.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connect``", + "description": "SearchContacts Connect API now supports filtering contacts by the AI Agents involved in handling them" +} diff --git a/.changes/next-release/api-change-inspector2-24370.json b/.changes/next-release/api-change-inspector2-24370.json new file mode 100644 index 000000000000..4546838a8bc4 --- /dev/null +++ b/.changes/next-release/api-change-inspector2-24370.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``inspector2``", + "description": "Inspector support for enhanced scanning" +} diff --git a/.changes/next-release/api-change-pinpointsmsvoice-41564.json b/.changes/next-release/api-change-pinpointsmsvoice-41564.json new file mode 100644 index 000000000000..641572f88c3e --- /dev/null +++ b/.changes/next-release/api-change-pinpointsmsvoice-41564.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``pinpoint-sms-voice``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-socialmessaging-60882.json b/.changes/next-release/api-change-socialmessaging-60882.json new file mode 100644 index 000000000000..834f386e79f3 --- /dev/null +++ b/.changes/next-release/api-change-socialmessaging-60882.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``socialmessaging``", + "description": "Adding support for WhatsApp flow APIs and adding AccessDeniedByMetaException for Template APIs" +} diff --git a/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json b/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json index bf4cab7de42e..c38e30ff4cc8 100644 --- a/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json +++ b/awscli/botocore/data/arc-region-switch/2022-07-26/service-2.json @@ -208,6 +208,7 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"}, + {"shape":"IllegalArgumentException"}, {"shape":"InternalServerException"} ], "documentation":"

    List the Amazon Route 53 health checks.

    ", @@ -676,6 +677,89 @@ "type":"list", "member":{"shape":"AuroraClusterArn"} }, + "AuroraInstanceArn":{ + "type":"string", + "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:db:[A-Za-z][0-9A-Za-z-]{0,62}" + }, + "AuroraProvisionedScalingConfiguration":{ + "type":"structure", + "required":[ + "globalClusterIdentifier", + "regionDatabaseClusterArns", + "instanceArns" + ], + "members":{ + "timeoutMinutes":{ + "shape":"AuroraProvisionedScalingConfigurationTimeoutMinutesInteger", + "documentation":"

    The timeout value specified for the configuration.

    " + }, + "crossAccountRole":{ + "shape":"IamRoleArn", + "documentation":"

    The cross account role for the configuration.

    " + }, + "externalId":{ + "shape":"String", + "documentation":"

    The external ID (secret key) for the configuration.

    " + }, + "globalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

    The global cluster identifier for a global database.

    " + }, + "regionDatabaseClusterArns":{ + "shape":"RegionAuroraClusterMap", + "documentation":"

    Per-Region configuration that maps each Region to the Aurora database cluster ARN for scaling.

    " + }, + "instanceArns":{ + "shape":"RegionAuroraInstanceArnMap", + "documentation":"

    Per-Region configuration that maps each Region to the Aurora database instance ARN for scaling.

    " + } + }, + "documentation":"

    Configuration for Amazon Aurora provisioned cluster scaling used in a Region switch plan.

    " + }, + "AuroraProvisionedScalingConfigurationTimeoutMinutesInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "AuroraServerlessScalingConfiguration":{ + "type":"structure", + "required":[ + "globalClusterIdentifier", + "regionDatabaseClusterArns" + ], + "members":{ + "timeoutMinutes":{ + "shape":"AuroraServerlessScalingConfigurationTimeoutMinutesInteger", + "documentation":"

    The timeout value specified for the configuration.

    " + }, + "crossAccountRole":{ + "shape":"IamRoleArn", + "documentation":"

    The cross account role for the configuration.

    " + }, + "externalId":{ + "shape":"String", + "documentation":"

    The external ID (secret key) for the configuration.

    " + }, + "globalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

    The global cluster identifier for a global database.

    " + }, + "regionDatabaseClusterArns":{ + "shape":"RegionAuroraClusterMap", + "documentation":"

    Per-Region configuration that maps each Region to the Aurora database cluster ARN for scaling.

    " + }, + "targetPercent":{ + "shape":"Integer", + "documentation":"

    The target capacity percentage for Aurora Serverless scaling.

    " + } + }, + "documentation":"

    Configuration for Amazon Aurora Serverless scaling used in a Region switch plan.

    " + }, + "AuroraServerlessScalingConfigurationTimeoutMinutesInteger":{ + "type":"integer", + "box":true, + "min":1 + }, "CancelPlanExecutionRequest":{ "type":"structure", "required":[ @@ -1240,6 +1324,18 @@ "lambdaEventSourceMappingConfig":{ "shape":"LambdaEventSourceMappingConfiguration", "documentation":"

    A Lambda event source mapping execution block.

    " + }, + "auroraServerlessScalingConfig":{ + "shape":"AuroraServerlessScalingConfiguration", + "documentation":"

    An Aurora Serverless scaling execution block.

    " + }, + "auroraProvisionedScalingConfig":{ + "shape":"AuroraProvisionedScalingConfiguration", + "documentation":"

    An Aurora provisioned cluster scaling execution block.

    " + }, + "neptuneGlobalDatabaseConfig":{ + "shape":"NeptuneGlobalDatabaseConfiguration", + "documentation":"

    A Neptune global database execution block.

    " } }, "documentation":"

    Execution block configurations for a workflow in a Region switch plan. An execution block represents a specific type of action to perform during a Region switch.

    ", @@ -1261,7 +1357,10 @@ "DocumentDb", "RdsPromoteReadReplica", "RdsCreateCrossRegionReplica", - "LambdaEventSourceMapping" + "LambdaEventSourceMapping", + "AuroraServerlessScaling", + "AuroraProvisionedScaling", + "NeptuneGlobalDatabase" ] }, "ExecutionComment":{ @@ -2033,7 +2132,7 @@ }, "maxResults":{ "shape":"ListRoute53HealthChecksInRegionRequestMaxResultsInteger", - "documentation":"

    The number of objects that you want to return with this call.

    " + "documentation":"

    The maximum number of results to return in the response.

    " }, "nextToken":{ "shape":"NextToken", @@ -2056,7 +2155,7 @@ }, "nextToken":{ "shape":"NextToken", - "documentation":"

    Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

    " + "documentation":"

    A pagination token. A response may contain no results while still including a nextToken. Continue paginating until nextToken is null to retrieve all results.

    " } } }, @@ -2078,7 +2177,7 @@ }, "maxResults":{ "shape":"ListRoute53HealthChecksRequestMaxResultsInteger", - "documentation":"

    The number of objects that you want to return with this call.

    " + "documentation":"

    The maximum number of results to return in the response.

    " }, "nextToken":{ "shape":"NextToken", @@ -2090,7 +2189,7 @@ "type":"integer", "box":true, "max":100, - "min":10 + "min":1 }, "ListRoute53HealthChecksResponse":{ "type":"structure", @@ -2101,7 +2200,7 @@ }, "nextToken":{ "shape":"NextToken", - "documentation":"

    Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

    " + "documentation":"

    A pagination token. A response may contain no results while still including a nextToken. Continue paginating until nextToken is null to retrieve all results.

    " } } }, @@ -2144,6 +2243,81 @@ }, "documentation":"

    A simplified representation of a workflow in a Region switch plan.

    " }, + "NeptuneClusterArn":{ + "type":"string", + "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:cluster:[A-Za-z][0-9A-Za-z-]{0,62}" + }, + "NeptuneDefaultBehavior":{ + "type":"string", + "enum":[ + "switchoverOnly", + "failover" + ] + }, + "NeptuneGlobalClusterIdentifier":{ + "type":"string", + "max":63, + "min":1, + "pattern":"[A-Za-z][0-9A-Za-z-]*" + }, + "NeptuneGlobalDatabaseConfiguration":{ + "type":"structure", + "required":[ + "behavior", + "globalClusterIdentifier", + "regionDatabaseClusterArns" + ], + "members":{ + "timeoutMinutes":{ + "shape":"NeptuneGlobalDatabaseConfigurationTimeoutMinutesInteger", + "documentation":"

    The timeout value specified for the configuration.

    " + }, + "crossAccountRole":{ + "shape":"IamRoleArn", + "documentation":"

    The cross account role for the configuration.

    " + }, + "externalId":{ + "shape":"String", + "documentation":"

    The external ID (secret key) for the configuration.

    " + }, + "behavior":{ + "shape":"NeptuneDefaultBehavior", + "documentation":"

    The behavior for a global database, that is, only allow switchover or also allow failover.

    " + }, + "ungraceful":{ + "shape":"NeptuneUngraceful", + "documentation":"

    The settings for ungraceful execution.

    " + }, + "globalClusterIdentifier":{ + "shape":"NeptuneGlobalClusterIdentifier", + "documentation":"

    The global cluster identifier for a Neptune global database.

    " + }, + "regionDatabaseClusterArns":{ + "shape":"RegionNeptuneClusterArnMap", + "documentation":"

    The database cluster Amazon Resource Names (ARNs) for a Neptune global database.

    " + } + }, + "documentation":"

    Configuration for Amazon Neptune global databases used in a Region switch plan.

    " + }, + "NeptuneGlobalDatabaseConfigurationTimeoutMinutesInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "NeptuneUngraceful":{ + "type":"structure", + "members":{ + "ungraceful":{ + "shape":"NeptuneUngracefulBehavior", + "documentation":"

    The settings for ungraceful execution.

    " + } + }, + "documentation":"

    Configuration for handling failures when performing operations on Neptune global databases.

    " + }, + "NeptuneUngracefulBehavior":{ + "type":"string", + "enum":["failover"] + }, "NextToken":{ "type":"string", "max":2048, @@ -2344,6 +2518,21 @@ "key":{"shape":"String"}, "value":{"shape":"ArcRoutingControlStates"} }, + "RegionAuroraClusterMap":{ + "type":"map", + "key":{"shape":"Region"}, + "value":{"shape":"AuroraClusterArn"}, + "documentation":"

    A map of Region to Aurora database cluster ARN for Aurora Serverless scaling configuration.

    ", + "max":2, + "min":2 + }, + "RegionAuroraInstanceArnMap":{ + "type":"map", + "key":{"shape":"Region"}, + "value":{"shape":"AuroraInstanceArn"}, + "max":2, + "min":1 + }, "RegionEventSourceMappingMap":{ "type":"map", "key":{"shape":"Region"}, @@ -2357,6 +2546,14 @@ "max":2, "min":2 }, + "RegionNeptuneClusterArnMap":{ + "type":"map", + "key":{"shape":"Region"}, + "value":{"shape":"NeptuneClusterArn"}, + "documentation":"

    A map of Region to Neptune database cluster ARN for Neptune global database configuration.

    ", + "max":2, + "min":2 + }, "RegionSwitchPlanConfiguration":{ "type":"structure", "required":["arn"], diff --git a/awscli/botocore/data/ce/2017-10-25/service-2.json b/awscli/botocore/data/ce/2017-10-25/service-2.json index 127ab27b9fb5..e4223c887571 100644 --- a/awscli/botocore/data/ce/2017-10-25/service-2.json +++ b/awscli/botocore/data/ce/2017-10-25/service-2.json @@ -825,7 +825,8 @@ "type":"string", "enum":[ "MAX_SAVINGS", - "CUSTOM_COMMITMENT" + "CUSTOM_COMMITMENT", + "TARGET_AVERAGE_COVERAGE" ] }, "Anomalies":{ @@ -5188,6 +5189,10 @@ "LookBackTimePeriod":{ "shape":"DateInterval", "documentation":"

    The time period associated with the analysis.

    " + }, + "SavingsPlansTargetCoverage":{ + "shape":"SavingsPlansTargetCoverage", + "documentation":"

    Specifies the target Savings Plans coverage as a percentage from 10 to 100. This field is required when AnalysisType is TARGET_AVERAGE_COVERAGE. It defines the target average hourly coverage that the recommended Savings Plans commitment should achieve over the lookback period.

    " } }, "documentation":"

    The configuration for the Savings Plans purchase analysis.

    " @@ -5480,6 +5485,11 @@ }, "documentation":"

    The amount of savings that you're accumulating, against the public On-Demand rate of the usage accrued in an account.

    " }, + "SavingsPlansTargetCoverage":{ + "type":"integer", + "max":100, + "min":10 + }, "SavingsPlansToAdd":{ "type":"list", "member":{"shape":"SavingsPlans"}, diff --git a/awscli/botocore/data/compute-optimizer/2019-11-01/service-2.json b/awscli/botocore/data/compute-optimizer/2019-11-01/service-2.json index 6f67f1c95c4d..cd4a70bafbce 100644 --- a/awscli/botocore/data/compute-optimizer/2019-11-01/service-2.json +++ b/awscli/botocore/data/compute-optimizer/2019-11-01/service-2.json @@ -1053,6 +1053,10 @@ "savingsEstimationMode":{ "shape":"EBSSavingsEstimationMode", "documentation":"

    Describes the savings estimation mode preference applied for calculating savings opportunity for Amazon EBS volumes.

    " + }, + "lookBackPeriod":{ + "shape":"LookBackPeriodPreference", + "documentation":"

    The number of days for which utilization metrics were analyzed for the volume.

    " } }, "documentation":"

    Describes the effective recommendation preferences for Amazon EBS volumes.

    " @@ -1169,6 +1173,10 @@ "savingsEstimationMode":{ "shape":"ECSSavingsEstimationMode", "documentation":"

    Describes the savings estimation mode preference applied for calculating savings opportunity for Amazon ECS services.

    " + }, + "lookBackPeriod":{ + "shape":"LookBackPeriodPreference", + "documentation":"

    The number of days the Amazon ECS service utilization metrics were analyzed.

    " } }, "documentation":"

    Describes the effective recommendation preferences for Amazon ECS services.

    " @@ -2024,7 +2032,8 @@ "EffectiveRecommendationPreferencesSavingsEstimationMode", "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", - "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts", + "EffectiveRecommendationPreferencesLookBackPeriod" ] }, "ExportableECSServiceFields":{ @@ -2341,7 +2350,8 @@ "EffectiveRecommendationPreferencesSavingsEstimationMode", "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", - "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts", + "EffectiveRecommendationPreferencesLookBackPeriod" ] }, "ExportableVolumeFields":{ @@ -2741,7 +2751,7 @@ }, "lookBackPeriod":{ "shape":"LookBackPeriodPreference", - "documentation":"

    The number of days the utilization metrics of the Amazon Web Services resource are analyzed.

    To validate that the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations actions.

    " + "documentation":"

    The number of days the utilization metrics of the Amazon Web Services resource are analyzed.

    To validate that the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetAutoScalingGroupRecommendations, GetEC2InstanceRecommendations, GetEBSVolumeRecommendations, GetECSServiceRecommendations, or GetRDSDatabaseRecommendations actions.

    " }, "utilizationPreferences":{ "shape":"UtilizationPreferences", @@ -4440,7 +4450,7 @@ }, "lookBackPeriod":{ "shape":"LookBackPeriodPreference", - "documentation":"

    The preference to control the number of days the utilization metrics of the Amazon Web Services resource are analyzed. When this preference isn't specified, we use the default value DAYS_14.

    You can only set this preference for the Amazon EC2 instance and Auto Scaling group resource types.

    • Amazon EC2 instance lookback preferences can be set at the organization, account, and resource levels.

    • Auto Scaling group lookback preferences can only be set at the resource level.

    " + "documentation":"

    The preference to control the number of days the utilization metrics of the Amazon Web Services resource are analyzed. When this preference isn't specified, we use the default value DAYS_14.

    You can only set this preference for the Amazon EC2 instance, Auto Scaling group, Amazon EBS volume, Amazon ECS service on Fargate, Amazon RDS DB instance, and Aurora DB cluster storage resource types.

    • Lookback period preferences for Amazon EC2 instances, Amazon EBS volumes, Amazon ECS services, Amazon RDS DB instances, and Aurora DB cluster storage resource types can be set at the organization, account, and resource levels.

    • Auto Scaling group lookback preferences can only be set at the resource level.

    • Amazon EBS volume lookback preferences can be set at the organization, account, and resource levels.

    • Amazon ECS service on Fargate lookback preferences can be set at the organization, account, and resource levels.

    • Amazon RDS DB instance lookback preferences can be set at the organization, account, and resource levels.

    • Aurora DB cluster storage lookback preferences can be set at the organization, account, and resource levels.

    • Changing the lookback period for Amazon EBS volumes to 14 days does not affect the 32-day lookback period used to determine whether an Amazon EBS volume is unattached.

    " }, "utilizationPreferences":{ "shape":"UtilizationPreferences", @@ -4448,7 +4458,7 @@ }, "preferredResources":{ "shape":"PreferredResources", - "documentation":"

    The preference to control which resource type values are considered when generating rightsizing recommendations. You can specify this preference as a combination of include and exclude lists. You must specify either an includeList or excludeList. If the preference is an empty set of resource type values, an error occurs.

    You can only set this preference for the Amazon EC2 instance and Auto Scaling group resource types.

    " + "documentation":"

    The preference to control which resource type values are considered when generating rightsizing recommendations. You can specify this preference as a combination of include and exclude lists. You must specify either an includeList or excludeList. If the preference is an empty set of resource type values, an error occurs.

    You can only set this preference for the Amazon EC2 instance, Auto Scaling group, Amazon EBS volume, Amazon ECS service, Amazon RDS DB instance, and Aurora DB cluster storage resource types.

    " }, "savingsEstimationMode":{ "shape":"SavingsEstimationMode", diff --git a/awscli/botocore/data/connect/2017-08-08/service-2.json b/awscli/botocore/data/connect/2017-08-08/service-2.json index 9d01e8df68d3..151beefc129a 100644 --- a/awscli/botocore/data/connect/2017-08-08/service-2.json +++ b/awscli/botocore/data/connect/2017-08-08/service-2.json @@ -7103,6 +7103,11 @@ "max":100, "min":1 }, + "AiAgentId":{ + "type":"string", + "max":128, + "min":0 + }, "AiAgentInfo":{ "type":"structure", "members":{ @@ -7121,15 +7126,56 @@ }, "documentation":"

    Information of the AI agent involved in the contact.

    " }, + "AiAgentSearchCriteria":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"AiAgentId", + "documentation":"

    ID of the AI Agent that was involved in the contact.

    " + }, + "VersionNumber":{ + "shape":"AiAgentVersionNumber", + "documentation":"

    Version of the AI agent that was involved in the contact. ID is required if VersionNumber is passed.

    ", + "box":true + }, + "AiAgentEscalated":{ + "shape":"Boolean", + "documentation":"

    A boolean flag indicating whether the contact initially handled by this AI agent was escalated to a human agent.

    ", + "box":true + }, + "AiUseCase":{ + "shape":"AiUseCase", + "documentation":"

    The use case or scenario for which the AI agent is involved in the contact.

    " + } + }, + "documentation":"

    The search criteria based on AI Agents metadata.

    " + }, + "AiAgentSearchCriteriaList":{ + "type":"list", + "member":{"shape":"AiAgentSearchCriteria"}, + "max":1, + "min":0 + }, "AiAgentVersionId":{ "type":"string", "max":128, "min":0 }, + "AiAgentVersionNumber":{"type":"integer"}, "AiAgents":{ "type":"list", "member":{"shape":"AiAgentInfo"} }, + "AiAgentsCriteria":{ + "type":"structure", + "members":{ + "Criteria":{ + "shape":"AiAgentSearchCriteriaList", + "documentation":"

    The list of criteria based on AI Agent metadata.

    " + } + }, + "documentation":"

    AI Agent search criteria definitions.

    " + }, "AiUseCase":{ "type":"string", "enum":[ @@ -9384,7 +9430,7 @@ }, "Content":{ "shape":"ChatContent", - "documentation":"

    The content of the chat message.

    • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.

    • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.

    • For application/vnd.amazonaws.connect.message.interactive.response, the Length Constraints are Minimum of 1, Maximum of 12288.

    " + "documentation":"

    The content of the chat message. Maximum of 16,384 bytes for all content types (text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response).

    Some messaging channels enforce lower limits. For channel-specific message size limits, see Chat message size limits by channel in the Amazon Connect Customer Administrator Guide.

    " } }, "documentation":"

    A chat message.

    " @@ -10718,6 +10764,10 @@ "GlobalResiliencyMetadata":{ "shape":"GlobalResiliencyMetadata", "documentation":"

    Additional routing information for contacts created in ACGR instances.

    " + }, + "AiAgentInfo":{ + "shape":"ContactSearchSummaryAiAgentInfoList", + "documentation":"

    Information about the AI agents involved in the contact.

    " } }, "documentation":"

    Information of returned contact.

    " @@ -10736,6 +10786,29 @@ }, "documentation":"

    Information about the agent who accepted the contact.

    " }, + "ContactSearchSummaryAiAgentInfo":{ + "type":"structure", + "members":{ + "AiAgentVersionId":{ + "shape":"AiAgentVersionId", + "documentation":"

    The unique identifier that specifies both the AI agent ID and its version number that was involved in the contact.

    " + }, + "AiAgentEscalated":{ + "shape":"Boolean", + "documentation":"

    A boolean flag indicating whether the contact initially handled by this AI agent was escalated to a human agent.

    ", + "box":true + }, + "AiUseCase":{ + "shape":"AiUseCase", + "documentation":"

    The use case or scenario for which the AI agent is involved in the contact. Valid values are AgentAssistance and SelfService.

    " + } + }, + "documentation":"

    Information of the AI agent involved in the contact.

    " + }, + "ContactSearchSummaryAiAgentInfoList":{ + "type":"list", + "member":{"shape":"ContactSearchSummaryAiAgentInfo"} + }, "ContactSearchSummaryQueueInfo":{ "type":"structure", "members":{ @@ -19945,15 +20018,15 @@ }, "Filters":{ "shape":"FiltersV2List", - "documentation":"

    Filtering is an operation that selects records that match a set of specified criteria. By narrowing the dataset before aggregation, filters ensure that only relevant records are included in the computation.

    Filter keys

    The following are valid filter keys for a GetMetricDataV2 request:

    AGENT | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE | ANSWERING_MACHINE_DETECTION_STATUS | BOT_ALIAS | BOT_ID | BOT_INTENT_NAME | BOT_LOCALE | BOT_VERSION | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE | CAMPAIGN_EXCLUDED_EVENT_TYPE | CASE_STATUS | CASE_TEMPLATE_ARN | CHANNEL | contact/segmentAttributes/connect:Subtype | contact/segmentAttributes/connect:ValidationTestType | DISCONNECT_REASON | EVALUATION_FORM | EVALUATION_QUESTION | EVALUATION_SECTION | EVALUATION_SOURCE | EVALUATOR_ID | FEATURE | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_MODULE_RESOURCE_ID | FLOWS_NEXT_RESOURCE_ID | FLOWS_NEXT_RESOURCE_QUEUE_ID | FLOWS_OUTCOME_TYPE | FLOWS_RESOURCE_ID | FORM_VERSION | INITIATING_FLOW | INITIATION_METHOD | INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE | PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | TEST_CASE | TEST_CASE_EXECUTION_FAILURE_REASON | TEST_CASE_EXECUTION_RESULT | TEST_CASE_EXECUTION_STATE

    The following filter keys correspond to Connect Customer resources and are used for authorizing requests. A GetMetricDataV2 request requires at least one of these filters:

    QUEUE, ROUTING_PROFILE, AGENT, AGENT_HIERARCHY_LEVEL_ONE, AGENT_HIERARCHY_LEVEL_TWO, AGENT_HIERARCHY_LEVEL_THREE, AGENT_HIERARCHY_LEVEL_FOUR, AGENT_HIERARCHY_LEVEL_FIVE, CAMPAIGN, EVALUATION_FORM, EVALUATOR_ID

    You can use up to 5 filter keys in a single request, and up to 100 filter values across all filter keys.

    Filter values

    • VOICE, CHAT, TASK, and EMAIL are valid filter values for the CHANNEL filter key. They do not count towards the limit of 100 filter values. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values, along with 4 channel filters.

    • contact_lens_conversational_analytics is a valid filter value for the FEATURE filter key. It is available only for contacts analyzed by Contact Lens conversational analytics.

    • connect:Chat, connect:SMS, connect:Telephony, and connect:WebRTC are valid filter value examples (not exhaustive) for the contact/segmentAttributes/connect:Subtype filter key.

    • ROUTING_STEP_EXPRESSION accepts a filter value up to 3,000 characters in length. This filter is case-sensitive and order-sensitive. JSON string fields must be sorted in ascending order, and JSON array order must be preserved.

    • TRUE and FALSE are the only valid filter values for the Q_CONNECT_ENABLED filter key.

      • TRUE includes all contacts that had Connect AI Agents enabled as part of the flow.

      • FALSE includes all contacts that did not have Connect AI Agents enabled as part of the flow.

    • EXPERIENCE_VALIDATION and FLOW_VALIDATION are the only valid filter values for the contact/segmentAttributes/connect:ValidationTestType filter key. This filter is available only for contact record-driven metrics.

    • Campaign ARNs are valid filter values for the CAMPAIGN filter key.

    • To filter by phone number, see Create a historical metrics report in the Connect Customer Administrator Guide.

    " + "documentation":"

    Filtering is an operation that selects records that match a set of specified criteria. By narrowing the dataset before aggregation, filters ensure that only relevant records are included in the computation.

    Filter keys

    The following are valid filter keys for a GetMetricDataV2 request:

    AGENT | AI_AGENT | AI_AGENT_ID | AI_AGENT_NAME | AI_AGENT_TYPE | AI_PROMPT | AI_PROMPT_ID | AI_PROMPT_NAME | AI_PROMPT_TYPE | AI_TOOL_ID | AI_TOOL_NAME | AI_TOOL_TYPE | AI_USE_CASE | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE | ANSWERING_MACHINE_DETECTION_STATUS | BOT_ALIAS | BOT_ID | BOT_INTENT_NAME | BOT_LOCALE | BOT_VERSION | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE | CAMPAIGN_EXCLUDED_EVENT_TYPE | CASE_STATUS | CASE_TEMPLATE_ARN | CHANNEL | contact/segmentAttributes/connect:Subtype | contact/segmentAttributes/connect:ValidationTestType | DISCONNECT_REASON | EVALUATION_FORM | EVALUATION_QUESTION | EVALUATION_SECTION | EVALUATION_SOURCE | EVALUATOR_ID | FEATURE | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_MODULE_RESOURCE_ID | FLOWS_NEXT_RESOURCE_ID | FLOWS_NEXT_RESOURCE_QUEUE_ID | FLOWS_OUTCOME_TYPE | FLOWS_RESOURCE_ID | FORM_VERSION | INITIATING_FLOW | INITIATION_METHOD | INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE | KNOWLEDGE_BASE_NAME | PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | SESSION_ID | TEST_CASE | TEST_CASE_EXECUTION_FAILURE_REASON | TEST_CASE_EXECUTION_RESULT | TEST_CASE_EXECUTION_STATE

    The following filter keys correspond to Connect Customer resources and are used for authorizing requests. A GetMetricDataV2 request requires at least one of these filters:

    QUEUE, ROUTING_PROFILE, AGENT, AGENT_HIERARCHY_LEVEL_ONE, AGENT_HIERARCHY_LEVEL_TWO, AGENT_HIERARCHY_LEVEL_THREE, AGENT_HIERARCHY_LEVEL_FOUR, AGENT_HIERARCHY_LEVEL_FIVE, CAMPAIGN, EVALUATION_FORM, EVALUATOR_ID

    You can use up to 5 filter keys in a single request, and up to 100 filter values across all filter keys.

    Filter values

    • VOICE, CHAT, TASK, and EMAIL are valid filter values for the CHANNEL filter key. They do not count towards the limit of 100 filter values. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values, along with 4 channel filters.

    • contact_lens_conversational_analytics is a valid filter value for the FEATURE filter key. It is available only for contacts analyzed by Contact Lens conversational analytics.

    • connect:Chat, connect:SMS, connect:Telephony, and connect:WebRTC are valid filter value examples (not exhaustive) for the contact/segmentAttributes/connect:Subtype filter key.

    • ROUTING_STEP_EXPRESSION accepts a filter value up to 3,000 characters in length. This filter is case-sensitive and order-sensitive. JSON string fields must be sorted in ascending order, and JSON array order must be preserved.

    • TRUE and FALSE are the only valid filter values for the Q_CONNECT_ENABLED filter key.

      • TRUE includes all contacts that had Connect AI Agents enabled as part of the flow.

      • FALSE includes all contacts that did not have Connect AI Agents enabled as part of the flow.

    • EXPERIENCE_VALIDATION and FLOW_VALIDATION are the only valid filter values for the contact/segmentAttributes/connect:ValidationTestType filter key. This filter is available only for contact record-driven metrics.

    • Campaign ARNs are valid filter values for the CAMPAIGN filter key.

    • To filter by phone number, see Create a historical metrics report in the Connect Customer Administrator Guide.

    " }, "Groupings":{ "shape":"GroupingsV2", - "documentation":"

    The grouping applied to the metrics that are returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values that are returned apply to the metrics for each queue. They are not aggregated for all queues.

    If no grouping is specified, a summary of all metrics is returned.

    Valid grouping keys: AGENT | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE | ANSWERING_MACHINE_DETECTION_STATUS | BOT_ID | BOT_ALIAS | BOT_VERSION | BOT_LOCALE | BOT_INTENT_NAME | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE | CAMPAIGN_EXCLUDED_EVENT_TYPE | CAMPAIGN_EXECUTION_TIMESTAMP | CASE_TEMPLATE_ARN | CASE_STATUS | CHANNEL | contact/segmentAttributes/connect:Subtype | DISCONNECT_REASON | EVALUATION_FORM | EVALUATION_SECTION | EVALUATION_QUESTION | EVALUATION_SOURCE | EVALUATOR_ID | FLOWS_RESOURCE_ID | FLOWS_MODULE_RESOURCE_ID | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_OUTCOME_TYPE | FORM_VERSION | INITIATION_METHOD | INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE | PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | TEST_CASE | TEST_CASE_EXECUTION_FAILURE_REASON | TEST_CASE_INVOCATION_METHOD

    API, SCHEDULE, and EVENT are the only valid filterValues for TEST_CASE_INVOCATION_METHOD.

    OBSERVE_EVENT, SEND_INSTRUCTION, ASSERT_DATA, and OVERRIDE_SYSTEM_BEHAVIOR are the only valid filterValues for TEST_CASE_EXECUTION_FAILURE_REASON

    Type: Array of strings

    Array Members: Maximum number of 4 items

    Required: No

    " + "documentation":"

    The grouping applied to the metrics that are returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values that are returned apply to the metrics for each queue. They are not aggregated for all queues.

    If no grouping is specified, a summary of all metrics is returned.

    Valid grouping keys: AGENT | AI_AGENT | AI_AGENT_ID | AI_AGENT_NAME | AI_AGENT_NAME_VERSION | AI_AGENT_TYPE | AI_PROMPT | AI_PROMPT_ID | AI_PROMPT_NAME | AI_PROMPT_NAME_VERSION | AI_PROMPT_TYPE | AI_TOOL_ID | AI_TOOL_NAME | AI_TOOL_TYPE | AI_USE_CASE | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE | ANSWERING_MACHINE_DETECTION_STATUS | BOT_ID | BOT_ALIAS | BOT_VERSION | BOT_LOCALE | BOT_INTENT_NAME | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE | CAMPAIGN_EXCLUDED_EVENT_TYPE | CAMPAIGN_EXECUTION_TIMESTAMP | CASE_TEMPLATE_ARN | CASE_STATUS | CHANNEL | contact/segmentAttributes/connect:Subtype | DISCONNECT_REASON | EVALUATION_FORM | EVALUATION_SECTION | EVALUATION_QUESTION | EVALUATION_SOURCE | EVALUATOR_ID | FLOWS_RESOURCE_ID | FLOWS_MODULE_RESOURCE_ID | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_OUTCOME_TYPE | FORM_VERSION | INITIATION_METHOD | INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE | KNOWLEDGE_ARTICLE_NAME | KNOWLEDGE_BASE_NAME | PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | SESSION_ID | TEST_CASE | TEST_CASE_EXECUTION_FAILURE_REASON | TEST_CASE_INVOCATION_METHOD

    AI_AGENT_NAME_VERSION, AI_PROMPT_NAME_VERSION, and KNOWLEDGE_ARTICLE_NAME are valid groupings but not valid filters.

    API, SCHEDULE, and EVENT are the only valid filterValues for TEST_CASE_INVOCATION_METHOD.

    OBSERVE_EVENT, SEND_INSTRUCTION, ASSERT_DATA, and OVERRIDE_SYSTEM_BEHAVIOR are the only valid filterValues for TEST_CASE_EXECUTION_FAILURE_REASON

    Type: Array of strings

    Array Members: Maximum number of 4 items

    Required: No

    " }, "Metrics":{ "shape":"MetricsV2", - "documentation":"

    The metrics to retrieve. Specify the name or metricId, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Metrics definition in the Connect Customer Administrator Guide.

    MetricId should be used to reference custom metrics or out of the box metrics as Arn. If using MetricId, the limit is 20 MetricId per request.

    ABANDONMENT_RATE

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Abandonment rate

    AGENT_ADHERENT_TIME

    This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Adherent time

    AGENT_ANSWER_RATE

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent answer rate

    AGENT_NON_ADHERENT_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Non-adherent time

    AGENT_NON_RESPONSE

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent non-response

    AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

    UI name: Agent non-response without customer abandons

    AGENT_OCCUPANCY

    Unit: Percentage

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Occupancy

    AGENT_SCHEDULE_ADHERENCE

    This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Adherence

    AGENT_SCHEDULED_TIME

    This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Scheduled time

    AVG_ABANDON_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    Valid metric filter key: INITIATION_METHOD

    UI name: Average queue abandon time

    AVG_ACTIVE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Average active time

    AVG_AFTER_CONTACT_WORK_TIME

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average after contact work time

    Feature is a valid filter but not a valid grouping.

    AVG_AGENT_CONCURRENCY

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Average agent concurrency

    AVG_AGENT_CONNECTING_TIME

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Average agent API connecting time

    The Negate key in metric-level filters is not applicable for this metric.

    AVG_AGENT_PAUSE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Average agent pause time

    AVG_BOT_CONVERSATION_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Average bot conversation time

    AVG_BOT_CONVERSATION_TURNS

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Average bot conversation turns

    AVG_CASE_RELATED_CONTACTS

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Average contacts per case

    AVG_CASE_RESOLUTION_TIME

    Unit: Seconds

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Average case resolution time

    AVG_CONTACT_DURATION

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average contact duration

    Feature is a valid filter but not a valid grouping.

    AVG_CONTACT_FIRST_RESPONSE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Agent average contact first response wait time

    AVG_CONVERSATION_CLOSE_TIME

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average conversation close time

    AVG_CONVERSATION_DURATION

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average conversation duration

    AVG_DIALS_PER_MINUTE

    This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

    Unit: Count

    Valid groupings and filters: Agent, Campaign, Queue, Routing Profile

    UI name: Average dials per minute

    AVG_EVALUATION_SCORE

    Unit: Percent

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Average evaluation score

    AVG_FIRST_RESPONSE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent first response time

    AVG_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Average flow time

    AVG_GREETING_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent greeting time

    AVG_HANDLE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression

    UI name: Average handle time

    Feature is a valid filter but not a valid grouping.

    ACTIVE_AI_AGENTS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Active AI Agents

    AI_HANDOFF_RATE

    Unit: Percent

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Handoff Rate

    AI_HANDOFFS

    Unit: Count

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Handoffs

    AI_AGENT_INVOCATION_SUCCESS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Invocation Success

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_AGENT_INVOCATION_SUCCESS_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Invocation Success Rate

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_AGENT_INVOCATIONS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Agent Name Version, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Invocations

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_RESPONSE_COMPLETION_RATE

    Unit: Percent

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Response Completion Rate

    AI_INVOLVED_CONTACTS

    Unit: Count

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Involved Contacts

    AI_PROMPT_INVOCATION_SUCCESS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Prompt Invocation Success

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_PROMPT_INVOCATION_SUCCESS_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Prompt Invocation Success Rate

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_PROMPT_INVOCATIONS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Prompt Invocations

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_INVOCATION_SUCCESS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Invocation Success

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_INVOCATION_SUCCESS_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Invocation Success Rate

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_INVOCATIONS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Invocations

    AI Agent Name Version is not a valid filter but a valid grouping.

    AVG_AI_AGENT_CONVERSATION_TURNS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Agent Conversation Turns

    AI Agent Name Version is not a valid filter but a valid grouping.

    AVG_AI_CONVERSATION_TURNS

    Unit: Count

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Conversation Turns

    AVG_AI_PROMPT_INVOCATION_LATENCY

    Unit: Milliseconds

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Prompt Invocation Latency

    AI Agent Name Version is not a valid filter but a valid grouping.

    AVG_AI_TOOL_INVOCATION_LATENCY

    Unit: Milliseconds

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Tool Invocation Latency

    AI Agent Name Version is not a valid filter but a valid grouping.

    KNOWLEDGE_CONTENT_REFERENCES

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Knowledge Base Name, Queue, Routing Profile

    UI name: Knowledge Content References

    PROACTIVE_INTENT_ENGAGEMENT_RATE

    Unit: Percent

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intent Engagement Rate

    PROACTIVE_INTENT_RESPONSE_RATE

    Unit: Percent

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intent Response Rate

    PROACTIVE_INTENTS_ANSWERED

    Unit: Count

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intents Answered

    PROACTIVE_INTENTS_DETECTED

    Unit: Count

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intents Detected

    PROACTIVE_INTENTS_ENGAGED

    Unit: Count

    Valid groupings and filters: AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intents Engaged

    AVG_HOLD_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average customer hold time

    Feature is a valid filter but not a valid grouping.

    AVG_HOLD_TIME_ALL_CONTACTS

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average customer hold time all contacts

    AVG_HOLDS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average holds

    Feature is a valid filter but not a valid grouping.

    AVG_INTERACTION_AND_HOLD_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interaction and customer hold time

    AVG_INTERACTION_TIME

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interaction time

    Feature is a valid filter but not a valid grouping.

    AVG_INTERRUPTIONS_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interruptions

    AVG_INTERRUPTION_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interruption time

    AVG_MESSAGE_LENGTH_AGENT

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent message length

    AVG_MESSAGE_LENGTH_CUSTOMER

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average customer message length

    AVG_MESSAGES

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average messages

    AVG_MESSAGES_AGENT

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent messages

    AVG_MESSAGES_BOT

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average bot messages

    AVG_MESSAGES_CUSTOMER

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average customer messages

    AVG_NON_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average non-talk time

    AVG_QUEUE_ANSWER_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average queue answer time

    Valid metric level filters: INITIATION_METHOD, FEATURE, DISCONNECT_REASON

    Feature is a valid filter but not a valid grouping.

    AVG_QUEUE_ANSWER_TIME_CUSTOMER_FIRST_CALLBACK

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

    UI name: Avg. queue answer time - customer first callback

    AVG_RESPONSE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent response time

    AVG_RESPONSE_TIME_CUSTOMER

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average customer response time

    AVG_RESOLUTION_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average resolution time

    AVG_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average talk time

    AVG_TALK_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent talk time

    AVG_TALK_TIME_CUSTOMER

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average customer talk time

    AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION

    This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

    Unit: Seconds

    Valid groupings and filters: Campaign

    UI name: Average wait time after customer connection

    AVG_WAIT_TIME_AFTER_CUSTOMER_FIRST_CALLBACK_CONNECTION

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

    UI name: Avg. wait time after customer connection - customer first callback

    AVG_WEIGHTED_EVALUATION_SCORE

    Unit: Percent

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form Id, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Average weighted evaluation score

    BOT_CONVERSATIONS_COMPLETED

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Bot conversations completed

    BOT_INTENTS_COMPLETED

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Bot intents completed

    CAMPAIGN_CONTACTS_ABANDONED_AFTER_X

    This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

    Unit: Count

    Valid groupings and filters: Agent, Campaign

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

    UI name: Campaign contacts abandoned after X

    CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE

    This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

    Unit: Percent

    Valid groupings and filters: Agent, Campaign

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

    UI name: Campaign contacts abandoned after X rate

    CAMPAIGN_INTERACTIONS

    This metric is available only for outbound campaigns using the email delivery mode.

    Unit: Count

    Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

    Valid groupings and filters: Campaign

    UI name: Campaign interactions

    CAMPAIGN_PROGRESS_RATE

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Unit: Percent

    Valid groupings and filters: Campaign, Campaign Execution Timestamp

    UI name: Campaign progress rate

    CAMPAIGN_SEND_ATTEMPTS

    This metric is available only for outbound campaigns.

    Unit: Count

    Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype

    UI name: Campaign send attempts

    CAMPAIGN_SEND_EXCLUSIONS

    This metric is available only for outbound campaigns.

    Valid metric filter key: CAMPAIGN_EXCLUDED_EVENT_TYPE

    Unit: Count

    Valid groupings and filters: Campaign, Campaign Excluded Event Type, Campaign Execution Timestamp

    UI name: Campaign send exclusions

    CASES_CREATED

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases created

    CONTACTS_CREATED

    Unit: Count

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts created

    Feature is a valid filter but not a valid grouping.

    CONTACTS_HANDLED

    Unit: Count

    Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

    UI name: Contacts handled

    Feature is a valid filter but not a valid grouping.

    CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT

    Unit: Count

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts handled (connected to agent timestamp)

    CONTACTS_HOLD_ABANDONS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts hold disconnect

    CONTACTS_ON_HOLD_AGENT_DISCONNECT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts hold agent disconnect

    CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts hold customer disconnect

    CONTACTS_PUT_ON_HOLD

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts put on hold

    CONTACTS_TRANSFERRED_OUT_EXTERNAL

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts transferred out external

    CONTACTS_TRANSFERRED_OUT_INTERNAL

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts transferred out internal

    CONTACTS_QUEUED

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts queued

    CONTACTS_QUEUED_BY_ENQUEUE

    Unit: Count

    Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

    UI name: Contacts queued (enqueue timestamp)

    CONTACTS_REMOVED_FROM_QUEUE_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts removed from queue in X seconds

    CONTACTS_RESOLVED_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts resolved in X

    CONTACTS_TRANSFERRED_OUT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts transferred out

    Feature is a valid filter but not a valid grouping.

    CONTACTS_TRANSFERRED_OUT_BY_AGENT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts transferred out by agent

    CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts transferred out queue

    CURRENT_CASES

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Current cases

    CONVERSATIONS_ABANDONED

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Conversations abandoned

    DELIVERY_ATTEMPTS

    This metric is available only for outbound campaigns.

    Unit: Count

    Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

    Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Campaign Delivery EventType, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

    UI name: Delivery attempts

    Campaign Delivery EventType filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

    DELIVERY_ATTEMPT_DISPOSITION_RATE

    This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

    Unit: Percent

    Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

    Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

    UI name: Delivery attempt disposition rate

    Campaign Delivery Event Type filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

    EVALUATIONS_PERFORMED

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Evaluations performed

    FLOWS_OUTCOME

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Flows outcome

    FLOWS_STARTED

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Flows started

    HUMAN_ANSWERED_CALLS

    This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

    Unit: Count

    Valid groupings and filters: Agent, Campaign

    UI name: Human answered

    MAX_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Maximum flow time

    MAX_QUEUED_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Maximum queued time

    MIN_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Minimum flow time

    PERCENT_AUTOMATIC_FAILS

    Unit: Percent

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Automatic fails percent

    PERCENT_BOT_CONVERSATIONS_OUTCOME

    Unit: Percent

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Percent bot conversations outcome

    PERCENT_BOT_INTENTS_OUTCOME

    Unit: Percent

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Percent bot intents outcome

    PERCENT_CASES_FIRST_CONTACT_RESOLVED

    Unit: Percent

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases resolved on first contact

    PERCENT_CONTACTS_STEP_EXPIRED

    Unit: Percent

    Valid groupings and filters: Queue, RoutingStepExpression

    UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

    PERCENT_CONTACTS_STEP_JOINED

    Unit: Percent

    Valid groupings and filters: Queue, RoutingStepExpression

    UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

    PERCENT_FLOWS_OUTCOME

    Unit: Percent

    Valid metric filter key: FLOWS_OUTCOME_TYPE

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Flows outcome percentage.

    The FLOWS_OUTCOME_TYPE is not a valid grouping.

    PERCENT_NON_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Non-talk time percent

    PERCENT_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Talk time percent

    PERCENT_TALK_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Agent talk time percent

    PERCENT_TALK_TIME_CUSTOMER

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Customer talk time percent

    RECIPIENTS_ATTEMPTED

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Unit: Count

    Valid groupings and filters: Campaign, Campaign Execution Timestamp

    UI name: Recipients attempted

    RECIPIENTS_INTERACTED

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

    Unit: Count

    Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype, Campaign Execution Timestamp

    UI name: Recipients interacted

    RECIPIENTS_TARGETED

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Unit: Count

    Valid groupings and filters: Campaign, Campaign Execution Timestamp

    UI name: Recipients targeted

    REOPENED_CASE_ACTIONS

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases reopened

    RESOLVED_CASE_ACTIONS

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases resolved

    SERVICE_LEVEL

    You can include up to 20 SERVICE_LEVEL metrics in a request.

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Service level X

    STEP_CONTACTS_QUEUED

    Unit: Count

    Valid groupings and filters: Queue, RoutingStepExpression

    UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

    SUM_AFTER_CONTACT_WORK_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: After contact work time

    SUM_CONNECTING_TIME_AGENT

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API | CALLBACK_CUSTOMER_FIRST_DIALED

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent API connecting time

    The Negate key in metric-level filters is not applicable for this metric.

    CONTACTS_ABANDONED

    Unit: Count

    Metric filter:

    • Valid values: API| INCOMING | OUTBOUND | TRANSFER | CALLBACK | QUEUE_TRANSFER| Disconnect | CALLBACK_CUSTOMER_FIRST_DIALED

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

    UI name: Contact abandoned

    SUM_CONTACTS_ABANDONED_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts abandoned in X seconds

    SUM_CONTACTS_ANSWERED_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts answered in X seconds

    SUM_CONTACT_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contact flow time

    SUM_CONTACT_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Agent on contact time

    SUM_CONTACTS_DISCONNECTED

    Valid metric filter key: DISCONNECT_REASON

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contact disconnected

    SUM_ERROR_STATUS_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Error status time

    SUM_HANDLE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contact handle time

    SUM_HOLD_TIME

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Customer hold time

    SUM_IDLE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Agent idle time

    SUM_INTERACTION_AND_HOLD_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Agent interaction and hold time

    SUM_INTERACTION_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent interaction time

    SUM_NON_PRODUCTIVE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Agent non-productive time

    SUM_ONLINE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Online time

    SUM_RETRY_CALLBACK_ATTEMPTS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Callback attempts

    " + "documentation":"

    The metrics to retrieve. Specify the name or metricId, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Metrics definition in the Connect Customer Administrator Guide.

    MetricId should be used to reference custom metrics or out of the box metrics as Arn. If using MetricId, the limit is 20 MetricId per request.

    ABANDONMENT_RATE

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Abandonment rate

    AGENT_ADHERENT_TIME

    This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Adherent time

    AGENT_ANSWER_RATE

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent answer rate

    AGENT_NON_ADHERENT_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Non-adherent time

    AGENT_NON_RESPONSE

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent non-response

    AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

    UI name: Agent non-response without customer abandons

    AGENT_OCCUPANCY

    Unit: Percentage

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Occupancy

    AGENT_SCHEDULE_ADHERENCE

    This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Adherence

    AGENT_SCHEDULED_TIME

    This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Scheduled time

    AVG_ABANDON_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    Valid metric filter key: INITIATION_METHOD

    UI name: Average queue abandon time

    AVG_ACTIVE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Average active time

    AVG_AFTER_CONTACT_WORK_TIME

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average after contact work time

    Feature is a valid filter but not a valid grouping.

    AVG_AGENT_CONCURRENCY

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Average agent concurrency

    AVG_AGENT_CONNECTING_TIME

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Average agent API connecting time

    The Negate key in metric-level filters is not applicable for this metric.

    AVG_AGENT_PAUSE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Average agent pause time

    AVG_BOT_CONVERSATION_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Average bot conversation time

    AVG_BOT_CONVERSATION_TURNS

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Average bot conversation turns

    AVG_CASE_RELATED_CONTACTS

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Average contacts per case

    AVG_CASE_RESOLUTION_TIME

    Unit: Seconds

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Average case resolution time

    AVG_CONTACT_DURATION

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average contact duration

    Feature is a valid filter but not a valid grouping.

    AVG_CONTACT_FIRST_RESPONSE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Agent average contact first response wait time

    AVG_CONVERSATION_CLOSE_TIME

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average conversation close time

    AVG_CONVERSATION_DURATION

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average conversation duration

    AVG_DIALS_PER_MINUTE

    This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

    Unit: Count

    Valid groupings and filters: Agent, Campaign, Queue, Routing Profile

    UI name: Average dials per minute

    AVG_EVALUATION_SCORE

    Unit: Percent

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Average evaluation score

    AVG_FIRST_RESPONSE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent first response time

    AVG_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Average flow time

    AVG_GREETING_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent greeting time

    AVG_HANDLE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, AI Use Case, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression

    UI name: Average handle time

    Feature is a valid filter but not a valid grouping.

    ACTIVE_AI_AGENTS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Active AI Agents

    AI_HANDOFF_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Handoff Rate

    AI_HANDOFFS

    Unit: Count

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Handoff Count

    AI_AGENT_INVOCATION_SUCCESS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Invocation Success

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_AGENT_INVOCATION_SUCCESS_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Invocation Success Rate

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_AGENT_INVOCATIONS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Agent Name Version, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Invocation Count

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_AGENT_RESPONSE_HELPFUL

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent ID, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Response Helpful

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_AGENT_RESPONSE_NOT_HELPFUL

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent ID, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Agent Response Not Helpful

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_RESPONSE_COMPLETION_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Response Completion Rate

    AI_INVOLVED_CONTACTS

    Unit: Count

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Involved Contacts

    AI_PROMPT_INVOCATION_SUCCESS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Prompt Invocation Success

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_PROMPT_INVOCATION_SUCCESS_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Prompt Invocation Success Rate

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_PROMPT_INVOCATIONS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Prompt Invocations

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_INVOCATION_SUCCESS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Invocation Success

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_INVOCATION_SUCCESS_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Invocation Success Rate

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_INVOCATIONS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Invocations

    AI Agent Name Version is not a valid filter but a valid grouping.

    AVG_AI_AGENT_CONVERSATION_TURNS

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Agent Conversation Turns

    AI Agent Name Version is not a valid filter but a valid grouping.

    AVG_AI_CONVERSATION_TURNS

    Unit: Count

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Conversation Turns

    AVG_AI_PROMPT_INVOCATION_LATENCY

    Unit: Milliseconds

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Prompt, AI Prompt ID, AI Prompt Name, AI Prompt Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Prompt Invocation Latency

    AI Agent Name Version is not a valid filter but a valid grouping.

    AVG_AI_TOOL_INVOCATION_LATENCY

    Unit: Milliseconds

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Average AI Tool Invocation Latency

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_PARAMETER_ACCURACY

    Unit: Double

    Valid groupings and filters: AI Agent, AI Agent ID, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Parameter Accuracy

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_SELECTION_ACCURACY

    Unit: Double

    Valid groupings and filters: AI Agent, AI Agent ID, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: AI Tool Selection Accuracy

    AI Agent Name Version is not a valid filter but a valid grouping.

    AI_TOOL_UTILIZATION_ACCURACY

    Unit: Double

    Valid groupings and filters: AI Agent, AI Agent ID, AI Agent Name, AI Agent Name Version, AI Agent Type, AI Tool ID, AI Tool Name, AI Tool Type, AI Use Case, Channel, Queue, Routing Profile, Session ID

    UI name: AI Tool Utilization Accuracy

    AI Agent Name Version is not a valid filter but a valid grouping.

    COMPLETENESS_SCORE

    Unit: Double

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile, Session ID

    UI name: Completeness Score

    FAITHFULNESS_SCORE

    Unit: Double

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile, Session ID

    UI name: Faithfulness Score

    GOAL_SUCCESS_RATE

    Unit: Double

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile, Session ID

    UI name: Goal Success Rate

    KNOWLEDGE_CONTENT_REFERENCES

    Unit: Count

    Valid groupings and filters: AI Agent, AI Agent Name, AI Agent Type, AI Use Case, Channel, Knowledge Base Name, Queue, Routing Profile

    UI name: Knowledge Content References

    PROACTIVE_INTENT_ENGAGEMENT_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intent Engagement Rate

    PROACTIVE_INTENT_RESPONSE_RATE

    Unit: Percent

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intent Response Rate

    PROACTIVE_INTENTS_ANSWERED

    Unit: Count

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intents Answered

    PROACTIVE_INTENTS_DETECTED

    Unit: Count

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intents Detected

    PROACTIVE_INTENTS_ENGAGED

    Unit: Count

    Valid groupings and filters: AI Agent ID, AI Agent Name, AI Agent Type, AI Use Case, Channel, Queue, Routing Profile

    UI name: Proactive Intents Engaged

    AVG_HOLD_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average customer hold time

    Feature is a valid filter but not a valid grouping.

    AVG_HOLD_TIME_ALL_CONTACTS

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average customer hold time all contacts

    AVG_HOLDS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average holds

    Feature is a valid filter but not a valid grouping.

    AVG_INTERACTION_AND_HOLD_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interaction and customer hold time

    AVG_INTERACTION_TIME

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interaction time

    Feature is a valid filter but not a valid grouping.

    AVG_INTERRUPTIONS_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interruptions

    AVG_INTERRUPTION_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent interruption time

    AVG_MESSAGE_LENGTH_AGENT

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent message length

    AVG_MESSAGE_LENGTH_CUSTOMER

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average customer message length

    AVG_MESSAGES

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average messages

    AVG_MESSAGES_AGENT

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent messages

    AVG_MESSAGES_BOT

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average bot messages

    AVG_MESSAGES_CUSTOMER

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average customer messages

    AVG_NON_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average non-talk time

    AVG_QUEUE_ANSWER_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average queue answer time

    Valid metric level filters: INITIATION_METHOD, FEATURE, DISCONNECT_REASON

    Feature is a valid filter but not a valid grouping.

    AVG_QUEUE_ANSWER_TIME_CUSTOMER_FIRST_CALLBACK

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

    UI name: Avg. queue answer time - customer first callback

    AVG_RESPONSE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average agent response time

    AVG_RESPONSE_TIME_CUSTOMER

    Unit: Seconds

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Average customer response time

    AVG_RESOLUTION_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average resolution time

    AVG_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average talk time

    AVG_TALK_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average agent talk time

    AVG_TALK_TIME_CUSTOMER

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Average customer talk time

    AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION

    This metric is available only for outbound campaigns that use the agent assisted voice and automated voice delivery modes.

    Unit: Seconds

    Valid groupings and filters: Campaign

    UI name: Average wait time after customer connection

    AVG_WAIT_TIME_AFTER_CUSTOMER_FIRST_CALLBACK_CONNECTION

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect, Agent Hierarchy

    UI name: Avg. wait time after customer connection - customer first callback

    AVG_WEIGHTED_EVALUATION_SCORE

    Unit: Percent

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form Id, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Average weighted evaluation score

    BOT_CONVERSATIONS_COMPLETED

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Bot conversations completed

    BOT_INTENTS_COMPLETED

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Bot intents completed

    CAMPAIGN_CONTACTS_ABANDONED_AFTER_X

    This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

    Unit: Count

    Valid groupings and filters: Agent, Campaign

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

    UI name: Campaign contacts abandoned after X

    CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE

    This metric is available only for outbound campaigns using the agent assisted voice and automated voice delivery modes.

    Unit: Percent

    Valid groupings and filters: Agent, Campaign

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter GT (for Greater than).

    UI name: Campaign contacts abandoned after X rate

    CAMPAIGN_INTERACTIONS

    This metric is available only for outbound campaigns using the email delivery mode.

    Unit: Count

    Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

    Valid groupings and filters: Campaign

    UI name: Campaign interactions

    CAMPAIGN_PROGRESS_RATE

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Unit: Percent

    Valid groupings and filters: Campaign, Campaign Execution Timestamp

    UI name: Campaign progress rate

    CAMPAIGN_SEND_ATTEMPTS

    This metric is available only for outbound campaigns.

    Unit: Count

    Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype

    UI name: Campaign send attempts

    CAMPAIGN_SEND_EXCLUSIONS

    This metric is available only for outbound campaigns.

    Valid metric filter key: CAMPAIGN_EXCLUDED_EVENT_TYPE

    Unit: Count

    Valid groupings and filters: Campaign, Campaign Excluded Event Type, Campaign Execution Timestamp

    UI name: Campaign send exclusions

    CASES_CREATED

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases created

    CONTACTS_CREATED

    Unit: Count

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts created

    Feature is a valid filter but not a valid grouping.

    CONTACTS_HANDLED

    Unit: Count

    Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

    UI name: Contacts handled

    Feature is a valid filter but not a valid grouping.

    CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT

    Unit: Count

    Valid metric filter key: INITIATION_METHOD

    Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts handled (connected to agent timestamp)

    CONTACTS_HOLD_ABANDONS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts hold disconnect

    CONTACTS_ON_HOLD_AGENT_DISCONNECT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts hold agent disconnect

    CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts hold customer disconnect

    CONTACTS_PUT_ON_HOLD

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts put on hold

    CONTACTS_TRANSFERRED_OUT_EXTERNAL

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts transferred out external

    CONTACTS_TRANSFERRED_OUT_INTERNAL

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contacts transferred out internal

    CONTACTS_QUEUED

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts queued

    CONTACTS_QUEUED_BY_ENQUEUE

    Unit: Count

    Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

    UI name: Contacts queued (enqueue timestamp)

    CONTACTS_REMOVED_FROM_QUEUE_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts removed from queue in X seconds

    CONTACTS_RESOLVED_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts resolved in X

    CONTACTS_TRANSFERRED_OUT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts transferred out

    Feature is a valid filter but not a valid grouping.

    CONTACTS_TRANSFERRED_OUT_BY_AGENT

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts transferred out by agent

    CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contacts transferred out queue

    CURRENT_CASES

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Current cases

    CONVERSATIONS_ABANDONED

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Feature, RoutingStepExpression, Initiation method, Routing Profile, Queue, Q in Connect

    UI name: Conversations abandoned

    DELIVERY_ATTEMPTS

    This metric is available only for outbound campaigns.

    Unit: Count

    Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

    Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Campaign Delivery EventType, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

    UI name: Delivery attempts

    Campaign Delivery EventType filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

    DELIVERY_ATTEMPT_DISPOSITION_RATE

    This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

    Unit: Percent

    Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, CAMPAIGN_DELIVERY_EVENT_TYPE, DISCONNECT_REASON

    Valid groupings and filters: Agent, Answering Machine Detection Status, Campaign, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing Profile

    UI name: Delivery attempt disposition rate

    Campaign Delivery Event Type filter and grouping are only available for SMS and Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine Detection Status and Disconnect Reason are only available for agent assisted voice and automated voice delivery modes.

    EVALUATIONS_PERFORMED

    Unit: Count

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Evaluations performed

    FLOWS_OUTCOME

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Flows outcome

    FLOWS_STARTED

    Unit: Count

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Flows started

    HUMAN_ANSWERED_CALLS

    This metric is available only for outbound campaigns. Dispositions for the agent assisted voice and automated voice delivery modes are only available with answering machine detection enabled.

    Unit: Count

    Valid groupings and filters: Agent, Campaign

    UI name: Human answered

    MAX_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Maximum flow time

    MAX_QUEUED_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Maximum queued time

    MIN_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Minimum flow time

    PERCENT_AUTOMATIC_FAILS

    Unit: Percent

    Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form ID, Evaluation Source, Form Version, Queue, Routing Profile

    UI name: Automatic fails percent

    PERCENT_BOT_CONVERSATIONS_OUTCOME

    Unit: Percent

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Percent bot conversations outcome

    PERCENT_BOT_INTENTS_OUTCOME

    Unit: Percent

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type, Flow action ID, Invoking resource published timestamp, Initiation method, Invoking resource type, Parent flows resource ID

    UI name: Percent bot intents outcome

    PERCENT_CASES_FIRST_CONTACT_RESOLVED

    Unit: Percent

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases resolved on first contact

    PERCENT_CONTACTS_STEP_EXPIRED

    Unit: Percent

    Valid groupings and filters: Queue, RoutingStepExpression

    UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

    PERCENT_CONTACTS_STEP_JOINED

    Unit: Percent

    Valid groupings and filters: Queue, RoutingStepExpression

    UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

    PERCENT_FLOWS_OUTCOME

    Unit: Percent

    Valid metric filter key: FLOWS_OUTCOME_TYPE

    Valid groupings and filters: Channel, contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID, Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows resource ID, Initiation method, Resource published timestamp

    UI name: Flows outcome percentage.

    The FLOWS_OUTCOME_TYPE is not a valid grouping.

    PERCENT_NON_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Non-talk time percent

    PERCENT_TALK_TIME

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Talk time percent

    PERCENT_TALK_TIME_AGENT

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Agent talk time percent

    PERCENT_TALK_TIME_CUSTOMER

    This metric is available only for contacts analyzed by Contact Lens conversational analytics.

    Unit: Percentage

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Customer talk time percent

    RECIPIENTS_ATTEMPTED

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Unit: Count

    Valid groupings and filters: Campaign, Campaign Execution Timestamp

    UI name: Recipients attempted

    RECIPIENTS_INTERACTED

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE

    Unit: Count

    Valid groupings and filters: Campaign, Channel, contact/segmentAttributes/connect:Subtype, Campaign Execution Timestamp

    UI name: Recipients interacted

    RECIPIENTS_TARGETED

    This metric is only available for outbound campaigns initiated using a customer segment. It is not available for event triggered campaigns.

    Unit: Count

    Valid groupings and filters: Campaign, Campaign Execution Timestamp

    UI name: Recipients targeted

    REOPENED_CASE_ACTIONS

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases reopened

    RESOLVED_CASE_ACTIONS

    Unit: Count

    Required filter key: CASE_TEMPLATE_ARN

    Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

    UI name: Cases resolved

    SERVICE_LEVEL

    You can include up to 20 SERVICE_LEVEL metrics in a request.

    Unit: Percent

    Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Service level X

    STEP_CONTACTS_QUEUED

    Unit: Count

    Valid groupings and filters: Queue, RoutingStepExpression

    UI name: This metric is available in Real-time Metrics UI but not on the Historical Metrics UI.

    SUM_AFTER_CONTACT_WORK_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: After contact work time

    SUM_CONNECTING_TIME_AGENT

    Unit: Seconds

    Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API | CALLBACK_CUSTOMER_FIRST_DIALED

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent API connecting time

    The Negate key in metric-level filters is not applicable for this metric.

    CONTACTS_ABANDONED

    Unit: Count

    Metric filter:

    • Valid values: API| INCOMING | OUTBOUND | TRANSFER | CALLBACK | QUEUE_TRANSFER| Disconnect | CALLBACK_CUSTOMER_FIRST_DIALED

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q in Connect

    UI name: Contact abandoned

    SUM_CONTACTS_ABANDONED_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts abandoned in X seconds

    SUM_CONTACTS_ANSWERED_IN_X

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you can use LT (for \"Less than\") or LTE (for \"Less than equal\").

    UI name: Contacts answered in X seconds

    SUM_CONTACT_FLOW_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contact flow time

    SUM_CONTACT_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Agent on contact time

    SUM_CONTACTS_DISCONNECTED

    Valid metric filter key: DISCONNECT_REASON

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Contact disconnected

    SUM_ERROR_STATUS_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Error status time

    SUM_HANDLE_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Contact handle time

    SUM_HOLD_TIME

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Customer hold time

    SUM_IDLE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Agent idle time

    SUM_INTERACTION_AND_HOLD_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect

    UI name: Agent interaction and hold time

    SUM_INTERACTION_TIME

    Unit: Seconds

    Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

    UI name: Agent interaction time

    SUM_NON_PRODUCTIVE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Agent non-productive time

    SUM_ONLINE_TIME_AGENT

    Unit: Seconds

    Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

    UI name: Online time

    SUM_RETRY_CALLBACK_ATTEMPTS

    Unit: Count

    Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype, Q in Connect

    UI name: Callback attempts

    " }, "NextToken":{ "shape":"NextToken2500", @@ -29943,7 +30016,11 @@ "shape":"ActiveRegionList", "documentation":"

    The list of active regions for contacts in ACGR instances.

    " }, - "ContactTags":{"shape":"ControlPlaneTagFilter"} + "ContactTags":{"shape":"ControlPlaneTagFilter"}, + "AiAgents":{ + "shape":"AiAgentsCriteria", + "documentation":"

    AI Agent search criteria definitions.

    " + } }, "documentation":"

    A structure of search criteria to be used to return contacts.

    " }, @@ -37941,5 +38018,5 @@ }, "timestamp":{"type":"timestamp"} }, - "documentation":"

    Connect Customer is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

    Connect Customer provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

    There are limits to the number of Connect Customer resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Connect Customer Service Quotas in the Connect Customer Administrator Guide.

    You can use an endpoint to connect programmatically to an Amazon Web Services service. For a list of Connect Customer endpoints, see Connect Customer Endpoints.

    " + "documentation":"

    Amazon Connect now refers to a portfolio of agentic solutions for business functions. The legacy product is now called Amazon Connect Customer, or simply Customer. The legacy name is used interchangeably in this documentation.

    Connect Customer Customer engages customers at every touchpoint and creates deeper relationships with AI powered capabilities.

    Build and manage customer communication experiences. Connect customers to agents, enable intelligent routing, and track performance in real-time.

    There are limits to the number of Connect Customer resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Connect Customer Service Quotas in the Connect Customer Administrator Guide.

    You can use an endpoint to connect programmatically to an Amazon Web Services service. For a list of Connect Customer endpoints, see Connect Customer Endpoints.

    " } diff --git a/awscli/botocore/data/inspector2/2020-06-08/service-2.json b/awscli/botocore/data/inspector2/2020-06-08/service-2.json index 73ff485fe17c..073779bc25b1 100644 --- a/awscli/botocore/data/inspector2/2020-06-08/service-2.json +++ b/awscli/botocore/data/inspector2/2020-06-08/service-2.json @@ -4016,7 +4016,7 @@ }, "scanMode":{ "shape":"CoverageStringFilterList", - "documentation":"

    The filter to search for Amazon EC2 instance coverage by scan mode. Valid values are EC2_SSM_AGENT_BASED and EC2_AGENTLESS.

    " + "documentation":"

    The filter to search for Amazon EC2 instance coverage by scan mode. Valid values are EC2_SSM_AGENT_BASED, EC2_AGENTLESS, and EC2_INSPECTOR_AGENT_BASED.

    " }, "imagePulledAt":{ "shape":"CoverageDateFilterList", @@ -4953,6 +4953,10 @@ "scanMode":{ "shape":"Ec2ScanMode", "documentation":"

    The scan method that is applied to the instance.

    " + }, + "activateVMScanner":{ + "shape":"Boolean", + "documentation":"

    Whether to activate Amazon Inspector VM scanner for Amazon EC2 scanning.

    " } }, "documentation":"

    Enables agent-based scanning, which scans instances that are not managed by SSM.

    " @@ -4963,6 +4967,10 @@ "scanModeState":{ "shape":"Ec2ScanModeState", "documentation":"

    An object that contains details about the state of the Amazon EC2 scan mode.

    " + }, + "vmScannerState":{ + "shape":"VMScannerState", + "documentation":"

    An object that contains details about the state of the Amazon Inspector VM scanner.

    " } }, "documentation":"

    Details about the state of the EC2 scan configuration for your environment.

    " @@ -8981,7 +8989,8 @@ "type":"string", "enum":[ "EC2_SSM_AGENT_BASED", - "EC2_AGENTLESS" + "EC2_AGENTLESS", + "EC2_INSPECTOR_AGENT_BASED" ] }, "ScanStatus":{ @@ -10309,6 +10318,32 @@ "type":"double", "min":0 }, + "VMScannerState":{ + "type":"structure", + "members":{ + "activated":{ + "shape":"Boolean", + "documentation":"

    Whether the VM scanner is activated.

    " + }, + "activatedAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

    The date and time the VM scanner was activated.

    " + }, + "status":{ + "shape":"VMScannerStatus", + "documentation":"

    The status of the VM scanner.

    " + } + }, + "documentation":"

    The state of the Amazon Inspector VM scanner.

    " + }, + "VMScannerStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "PENDING", + "FAILED" + ] + }, "ValidationException":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json b/awscli/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json index 6444f55eaa71..4135ce7a1fa7 100644 --- a/awscli/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json +++ b/awscli/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json @@ -5,27 +5,27 @@ "builtIn": "AWS::Region", "required": false, "documentation": "The AWS region used to dispatch the request.", - "type": "String" + "type": "string" }, "UseDualStack": { "builtIn": "AWS::UseDualStack", "required": true, "default": false, "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", - "type": "Boolean" + "type": "boolean" }, "UseFIPS": { "builtIn": "AWS::UseFIPS", "required": true, "default": false, "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", - "type": "Boolean" + "type": "boolean" }, "Endpoint": { "builtIn": "SDK::Endpoint", "required": false, "documentation": "Override the endpoint used to send this request", - "type": "String" + "type": "string" } }, "rules": [ diff --git a/awscli/botocore/data/socialmessaging/2024-01-01/paginators-1.json b/awscli/botocore/data/socialmessaging/2024-01-01/paginators-1.json index a13774357b08..9313a603a339 100644 --- a/awscli/botocore/data/socialmessaging/2024-01-01/paginators-1.json +++ b/awscli/botocore/data/socialmessaging/2024-01-01/paginators-1.json @@ -17,6 +17,18 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "metaLibraryTemplates" + }, + "ListWhatsAppFlowAssets": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "flowAssets" + }, + "ListWhatsAppFlows": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "flows" } } } diff --git a/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json b/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json index 097ee07b683e..86ca15f94ca6 100644 --- a/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json +++ b/awscli/botocore/data/socialmessaging/2024-01-01/service-2.json @@ -32,6 +32,27 @@ ], "documentation":"

    This is only used through the Amazon Web Services console during sign-up to associate your WhatsApp Business Account to your Amazon Web Services account.

    " }, + "CreateWhatsAppFlow":{ + "name":"CreateWhatsAppFlow", + "http":{ + "method":"POST", + "requestUri":"/v1/whatsapp/flow/create", + "responseCode":200 + }, + "input":{"shape":"CreateWhatsAppFlowInput"}, + "output":{"shape":"CreateWhatsAppFlowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Creates a new WhatsApp Flow. Flows enable businesses to create rich, interactive forms and experiences that users can complete without leaving WhatsApp. The Flow is created in DRAFT status. If publish is set to true and a valid flowJson is provided, the Flow is published immediately.

    " + }, "CreateWhatsAppMessageTemplate":{ "name":"CreateWhatsAppMessageTemplate", "http":{ @@ -46,6 +67,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -66,6 +88,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -86,12 +109,35 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} ], "documentation":"

    Uploads media for use in a WhatsApp message template.

    " }, + "DeleteWhatsAppFlow":{ + "name":"DeleteWhatsAppFlow", + "http":{ + "method":"DELETE", + "requestUri":"/v1/whatsapp/flow", + "responseCode":200 + }, + "input":{"shape":"DeleteWhatsAppFlowInput"}, + "output":{"shape":"DeleteWhatsAppFlowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Deletes a WhatsApp Flow permanently. Only Flows in DRAFT status can be deleted. Published or deprecated Flows cannot be deleted.

    ", + "idempotent":true + }, "DeleteWhatsAppMessageMedia":{ "name":"DeleteWhatsAppMessageMedia", "http":{ @@ -128,6 +174,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -135,6 +182,27 @@ "documentation":"

    Deletes a WhatsApp message template.

    ", "idempotent":true }, + "DeprecateWhatsAppFlow":{ + "name":"DeprecateWhatsAppFlow", + "http":{ + "method":"POST", + "requestUri":"/v1/whatsapp/flow/deprecate", + "responseCode":200 + }, + "input":{"shape":"DeprecateWhatsAppFlowInput"}, + "output":{"shape":"DeprecateWhatsAppFlowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Deprecates a published WhatsApp Flow, marking it as no longer recommended for use. The Flow must be in PUBLISHED status. This is an irreversible operation.

    " + }, "DisassociateWhatsAppBusinessAccount":{ "name":"DisassociateWhatsAppBusinessAccount", "http":{ @@ -197,6 +265,50 @@ "documentation":"

    Retrieve the WABA account id and phone number details of a WhatsApp business account phone number.

    ", "readonly":true }, + "GetWhatsAppFlow":{ + "name":"GetWhatsAppFlow", + "http":{ + "method":"GET", + "requestUri":"/v1/whatsapp/flow", + "responseCode":200 + }, + "input":{"shape":"GetWhatsAppFlowInput"}, + "output":{"shape":"GetWhatsAppFlowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Retrieves the metadata and status of a WhatsApp Flow, including validation errors, preview information, and health status.

    ", + "readonly":true + }, + "GetWhatsAppFlowPreview":{ + "name":"GetWhatsAppFlowPreview", + "http":{ + "method":"GET", + "requestUri":"/v1/whatsapp/flow/preview", + "responseCode":200 + }, + "input":{"shape":"GetWhatsAppFlowPreviewInput"}, + "output":{"shape":"GetWhatsAppFlowPreviewOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Generates a web preview URL for testing a WhatsApp Flow before publishing. Preview URLs expire in 30 days and can be shared with stakeholders for review.

    ", + "readonly":true + }, "GetWhatsAppMessageMedia":{ "name":"GetWhatsAppMessageMedia", "http":{ @@ -232,6 +344,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -278,6 +391,50 @@ "documentation":"

    List all tags associated with a resource, such as a phone number or WABA.

    ", "readonly":true }, + "ListWhatsAppFlowAssets":{ + "name":"ListWhatsAppFlowAssets", + "http":{ + "method":"GET", + "requestUri":"/v1/whatsapp/flow/assets", + "responseCode":200 + }, + "input":{"shape":"ListWhatsAppFlowAssetsInput"}, + "output":{"shape":"ListWhatsAppFlowAssetsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Lists the assets (Flow JSON definition) of a WhatsApp Flow with presigned download URLs. Download URLs are generated by Meta and expire after a short period.

    ", + "readonly":true + }, + "ListWhatsAppFlows":{ + "name":"ListWhatsAppFlows", + "http":{ + "method":"GET", + "requestUri":"/v1/whatsapp/flow/list", + "responseCode":200 + }, + "input":{"shape":"ListWhatsAppFlowsInput"}, + "output":{"shape":"ListWhatsAppFlowsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Lists all WhatsApp Flows for a WhatsApp Business Account. Returns summary information including Flow ID, name, status, and categories.

    ", + "readonly":true + }, "ListWhatsAppMessageTemplates":{ "name":"ListWhatsAppMessageTemplates", "http":{ @@ -292,6 +449,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -313,6 +471,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -341,6 +500,27 @@ ], "documentation":"

    Upload a media file to the WhatsApp service. Only the specified originationPhoneNumberId has the permissions to send the media file when using SendWhatsAppMessage. You must use either sourceS3File or sourceS3PresignedUrl for the source. If both or neither are specified then an InvalidParameterException is returned.

    " }, + "PublishWhatsAppFlow":{ + "name":"PublishWhatsAppFlow", + "http":{ + "method":"POST", + "requestUri":"/v1/whatsapp/flow/publish", + "responseCode":200 + }, + "input":{"shape":"PublishWhatsAppFlowInput"}, + "output":{"shape":"PublishWhatsAppFlowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Publishes a WhatsApp Flow, making it available for use in template messages. The Flow must be in DRAFT status with valid Flow JSON that passes Meta's validation. This is an irreversible operation.

    " + }, "PutWhatsAppBusinessAccountEventDestinations":{ "name":"PutWhatsAppBusinessAccountEventDestinations", "http":{ @@ -416,6 +596,48 @@ ], "documentation":"

    Removes the specified tags from a resource.

    " }, + "UpdateWhatsAppFlow":{ + "name":"UpdateWhatsAppFlow", + "http":{ + "method":"POST", + "requestUri":"/v1/whatsapp/flow/update", + "responseCode":200 + }, + "input":{"shape":"UpdateWhatsAppFlowInput"}, + "output":{"shape":"UpdateWhatsAppFlowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Updates the metadata of a WhatsApp Flow, such as its name or categories. This does not update the Flow JSON definition. Use UpdateWhatsAppFlowAssets to update the Flow JSON.

    " + }, + "UpdateWhatsAppFlowAssets":{ + "name":"UpdateWhatsAppFlowAssets", + "http":{ + "method":"POST", + "requestUri":"/v1/whatsapp/flow/assets/update", + "responseCode":200 + }, + "input":{"shape":"UpdateWhatsAppFlowAssetsInput"}, + "output":{"shape":"UpdateWhatsAppFlowAssetsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, + {"shape":"ThrottledRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"DependencyException"} + ], + "documentation":"

    Updates the Flow JSON definition (assets) of a WhatsApp Flow. Updating a published Flow's assets reverts it to DRAFT status, requiring re-publishing.

    " + }, "UpdateWhatsAppMessageTemplate":{ "name":"UpdateWhatsAppMessageTemplate", "http":{ @@ -430,6 +652,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"}, + {"shape":"AccessDeniedByMetaException"}, {"shape":"ThrottledRequestException"}, {"shape":"InternalServiceException"}, {"shape":"DependencyException"} @@ -533,6 +756,53 @@ "type":"integer", "box":true }, + "CreateWhatsAppFlowInput":{ + "type":"structure", + "required":[ + "id", + "flowName", + "categories" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account to associate with this Flow.

    " + }, + "flowName":{ + "shape":"MetaFlowName", + "documentation":"

    The name of the Flow. Must be unique within the WhatsApp Business Account.

    " + }, + "categories":{ + "shape":"MetaFlowCategoryList", + "documentation":"

    The categories that classify the business purpose of the Flow. At least one category is required.

    " + }, + "flowJson":{ + "shape":"MetaFlowJsonBlob", + "documentation":"

    The Flow JSON definition that describes the screens, components, and logic of the Flow. Maximum size is 10 MB.

    " + }, + "publish":{ + "shape":"Boolean", + "documentation":"

    Set to true to publish the Flow immediately after creation. Requires a valid flowJson that passes Meta's validation.

    " + }, + "cloneFlowId":{ + "shape":"MetaFlowId", + "documentation":"

    The ID of an existing Flow within the same WhatsApp Business Account to clone.

    " + } + } + }, + "CreateWhatsAppFlowOutput":{ + "type":"structure", + "members":{ + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier assigned to the Flow by Meta.

    " + }, + "validationErrors":{ + "shape":"ValidationErrorList", + "documentation":"

    A list of validation errors returned by Meta, if any. Validation errors must be resolved before the Flow can be published.

    " + } + } + }, "CreateWhatsAppMessageTemplateFromLibraryInput":{ "type":"structure", "required":[ @@ -625,6 +895,31 @@ "type":"boolean", "box":true }, + "DeleteWhatsAppFlowInput":{ + "type":"structure", + "required":[ + "id", + "flowId" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    ", + "location":"querystring", + "locationName":"id" + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow to delete.

    ", + "location":"querystring", + "locationName":"flowId" + } + } + }, + "DeleteWhatsAppFlowOutput":{ + "type":"structure", + "members":{} + }, "DeleteWhatsAppMessageMediaInput":{ "type":"structure", "required":[ @@ -703,6 +998,27 @@ "fault":true, "retryable":{"throttling":false} }, + "DeprecateWhatsAppFlowInput":{ + "type":"structure", + "required":[ + "id", + "flowId" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    " + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow to deprecate.

    " + } + } + }, + "DeprecateWhatsAppFlowOutput":{ + "type":"structure", + "members":{} + }, "DisassociateWhatsAppBusinessAccountInput":{ "type":"structure", "required":["id"], @@ -786,36 +1102,159 @@ } } }, - "GetWhatsAppMessageMediaInput":{ + "GetWhatsAppFlowInput":{ "type":"structure", "required":[ - "mediaId", - "originationPhoneNumberId" + "id", + "flowId" ], "members":{ - "mediaId":{ - "shape":"WhatsAppMediaId", - "documentation":"

    The unique identifier for the media file.

    " + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    ", + "location":"querystring", + "locationName":"id" }, - "originationPhoneNumberId":{ - "shape":"WhatsAppPhoneNumberId", - "documentation":"

    The unique identifier of the originating phone number for the WhatsApp message media. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhatsAppBusinessAccount to find a phone number's id.

    " + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow to retrieve.

    ", + "location":"querystring", + "locationName":"flowId" + } + } + }, + "GetWhatsAppFlowOutput":{ + "type":"structure", + "required":[ + "flowId", + "flowName", + "flowStatus" + ], + "members":{ + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow.

    " }, - "metadataOnly":{ - "shape":"Boolean", - "documentation":"

    Set to True to get only the metadata for the file.

    " + "flowName":{ + "shape":"MetaFlowName", + "documentation":"

    The name of the Flow.

    " }, - "destinationS3PresignedUrl":{ - "shape":"S3PresignedUrl", - "documentation":"

    The presign url of the media file.

    " + "flowStatus":{ + "shape":"MetaFlowStatus", + "documentation":"

    The lifecycle status of the Flow. Valid values are DRAFT, PUBLISHED, DEPRECATED, BLOCKED, and THROTTLED.

    " }, - "destinationS3File":{ - "shape":"S3File", - "documentation":"

    The bucketName and key of the S3 media file.

    " + "categories":{ + "shape":"MetaFlowCategoryList", + "documentation":"

    The categories that classify the business purpose of the Flow.

    " + }, + "validationErrors":{ + "shape":"ValidationErrorList", + "documentation":"

    A list of validation errors from Meta, if any.

    " + }, + "jsonVersion":{ + "shape":"MetaFlowJsonVersion", + "documentation":"

    The version of the Flow JSON schema used by this Flow (for example, 7.3).

    " + }, + "dataApiVersion":{ + "shape":"MetaFlowDataApiVersion", + "documentation":"

    The data API version for data exchange endpoint Flows.

    " + }, + "endpointUri":{ + "shape":"MetaFlowEndpointUri", + "documentation":"

    The endpoint URI for data exchange Flows, if configured.

    " + }, + "preview":{ + "shape":"MetaFlowPreviewInfo", + "documentation":"

    The preview URL and its expiration timestamp for testing the Flow.

    " + }, + "whatsAppBusinessAccount":{ + "shape":"MetaFlowWhatsAppBusinessAccountInfo", + "documentation":"

    The WhatsApp Business Account information from Meta associated with this Flow.

    " + }, + "application":{ + "shape":"MetaFlowApplicationInfo", + "documentation":"

    The Meta application information associated with this Flow.

    " + }, + "healthStatus":{ + "shape":"MetaFlowHealthStatus", + "documentation":"

    The health status information for this Flow from Meta.

    " } } }, - "GetWhatsAppMessageMediaOutput":{ + "GetWhatsAppFlowPreviewInput":{ + "type":"structure", + "required":[ + "id", + "flowId" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    ", + "location":"querystring", + "locationName":"id" + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow to preview.

    ", + "location":"querystring", + "locationName":"flowId" + }, + "invalidate":{ + "shape":"Boolean", + "documentation":"

    Set to true to force generation of a new preview URL. Use this if the previous URL has been compromised or you want a fresh expiration period.

    ", + "location":"querystring", + "locationName":"invalidate" + } + } + }, + "GetWhatsAppFlowPreviewOutput":{ + "type":"structure", + "required":[ + "flowId", + "preview" + ], + "members":{ + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow.

    " + }, + "preview":{ + "shape":"MetaFlowPreviewInfo", + "documentation":"

    The preview URL and its expiration timestamp.

    " + } + } + }, + "GetWhatsAppMessageMediaInput":{ + "type":"structure", + "required":[ + "mediaId", + "originationPhoneNumberId" + ], + "members":{ + "mediaId":{ + "shape":"WhatsAppMediaId", + "documentation":"

    The unique identifier for the media file.

    " + }, + "originationPhoneNumberId":{ + "shape":"WhatsAppPhoneNumberId", + "documentation":"

    The unique identifier of the originating phone number for the WhatsApp message media. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhatsAppBusinessAccount to find a phone number's id.

    " + }, + "metadataOnly":{ + "shape":"Boolean", + "documentation":"

    Set to True to get only the metadata for the file.

    " + }, + "destinationS3PresignedUrl":{ + "shape":"S3PresignedUrl", + "documentation":"

    The presign url of the media file.

    " + }, + "destinationS3File":{ + "shape":"S3File", + "documentation":"

    The bucketName and key of the S3 media file.

    " + } + } + }, + "GetWhatsAppMessageMediaOutput":{ "type":"structure", "members":{ "mimeType":{ @@ -1208,6 +1647,91 @@ } } }, + "ListWhatsAppFlowAssetsInput":{ + "type":"structure", + "required":[ + "id", + "flowId" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    ", + "location":"querystring", + "locationName":"id" + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow whose assets to list.

    ", + "location":"querystring", + "locationName":"flowId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return per page.

    ", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListWhatsAppFlowAssetsOutput":{ + "type":"structure", + "required":["flowAssets"], + "members":{ + "flowAssets":{ + "shape":"MetaFlowAssetList", + "documentation":"

    A list of Flow assets with download URLs.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The token to retrieve the next page of results, if any.

    " + } + } + }, + "ListWhatsAppFlowsInput":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account to list Flows for.

    ", + "location":"querystring", + "locationName":"id" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return per page.

    ", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListWhatsAppFlowsOutput":{ + "type":"structure", + "required":["flows"], + "members":{ + "flows":{ + "shape":"MetaFlowSummaryList", + "documentation":"

    A list of Flow summaries.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The token to retrieve the next page of results, if any.

    " + } + } + }, "ListWhatsAppMessageTemplatesInput":{ "type":"structure", "required":["id"], @@ -1292,6 +1816,309 @@ "max":100, "min":1 }, + "MetaFlowApplicationId":{ + "type":"string", + "max":100, + "min":1 + }, + "MetaFlowApplicationInfo":{ + "type":"structure", + "required":[ + "name", + "id" + ], + "members":{ + "link":{ + "shape":"MetaFlowApplicationLink", + "documentation":"

    The URL link for the Meta application.

    " + }, + "name":{ + "shape":"MetaFlowApplicationName", + "documentation":"

    The name of the Meta application.

    " + }, + "id":{ + "shape":"MetaFlowApplicationId", + "documentation":"

    The unique identifier of the Meta application.

    " + } + }, + "documentation":"

    Contains the Meta application metadata associated with a WhatsApp Flow.

    " + }, + "MetaFlowApplicationLink":{ + "type":"string", + "max":2048, + "min":1 + }, + "MetaFlowApplicationName":{ + "type":"string", + "max":200, + "min":1 + }, + "MetaFlowAsset":{ + "type":"structure", + "required":[ + "name", + "assetType", + "downloadUrl" + ], + "members":{ + "name":{ + "shape":"MetaFlowAssetName", + "documentation":"

    The filename of the asset (for example, flow.json).

    " + }, + "assetType":{ + "shape":"MetaFlowAssetType", + "documentation":"

    The type of asset. Currently the only supported value is FLOW_JSON.

    " + }, + "downloadUrl":{ + "shape":"MetaFlowAssetDownloadUrl", + "documentation":"

    A presigned URL from Meta for downloading the asset. The URL expires after a short period.

    " + } + }, + "documentation":"

    Represents a single asset file associated with a WhatsApp Flow, including a presigned download URL.

    " + }, + "MetaFlowAssetDownloadUrl":{ + "type":"string", + "max":2048, + "min":1 + }, + "MetaFlowAssetList":{ + "type":"list", + "member":{"shape":"MetaFlowAsset"} + }, + "MetaFlowAssetName":{ + "type":"string", + "max":100, + "min":1 + }, + "MetaFlowAssetType":{ + "type":"string", + "max":50, + "min":1 + }, + "MetaFlowCategory":{ + "type":"string", + "documentation":"

    The category that classifies the business purpose of a WhatsApp Flow.

    ", + "enum":[ + "SIGN_UP", + "SIGN_IN", + "APPOINTMENT_BOOKING", + "LEAD_GENERATION", + "SHOPPING", + "CONTACT_US", + "CUSTOMER_SUPPORT", + "SURVEY", + "OTHER" + ] + }, + "MetaFlowCategoryList":{ + "type":"list", + "member":{"shape":"MetaFlowCategory"}, + "max":9, + "min":1 + }, + "MetaFlowDataApiVersion":{ + "type":"string", + "max":10, + "min":1 + }, + "MetaFlowEndpointUri":{ + "type":"string", + "max":2048, + "min":1 + }, + "MetaFlowHealthEntity":{ + "type":"structure", + "required":[ + "entityType", + "id", + "canSendMessage" + ], + "members":{ + "entityType":{ + "shape":"MetaFlowHealthEntityType", + "documentation":"

    The type of entity (for example, FLOW, WABA, BUSINESS, or APP).

    " + }, + "id":{ + "shape":"String", + "documentation":"

    The unique identifier of the entity.

    " + }, + "canSendMessage":{ + "shape":"MetaFlowHealthStatusAvailability", + "documentation":"

    The messaging availability status for this entity (for example, AVAILABLE, LIMITED, or BLOCKED).

    " + } + }, + "documentation":"

    Represents a single entity in the health status check for a WhatsApp Flow.

    " + }, + "MetaFlowHealthEntityList":{ + "type":"list", + "member":{"shape":"MetaFlowHealthEntity"} + }, + "MetaFlowHealthEntityType":{ + "type":"string", + "max":50, + "min":1 + }, + "MetaFlowHealthStatus":{ + "type":"structure", + "required":["canSendMessage"], + "members":{ + "canSendMessage":{ + "shape":"MetaFlowHealthStatusAvailability", + "documentation":"

    The overall messaging availability status (for example, AVAILABLE, LIMITED, or BLOCKED).

    " + }, + "entities":{ + "shape":"MetaFlowHealthEntityList", + "documentation":"

    A list of health status entities with per-entity availability information.

    " + } + }, + "documentation":"

    Contains the overall health status and per-entity breakdown for a WhatsApp Flow.

    " + }, + "MetaFlowHealthStatusAvailability":{ + "type":"string", + "max":50, + "min":1 + }, + "MetaFlowId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[0-9]+" + }, + "MetaFlowJsonBlob":{ + "type":"blob", + "max":10485760, + "min":1 + }, + "MetaFlowJsonVersion":{ + "type":"string", + "max":10, + "min":1 + }, + "MetaFlowName":{ + "type":"string", + "max":200, + "min":1 + }, + "MetaFlowPreviewInfo":{ + "type":"structure", + "required":[ + "previewUrl", + "expiresAt" + ], + "members":{ + "previewUrl":{ + "shape":"MetaFlowPreviewUrl", + "documentation":"

    The web URL for previewing the Flow. Can be shared with stakeholders for review.

    " + }, + "expiresAt":{ + "shape":"MetaFlowTimestamp", + "documentation":"

    The timestamp when the preview URL expires.

    " + } + }, + "documentation":"

    Contains the preview URL for testing a WhatsApp Flow and its expiration timestamp.

    " + }, + "MetaFlowPreviewUrl":{ + "type":"string", + "max":2048, + "min":1 + }, + "MetaFlowStatus":{ + "type":"string", + "max":20, + "min":1 + }, + "MetaFlowSummary":{ + "type":"structure", + "required":[ + "flowId", + "flowName", + "flowStatus", + "flowCategories", + "validationErrors" + ], + "members":{ + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow assigned by Meta.

    " + }, + "flowName":{ + "shape":"MetaFlowName", + "documentation":"

    The name of the Flow.

    " + }, + "flowStatus":{ + "shape":"MetaFlowStatus", + "documentation":"

    The lifecycle status of the Flow (DRAFT, PUBLISHED, DEPRECATED, BLOCKED, or THROTTLED).

    " + }, + "flowCategories":{ + "shape":"MetaFlowCategoryList", + "documentation":"

    The categories that classify the business purpose of the Flow.

    " + }, + "validationErrors":{ + "shape":"ValidationErrorList", + "documentation":"

    A list of validation errors from Meta, if any.

    " + } + }, + "documentation":"

    Contains summary information about a WhatsApp Flow, including its ID, name, status, and categories.

    " + }, + "MetaFlowSummaryList":{ + "type":"list", + "member":{"shape":"MetaFlowSummary"} + }, + "MetaFlowTimestamp":{ + "type":"string", + "max":50, + "min":1 + }, + "MetaFlowValidationError":{ + "type":"string", + "max":1048576, + "min":0 + }, + "MetaFlowWabaCurrency":{ + "type":"string", + "max":10, + "min":1 + }, + "MetaFlowWabaTemplateNamespace":{ + "type":"string", + "max":200, + "min":1 + }, + "MetaFlowWabaTimezoneId":{ + "type":"string", + "max":10, + "min":1 + }, + "MetaFlowWhatsAppBusinessAccountInfo":{ + "type":"structure", + "required":[ + "id", + "name" + ], + "members":{ + "id":{ + "shape":"WhatsAppBusinessAccountId", + "documentation":"

    The WhatsApp Business Account ID from Meta.

    " + }, + "name":{ + "shape":"WhatsAppBusinessAccountName", + "documentation":"

    The name of the WhatsApp Business Account.

    " + }, + "currency":{ + "shape":"MetaFlowWabaCurrency", + "documentation":"

    The currency code for the WhatsApp Business Account (for example, USD).

    " + }, + "timezoneId":{ + "shape":"MetaFlowWabaTimezoneId", + "documentation":"

    The timezone ID for the WhatsApp Business Account.

    " + }, + "messageTemplateNamespace":{ + "shape":"MetaFlowWabaTemplateNamespace", + "documentation":"

    The message template namespace for the WhatsApp Business Account.

    " + } + }, + "documentation":"

    Contains WhatsApp Business Account metadata associated with a Flow, as returned by Meta.

    " + }, "MetaIndustries":{ "type":"list", "member":{"shape":"MetaIndustry"} @@ -1547,6 +2374,27 @@ } } }, + "PublishWhatsAppFlowInput":{ + "type":"structure", + "required":[ + "id", + "flowId" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    " + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow to publish.

    " + } + } + }, + "PublishWhatsAppFlowOutput":{ + "type":"structure", + "members":{} + }, "PutWhatsAppBusinessAccountEventDestinationsInput":{ "type":"structure", "required":[ @@ -1837,6 +2685,66 @@ } } }, + "UpdateWhatsAppFlowAssetsInput":{ + "type":"structure", + "required":[ + "id", + "flowId", + "flowJson" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    " + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow whose assets to update.

    " + }, + "flowJson":{ + "shape":"MetaFlowJsonBlob", + "documentation":"

    The updated Flow JSON definition. Maximum size is 10 MB.

    " + } + } + }, + "UpdateWhatsAppFlowAssetsOutput":{ + "type":"structure", + "members":{ + "validationErrors":{ + "shape":"ValidationErrorList", + "documentation":"

    A list of validation errors returned by Meta, if any. Validation errors must be resolved before the Flow can be published.

    " + } + } + }, + "UpdateWhatsAppFlowInput":{ + "type":"structure", + "required":[ + "id", + "flowId" + ], + "members":{ + "id":{ + "shape":"LinkedWhatsAppBusinessAccountId", + "documentation":"

    The ID of the WhatsApp Business Account associated with this Flow.

    " + }, + "flowId":{ + "shape":"MetaFlowId", + "documentation":"

    The unique identifier of the Flow to update.

    " + }, + "flowName":{ + "shape":"MetaFlowName", + "documentation":"

    The updated name for the Flow.

    " + }, + "categories":{ + "shape":"MetaFlowCategoryList", + "documentation":"

    The updated categories for the Flow.

    " + } + } + }, + "UpdateWhatsAppFlowOutput":{ + "type":"structure", + "members":{} + }, "UpdateWhatsAppMessageTemplateInput":{ "type":"structure", "required":["id"], @@ -1879,6 +2787,10 @@ "type":"structure", "members":{} }, + "ValidationErrorList":{ + "type":"list", + "member":{"shape":"MetaFlowValidationError"} + }, "ValidationException":{ "type":"structure", "members":{ From 95836c5655668f945277168e203c5587ef5e94dd Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Wed, 3 Jun 2026 18:08:24 +0000 Subject: [PATCH 62/73] Bump version to 2.34.61 --- .changes/2.34.61.json | 37 +++++++++++++++++++ .../api-change-arcregionswitch-40214.json | 5 --- .../next-release/api-change-ce-16750.json | 5 --- .../api-change-computeoptimizer-61378.json | 5 --- .../api-change-connect-85099.json | 5 --- .../api-change-inspector2-24370.json | 5 --- .../api-change-pinpointsmsvoice-41564.json | 5 --- .../api-change-socialmessaging-60882.json | 5 --- CHANGELOG.rst | 12 ++++++ awscli/__init__.py | 2 +- configure | 14 +++---- configure.ac | 2 +- doc/source/conf.py | 2 +- 13 files changed, 59 insertions(+), 45 deletions(-) create mode 100644 .changes/2.34.61.json delete mode 100644 .changes/next-release/api-change-arcregionswitch-40214.json delete mode 100644 .changes/next-release/api-change-ce-16750.json delete mode 100644 .changes/next-release/api-change-computeoptimizer-61378.json delete mode 100644 .changes/next-release/api-change-connect-85099.json delete mode 100644 .changes/next-release/api-change-inspector2-24370.json delete mode 100644 .changes/next-release/api-change-pinpointsmsvoice-41564.json delete mode 100644 .changes/next-release/api-change-socialmessaging-60882.json diff --git a/.changes/2.34.61.json b/.changes/2.34.61.json new file mode 100644 index 000000000000..d11a2baebf32 --- /dev/null +++ b/.changes/2.34.61.json @@ -0,0 +1,37 @@ +[ + { + "category": "``arc-region-switch``", + "description": "ARC Region Switch now supports three new execution blocks for multi-Region database workloads-Amazon Aurora Serverless scaling, Amazon Aurora Provisioned scaling, and Amazon Neptune Global Database failover.", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "SearchContacts Connect API now supports filtering contacts by the AI Agents involved in handling them", + "type": "api-change" + }, + { + "category": "``ce``", + "description": "Added support for target-coverage-based Savings Plans purchase analysis. The StartCommitmentPurchaseAnalysis API now accepts a new TARGET AVERAGE COVERAGE value for AnalysisType, as well as an optional SavingsPlansTargetCoverage field in SavingsPlansPurchaseAnalysisConfiguration", + "type": "api-change" + }, + { + "category": "``compute-optimizer``", + "description": "This release lets customers extend the lookback period for Amazon EBS volume and Amazon ECS rightsizing recommendations to 32 days.", + "type": "api-change" + }, + { + "category": "``socialmessaging``", + "description": "Adding support for WhatsApp flow APIs and adding AccessDeniedByMetaException for Template APIs", + "type": "api-change" + }, + { + "category": "``inspector2``", + "description": "Inspector support for enhanced scanning", + "type": "api-change" + }, + { + "category": "``pinpoint-sms-voice``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-arcregionswitch-40214.json b/.changes/next-release/api-change-arcregionswitch-40214.json deleted file mode 100644 index 96082567613d..000000000000 --- a/.changes/next-release/api-change-arcregionswitch-40214.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``arc-region-switch``", - "description": "ARC Region Switch now supports three new execution blocks for multi-Region database workloads-Amazon Aurora Serverless scaling, Amazon Aurora Provisioned scaling, and Amazon Neptune Global Database failover." -} diff --git a/.changes/next-release/api-change-ce-16750.json b/.changes/next-release/api-change-ce-16750.json deleted file mode 100644 index 9f6418caf798..000000000000 --- a/.changes/next-release/api-change-ce-16750.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ce``", - "description": "Added support for target-coverage-based Savings Plans purchase analysis. The StartCommitmentPurchaseAnalysis API now accepts a new TARGET AVERAGE COVERAGE value for AnalysisType, as well as an optional SavingsPlansTargetCoverage field in SavingsPlansPurchaseAnalysisConfiguration" -} diff --git a/.changes/next-release/api-change-computeoptimizer-61378.json b/.changes/next-release/api-change-computeoptimizer-61378.json deleted file mode 100644 index 89d75bcaa733..000000000000 --- a/.changes/next-release/api-change-computeoptimizer-61378.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``compute-optimizer``", - "description": "This release lets customers extend the lookback period for Amazon EBS volume and Amazon ECS rightsizing recommendations to 32 days." -} diff --git a/.changes/next-release/api-change-connect-85099.json b/.changes/next-release/api-change-connect-85099.json deleted file mode 100644 index c8b34f26d283..000000000000 --- a/.changes/next-release/api-change-connect-85099.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connect``", - "description": "SearchContacts Connect API now supports filtering contacts by the AI Agents involved in handling them" -} diff --git a/.changes/next-release/api-change-inspector2-24370.json b/.changes/next-release/api-change-inspector2-24370.json deleted file mode 100644 index 4546838a8bc4..000000000000 --- a/.changes/next-release/api-change-inspector2-24370.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``inspector2``", - "description": "Inspector support for enhanced scanning" -} diff --git a/.changes/next-release/api-change-pinpointsmsvoice-41564.json b/.changes/next-release/api-change-pinpointsmsvoice-41564.json deleted file mode 100644 index 641572f88c3e..000000000000 --- a/.changes/next-release/api-change-pinpointsmsvoice-41564.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``pinpoint-sms-voice``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-socialmessaging-60882.json b/.changes/next-release/api-change-socialmessaging-60882.json deleted file mode 100644 index 834f386e79f3..000000000000 --- a/.changes/next-release/api-change-socialmessaging-60882.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``socialmessaging``", - "description": "Adding support for WhatsApp flow APIs and adding AccessDeniedByMetaException for Template APIs" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7e3ef2a930a2..e131465349b7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ CHANGELOG ========= +2.34.61 +======= + +* api-change:``arc-region-switch``: ARC Region Switch now supports three new execution blocks for multi-Region database workloads-Amazon Aurora Serverless scaling, Amazon Aurora Provisioned scaling, and Amazon Neptune Global Database failover. +* api-change:``connect``: SearchContacts Connect API now supports filtering contacts by the AI Agents involved in handling them +* api-change:``ce``: Added support for target-coverage-based Savings Plans purchase analysis. The StartCommitmentPurchaseAnalysis API now accepts a new TARGET AVERAGE COVERAGE value for AnalysisType, as well as an optional SavingsPlansTargetCoverage field in SavingsPlansPurchaseAnalysisConfiguration +* api-change:``compute-optimizer``: This release lets customers extend the lookback period for Amazon EBS volume and Amazon ECS rightsizing recommendations to 32 days. +* api-change:``socialmessaging``: Adding support for WhatsApp flow APIs and adding AccessDeniedByMetaException for Template APIs +* api-change:``inspector2``: Inspector support for enhanced scanning +* api-change:``pinpoint-sms-voice``: Adding new BDD representation of endpoint ruleset + + 2.34.60 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 390aaea5948c..6b9d68a27d71 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.60' +__version__ = '2.34.61' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 8b62683c4cd1..07c132188964 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.60. +# Generated by GNU Autoconf 2.71 for awscli 2.34.61. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.60' -PACKAGE_STRING='awscli 2.34.60' +PACKAGE_VERSION='2.34.61' +PACKAGE_STRING='awscli 2.34.61' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.60 +awscli configure 2.34.61 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.60, which was +It was created by awscli $as_me 2.34.61, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.60, which was +This file was extended by awscli $as_me 2.34.61, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.60 +awscli config.status 2.34.61 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 44e7d7e97471..224500e0589a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.60]) +AC_INIT([awscli], [2.34.61]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 05482b6483c1..67f0ec270519 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.60' +release = '2.34.61' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From aa7ff2cc1a90e4e27c6f553ed7e5c2a0c80d193c Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:12:39 -0700 Subject: [PATCH 63/73] Update delete-service.rst --- awscli/examples/apprunner/delete-service.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awscli/examples/apprunner/delete-service.rst b/awscli/examples/apprunner/delete-service.rst index fd73a71bee46..846f1f77044f 100644 --- a/awscli/examples/apprunner/delete-service.rst +++ b/awscli/examples/apprunner/delete-service.rst @@ -51,7 +51,7 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } From 37b973e5436f6e6d8cbb62c185739a90f560404a Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:15:18 -0700 Subject: [PATCH 64/73] Update create-service.rst --- awscli/examples/apprunner/create-service.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/awscli/examples/apprunner/create-service.rst b/awscli/examples/apprunner/create-service.rst index 38df3c09e265..8b436bcb827a 100644 --- a/awscli/examples/apprunner/create-service.rst +++ b/awscli/examples/apprunner/create-service.rst @@ -37,7 +37,7 @@ Contents of ``input.json``:: } }, "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } @@ -82,7 +82,7 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } @@ -127,7 +127,7 @@ Contents of ``input.json``:: } }, "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } @@ -172,7 +172,7 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } @@ -208,7 +208,7 @@ Contents of ``input.json``:: } }, "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } @@ -244,7 +244,7 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } From da9f7f378919a924bf4dca8c68c95591bb03db54 Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:16:48 -0700 Subject: [PATCH 65/73] Update update-service.rst --- awscli/examples/apprunner/update-service.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awscli/examples/apprunner/update-service.rst b/awscli/examples/apprunner/update-service.rst index c0a54418f85d..711b4ff3f579 100644 --- a/awscli/examples/apprunner/update-service.rst +++ b/awscli/examples/apprunner/update-service.rst @@ -57,7 +57,7 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "4 GB" } } From ac684b2c42b910cdaa38d0334a685636dc2dd3f5 Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:17:12 -0700 Subject: [PATCH 66/73] Update describe-service.rst --- awscli/examples/apprunner/describe-service.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awscli/examples/apprunner/describe-service.rst b/awscli/examples/apprunner/describe-service.rst index 291674f1dde5..cf3a3fecccca 100644 --- a/awscli/examples/apprunner/describe-service.rst +++ b/awscli/examples/apprunner/describe-service.rst @@ -50,7 +50,7 @@ Output:: }, "Status": "RUNNING", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } From 1c31fdc81f31f0079b23ba1a7f2b4a55464140a7 Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:17:34 -0700 Subject: [PATCH 67/73] Update pause-service.rst --- awscli/examples/apprunner/pause-service.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awscli/examples/apprunner/pause-service.rst b/awscli/examples/apprunner/pause-service.rst index 4ffa7412a956..701c568add47 100644 --- a/awscli/examples/apprunner/pause-service.rst +++ b/awscli/examples/apprunner/pause-service.rst @@ -51,7 +51,7 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } From 12e53b46a4206395fa52f58350c1e11fe5149c0c Mon Sep 17 00:00:00 2001 From: "Ryan F." <77812147+RyanFitzSimmonsAK@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:17:55 -0700 Subject: [PATCH 68/73] Update resume-service.rst --- awscli/examples/apprunner/resume-service.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/awscli/examples/apprunner/resume-service.rst b/awscli/examples/apprunner/resume-service.rst index 8482ac139e73..893bff38859b 100644 --- a/awscli/examples/apprunner/resume-service.rst +++ b/awscli/examples/apprunner/resume-service.rst @@ -51,8 +51,8 @@ Output:: }, "Status": "OPERATION_IN_PROGRESS", "InstanceConfiguration": { - "CPU": "1 vCPU", + "Cpu": "1 vCPU", "Memory": "3 GB" } } - } \ No newline at end of file + } From 779428318ae52316d1c90729516e5c37c7e8f5b6 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 4 Jun 2026 18:09:22 +0000 Subject: [PATCH 69/73] Merge customizations for EMR --- awscli/customizations/emr/createcluster.py | 19 +++++++++++++++++ awscli/customizations/emr/helptext.py | 7 +++++++ .../emr/test_create_cluster_release_label.py | 21 +++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/awscli/customizations/emr/createcluster.py b/awscli/customizations/emr/createcluster.py index ca868d1b3967..6adefa2119bb 100644 --- a/awscli/customizations/emr/createcluster.py +++ b/awscli/customizations/emr/createcluster.py @@ -233,6 +233,17 @@ class CreateCluster(Command): 'action': 'store_true', 'group_name': 'extended-support', }, + { + 'name': 'session-enabled', + 'action': 'store_true', + 'group_name': 'session-enabled', + 'help_text': helptext.SESSION_ENABLED, + }, + { + 'name': 'no-session-enabled', + 'action': 'store_true', + 'group_name': 'session-enabled', + }, ] SYNOPSIS = BasicCommand.FROM_FILE('emr', 'create-cluster-synopsis.txt') EXAMPLES = BasicCommand.FROM_FILE('emr', 'create-cluster-examples.rst') @@ -549,6 +560,14 @@ def _run_main_command(self, parsed_args, parsed_globals): '--no-extended-support', ) + if parsed_args.session_enabled or parsed_args.no_session_enabled: + params['SessionEnabled'] = emrutils.apply_boolean_options( + parsed_args.session_enabled, + '--session-enabled', + parsed_args.no_session_enabled, + '--no-session-enabled', + ) + if parsed_args.managed_scaling_policy is not None: emrutils.apply_dict( params, diff --git a/awscli/customizations/emr/helptext.py b/awscli/customizations/emr/helptext.py index b06578294967..85200b3874fa 100755 --- a/awscli/customizations/emr/helptext.py +++ b/awscli/customizations/emr/helptext.py @@ -578,6 +578,13 @@ EXTENDED_SUPPORT = '

    Reserved.

    ' +SESSION_ENABLED = ( + '

    Indicates whether Spark Connect sessions are enabled on the cluster. ' + 'When set, you can start Spark Connect sessions on this cluster using the ' + 'start-session command. This setting is immutable after ' + 'cluster creation. Requires EMR release emr-spark-8.0.0 or later.

    ' +) + MONITORING_CONFIGURATION = ( '

    Monitoring configuration for an Amazon EMR cluster. ' 'The configuration specifies CloudWatch logging settings and S3 logging settings for the cluster. ' diff --git a/tests/unit/customizations/emr/test_create_cluster_release_label.py b/tests/unit/customizations/emr/test_create_cluster_release_label.py index a7931ee4b588..a7d3abca6802 100644 --- a/tests/unit/customizations/emr/test_create_cluster_release_label.py +++ b/tests/unit/customizations/emr/test_create_cluster_release_label.py @@ -578,6 +578,27 @@ def test_extended_support_and_no_extended_support(self): result = self.run_cmd(cmd, 252) self.assertEqual(expected_error_msg, result[1]) + def test_session_enabled(self): + cmd = DEFAULT_CMD + '--session-enabled' + result = copy.deepcopy(DEFAULT_RESULT) + result['SessionEnabled'] = True + self.assert_params_for_cmd(cmd, result) + + def test_no_session_enabled(self): + cmd = DEFAULT_CMD + '--no-session-enabled' + result = copy.deepcopy(DEFAULT_RESULT) + result['SessionEnabled'] = False + self.assert_params_for_cmd(cmd, result) + + def test_session_enabled_and_no_session_enabled(self): + cmd = DEFAULT_CMD + '--session-enabled --no-session-enabled' + expected_error_msg = ( + '\naws: [ERROR]: An error occurred (ParamValidation): cannot use both --session-enabled' + ' and --no-session-enabled options together.\n' + ) + result = self.run_cmd(cmd, 252) + self.assertEqual(expected_error_msg, result[1]) + def test_tags(self): cmd = DEFAULT_CMD.split() + ['--tags', 'k1=v1', 'k2', 'k3=spaces v3'] result = copy.deepcopy(DEFAULT_RESULT) From c827a568907f6a172b20122f2e99eb39c7b0df06 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 4 Jun 2026 18:09:26 +0000 Subject: [PATCH 70/73] Update to latest models --- .../api-change-appflow-51688.json | 5 + .../api-change-appintegrations-69315.json | 5 + .../api-change-auditmanager-76714.json | 5 + .../api-change-chimesdkvoice-9801.json | 5 + .../api-change-cloudformation-97707.json | 5 + .../next-release/api-change-config-50735.json | 5 + .../api-change-connectparticipant-14904.json | 5 + .../next-release/api-change-efs-85515.json | 5 + .../next-release/api-change-emr-74256.json | 5 + .../next-release/api-change-glue-14739.json | 5 + .../api-change-guardduty-77086.json | 5 + .../next-release/api-change-ivs-47016.json | 5 + .../next-release/api-change-kendra-58549.json | 5 + .../api-change-sagemaker-22021.json | 5 + .../next-release/api-change-sns-60476.json | 5 + .../next-release/api-change-wickr-82298.json | 5 + .../api-change-workdocs-4542.json | 5 + .../api-change-workspaces-54058.json | 5 + .../data/appflow/2020-08-23/service-2.json | 16 +- .../appintegrations/2020-07-29/service-2.json | 2 +- .../auditmanager/2017-07-25/service-2.json | 32 +- .../chime-sdk-voice/2022-08-03/service-2.json | 4 +- .../cloudformation/2010-05-15/service-2.json | 4 +- .../data/config/2014-11-12/service-2.json | 25 + .../2018-09-07/service-2.json | 24 +- .../data/efs/2015-02-01/service-2.json | 4 +- .../data/emr/2009-03-31/paginators-1.json | 5 + .../data/emr/2009-03-31/service-2.json | 538 +++++++++++++++++- .../data/glue/2017-03-31/service-2.json | 165 +++++- .../data/guardduty/2017-11-28/service-2.json | 4 +- .../data/ivs/2020-07-14/service-2.json | 67 ++- .../data/kendra/2019-02-03/service-2.json | 14 +- .../data/sagemaker/2017-07-24/service-2.json | 91 ++- .../data/sns/2010-03-31/service-2.json | 2 +- .../data/wickr/2024-02-01/service-2.json | 61 +- .../data/workdocs/2016-05-01/service-2.json | 2 +- .../data/workspaces/2015-04-08/service-2.json | 14 +- .../taxsettings/endpoint-tests-1.json | 116 ++-- 38 files changed, 1138 insertions(+), 142 deletions(-) create mode 100644 .changes/next-release/api-change-appflow-51688.json create mode 100644 .changes/next-release/api-change-appintegrations-69315.json create mode 100644 .changes/next-release/api-change-auditmanager-76714.json create mode 100644 .changes/next-release/api-change-chimesdkvoice-9801.json create mode 100644 .changes/next-release/api-change-cloudformation-97707.json create mode 100644 .changes/next-release/api-change-config-50735.json create mode 100644 .changes/next-release/api-change-connectparticipant-14904.json create mode 100644 .changes/next-release/api-change-efs-85515.json create mode 100644 .changes/next-release/api-change-emr-74256.json create mode 100644 .changes/next-release/api-change-glue-14739.json create mode 100644 .changes/next-release/api-change-guardduty-77086.json create mode 100644 .changes/next-release/api-change-ivs-47016.json create mode 100644 .changes/next-release/api-change-kendra-58549.json create mode 100644 .changes/next-release/api-change-sagemaker-22021.json create mode 100644 .changes/next-release/api-change-sns-60476.json create mode 100644 .changes/next-release/api-change-wickr-82298.json create mode 100644 .changes/next-release/api-change-workdocs-4542.json create mode 100644 .changes/next-release/api-change-workspaces-54058.json diff --git a/.changes/next-release/api-change-appflow-51688.json b/.changes/next-release/api-change-appflow-51688.json new file mode 100644 index 000000000000..44468deb7168 --- /dev/null +++ b/.changes/next-release/api-change-appflow-51688.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``appflow``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-appintegrations-69315.json b/.changes/next-release/api-change-appintegrations-69315.json new file mode 100644 index 000000000000..23d3d652bcd9 --- /dev/null +++ b/.changes/next-release/api-change-appintegrations-69315.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``appintegrations``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-auditmanager-76714.json b/.changes/next-release/api-change-auditmanager-76714.json new file mode 100644 index 000000000000..ace93e8013ba --- /dev/null +++ b/.changes/next-release/api-change-auditmanager-76714.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``auditmanager``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-chimesdkvoice-9801.json b/.changes/next-release/api-change-chimesdkvoice-9801.json new file mode 100644 index 000000000000..522680afec5a --- /dev/null +++ b/.changes/next-release/api-change-chimesdkvoice-9801.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``chime-sdk-voice``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-cloudformation-97707.json b/.changes/next-release/api-change-cloudformation-97707.json new file mode 100644 index 000000000000..3b975ed9637d --- /dev/null +++ b/.changes/next-release/api-change-cloudformation-97707.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cloudformation``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-config-50735.json b/.changes/next-release/api-change-config-50735.json new file mode 100644 index 000000000000..ca811a64df48 --- /dev/null +++ b/.changes/next-release/api-change-config-50735.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``config``", + "description": "AWS Config now supports internal service-linked rules, allowing AWS service partners to deploy Config rules for customers and use the evaluation results to build enhanced features." +} diff --git a/.changes/next-release/api-change-connectparticipant-14904.json b/.changes/next-release/api-change-connectparticipant-14904.json new file mode 100644 index 000000000000..324c5be3ae87 --- /dev/null +++ b/.changes/next-release/api-change-connectparticipant-14904.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connectparticipant``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-efs-85515.json b/.changes/next-release/api-change-efs-85515.json new file mode 100644 index 000000000000..4f6a14a25cea --- /dev/null +++ b/.changes/next-release/api-change-efs-85515.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``efs``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-emr-74256.json b/.changes/next-release/api-change-emr-74256.json new file mode 100644 index 000000000000..ee3d50522a59 --- /dev/null +++ b/.changes/next-release/api-change-emr-74256.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``emr``", + "description": "Added support for Spark Connect interactive sessions on Amazon EMR on EC2 with new APIs - StartSession, GetSession, GetSessionEndpoint, ListSessions, and TerminateSession. Added sessionEnabled field in RunJobFlow and DescribeCluster to enable Spark Connect endpoints on EMR clusters." +} diff --git a/.changes/next-release/api-change-glue-14739.json b/.changes/next-release/api-change-glue-14739.json new file mode 100644 index 000000000000..2c2ae4e64a7b --- /dev/null +++ b/.changes/next-release/api-change-glue-14739.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``glue``", + "description": "AWS Glue Interactive Sessions now supports Apache Spark Connect, enabling remote Spark execution over gRPC with minimal client-side dependencies. Adds GetSessionEndpoint and GetDashboardUrl APIs. Modifies CreateSession now accepts SPARK CONNECT session type." +} diff --git a/.changes/next-release/api-change-guardduty-77086.json b/.changes/next-release/api-change-guardduty-77086.json new file mode 100644 index 000000000000..201bd433e936 --- /dev/null +++ b/.changes/next-release/api-change-guardduty-77086.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``guardduty``", + "description": "Remove unsupported RDS field for filter" +} diff --git a/.changes/next-release/api-change-ivs-47016.json b/.changes/next-release/api-change-ivs-47016.json new file mode 100644 index 000000000000..03b762bb8fe8 --- /dev/null +++ b/.changes/next-release/api-change-ivs-47016.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ivs``", + "description": "adds UpdateAdConfiguration operation to AWS IVS low-latency APIs" +} diff --git a/.changes/next-release/api-change-kendra-58549.json b/.changes/next-release/api-change-kendra-58549.json new file mode 100644 index 000000000000..3b6358491ab3 --- /dev/null +++ b/.changes/next-release/api-change-kendra-58549.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``kendra``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-sagemaker-22021.json b/.changes/next-release/api-change-sagemaker-22021.json new file mode 100644 index 000000000000..cd0e8e8897bc --- /dev/null +++ b/.changes/next-release/api-change-sagemaker-22021.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sagemaker``", + "description": "Adds the IncludedData parameter to DescribeModelCard and DescribeModelPackage. Set it to MetadataOnly to retrieve a model card without decrypt permission on the customer managed AWS KMS key (default AllData returns full content). Adds support for the MTRL Job resource in SageMaker Search." +} diff --git a/.changes/next-release/api-change-sns-60476.json b/.changes/next-release/api-change-sns-60476.json new file mode 100644 index 000000000000..4229996f679a --- /dev/null +++ b/.changes/next-release/api-change-sns-60476.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sns``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-wickr-82298.json b/.changes/next-release/api-change-wickr-82298.json new file mode 100644 index 000000000000..b0c03e0cd47c --- /dev/null +++ b/.changes/next-release/api-change-wickr-82298.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``wickr``", + "description": "AWS Wickr now allows network administrators to configure a maximum session duration for non-SSO users in security groups, and display customizable consent popups to users at login for terms of use or compliance acknowledgements." +} diff --git a/.changes/next-release/api-change-workdocs-4542.json b/.changes/next-release/api-change-workdocs-4542.json new file mode 100644 index 000000000000..b9ba1a84d644 --- /dev/null +++ b/.changes/next-release/api-change-workdocs-4542.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``workdocs``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/.changes/next-release/api-change-workspaces-54058.json b/.changes/next-release/api-change-workspaces-54058.json new file mode 100644 index 000000000000..5f61a26f2027 --- /dev/null +++ b/.changes/next-release/api-change-workspaces-54058.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``workspaces``", + "description": "Adding new BDD representation of endpoint ruleset" +} diff --git a/awscli/botocore/data/appflow/2020-08-23/service-2.json b/awscli/botocore/data/appflow/2020-08-23/service-2.json index 0d9eac20e30b..b1c58d620a12 100644 --- a/awscli/botocore/data/appflow/2020-08-23/service-2.json +++ b/awscli/botocore/data/appflow/2020-08-23/service-2.json @@ -1133,7 +1133,7 @@ }, "CustomerProfiles":{ "shape":"CustomerProfilesMetadata", - "documentation":"

    The connector metadata specific to Amazon Connect Customer Profiles.

    " + "documentation":"

    The connector metadata specific to Connect Customer Customer Profiles.

    " }, "Honeycode":{ "shape":"HoneycodeMetadata", @@ -1901,19 +1901,19 @@ "members":{ "domainName":{ "shape":"DomainName", - "documentation":"

    The unique name of the Amazon Connect Customer Profiles domain.

    " + "documentation":"

    The unique name of the Connect Customer Customer Profiles domain.

    " }, "objectTypeName":{ "shape":"ObjectTypeName", - "documentation":"

    The object specified in the Amazon Connect Customer Profiles flow destination.

    " + "documentation":"

    The object specified in the Connect Customer Customer Profiles flow destination.

    " } }, - "documentation":"

    The properties that are applied when Amazon Connect Customer Profiles is used as a destination.

    " + "documentation":"

    The properties that are applied when Connect Customer Customer Profiles is used as a destination.

    " }, "CustomerProfilesMetadata":{ "type":"structure", "members":{}, - "documentation":"

    The connector metadata specific to Amazon Connect Customer Profiles.

    " + "documentation":"

    The connector metadata specific to Connect Customer Customer Profiles.

    " }, "DataApiRoleArn":{ "type":"string", @@ -2362,7 +2362,7 @@ }, "CustomerProfiles":{ "shape":"CustomerProfilesDestinationProperties", - "documentation":"

    The properties required to query Amazon Connect Customer Profiles.

    " + "documentation":"

    The properties required to query Connect Customer Customer Profiles.

    " }, "Zendesk":{ "shape":"ZendeskDestinationProperties", @@ -4085,11 +4085,11 @@ "members":{ "connectorProfileName":{ "shape":"ConnectorProfileName", - "documentation":"

    The name of the connector profile that you want to reset cached metadata for.

    You can omit this parameter if you're resetting the cache for any of the following connectors: Amazon Connect, Amazon EventBridge, Amazon Lookout for Metrics, Amazon S3, or Upsolver. If you're resetting the cache for any other connector, you must include this parameter in your request.

    " + "documentation":"

    The name of the connector profile that you want to reset cached metadata for.

    You can omit this parameter if you're resetting the cache for any of the following connectors: Connect Customer, Amazon EventBridge, Amazon Lookout for Metrics, Amazon S3, or Upsolver. If you're resetting the cache for any other connector, you must include this parameter in your request.

    " }, "connectorType":{ "shape":"ConnectorType", - "documentation":"

    The type of connector to reset cached metadata for.

    You must include this parameter in your request if you're resetting the cache for any of the following connectors: Amazon Connect, Amazon EventBridge, Amazon Lookout for Metrics, Amazon S3, or Upsolver. If you're resetting the cache for any other connector, you can omit this parameter from your request.

    " + "documentation":"

    The type of connector to reset cached metadata for.

    You must include this parameter in your request if you're resetting the cache for any of the following connectors: Connect Customer, Amazon EventBridge, Amazon Lookout for Metrics, Amazon S3, or Upsolver. If you're resetting the cache for any other connector, you can omit this parameter from your request.

    " }, "connectorEntityName":{ "shape":"EntityName", diff --git a/awscli/botocore/data/appintegrations/2020-07-29/service-2.json b/awscli/botocore/data/appintegrations/2020-07-29/service-2.json index 63614f21f62d..d41d2aea9424 100644 --- a/awscli/botocore/data/appintegrations/2020-07-29/service-2.json +++ b/awscli/botocore/data/appintegrations/2020-07-29/service-2.json @@ -2075,5 +2075,5 @@ "members":{} } }, - "documentation":"

    The Amazon AppIntegrations service enables you to configure and reuse connections to external applications.

    For information about how you can use external applications with Amazon Connect, see the following topics in the Amazon Connect Administrator Guide:

    " + "documentation":"

    The Amazon AppIntegrations service enables you to configure and reuse connections to external applications.

    For information about how you can use external applications with Connect Customer, see the following topics in the Connect Customer Administrator Guide:

    " } diff --git a/awscli/botocore/data/auditmanager/2017-07-25/service-2.json b/awscli/botocore/data/auditmanager/2017-07-25/service-2.json index 73bd76afe89e..ac67d21bb562 100644 --- a/awscli/botocore/data/auditmanager/2017-07-25/service-2.json +++ b/awscli/botocore/data/auditmanager/2017-07-25/service-2.json @@ -1284,11 +1284,11 @@ }, "evidenceByTypeComplianceCheckCount":{ "shape":"Integer", - "documentation":"

    The number of evidence that falls under the compliance check category. This evidence is collected from Config or Security Hub.

    " + "documentation":"

    The number of evidence that falls under the compliance check category. This evidence is collected from Config or Security Hub CSPM.

    " }, "evidenceByTypeComplianceCheckIssuesCount":{ "shape":"Integer", - "documentation":"

    The total number of issues that were reported directly from Security Hub, Config, or both.

    " + "documentation":"

    The total number of issues that were reported directly from Security Hub CSPM, Config, or both.

    " }, "evidenceByTypeUserActivityCount":{ "shape":"Integer", @@ -3031,7 +3031,7 @@ }, "complianceCheck":{ "shape":"String", - "documentation":"

    The evaluation status for automated evidence that falls under the compliance check category.

    • Audit Manager classes evidence as non-compliant if Security Hub reports a Fail result, or if Config reports a Non-compliant result.

    • Audit Manager classes evidence as compliant if Security Hub reports a Pass result, or if Config reports a Compliant result.

    • If a compliance check isn't available or applicable, then no compliance evaluation can be made for that evidence. This is the case if the evidence uses Config or Security Hub as the underlying data source type, but those services aren't enabled. This is also the case if the evidence uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail).

    " + "documentation":"

    The evaluation status for automated evidence that falls under the compliance check category.

    • Audit Manager classes evidence as non-compliant if Security Hub CSPM reports a Fail result, or if Config reports a Non-compliant result.

    • Audit Manager classes evidence as compliant if Security Hub CSPM reports a Pass result, or if Config reports a Compliant result.

    • If a compliance check isn't available or applicable, then no compliance evaluation can be made for that evidence. This is the case if the evidence uses Config or Security Hub CSPM as the underlying data source type, but those services aren't enabled. This is also the case if the evidence uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail).

    " }, "awsOrganization":{ "shape":"String", @@ -3121,15 +3121,15 @@ "members":{ "noncompliantEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of compliance check evidence that Audit Manager classified as non-compliant. This includes evidence that was collected from Security Hub with a Fail ruling, or collected from Config with a Non-compliant ruling.

    " + "documentation":"

    The number of compliance check evidence that Audit Manager classified as non-compliant. This includes evidence that was collected from Security Hub CSPM with a Fail ruling, or collected from Config with a Non-compliant ruling.

    " }, "compliantEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of compliance check evidence that Audit Manager classified as compliant. This includes evidence that was collected from Security Hub with a Pass ruling, or collected from Config with a Compliant ruling.

    " + "documentation":"

    The number of compliance check evidence that Audit Manager classified as compliant. This includes evidence that was collected from Security Hub CSPM with a Pass ruling, or collected from Config with a Compliant ruling.

    " }, "inconclusiveEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of evidence that a compliance check ruling isn't available for. Evidence is inconclusive when the associated control uses Security Hub or Config as a data source but you didn't enable those services. This is also the case when a control uses a data source that doesn’t support compliance checks (for example, manual evidence, API calls, or CloudTrail).

    If evidence has a compliance check status of not applicable in the console, it's classified as inconclusive in EvidenceInsights data.

    " + "documentation":"

    The number of evidence that a compliance check ruling isn't available for. Evidence is inconclusive when the associated control uses Security Hub CSPM or Config as a data source but you didn't enable those services. This is also the case when a control uses a data source that doesn’t support compliance checks (for example, manual evidence, API calls, or CloudTrail).

    If evidence has a compliance check status of not applicable in the console, it's classified as inconclusive in EvidenceInsights data.

    " } }, "documentation":"

    A breakdown of the latest compliance check status for the evidence in your Audit Manager assessments.

    " @@ -3804,15 +3804,15 @@ }, "noncompliantEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of compliance check evidence that Audit Manager classified as non-compliant on the lastUpdated date. This includes evidence that was collected from Security Hub with a Fail ruling, or collected from Config with a Non-compliant ruling.

    " + "documentation":"

    The number of compliance check evidence that Audit Manager classified as non-compliant on the lastUpdated date. This includes evidence that was collected from Security Hub CSPM with a Fail ruling, or collected from Config with a Non-compliant ruling.

    " }, "compliantEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of compliance check evidence that Audit Manager classified as compliant on the lastUpdated date. This includes evidence that was collected from Security Hub with a Pass ruling, or collected from Config with a Compliant ruling.

    " + "documentation":"

    The number of compliance check evidence that Audit Manager classified as compliant on the lastUpdated date. This includes evidence that was collected from Security Hub CSPM with a Pass ruling, or collected from Config with a Compliant ruling.

    " }, "inconclusiveEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of evidence without a compliance check ruling. Evidence is inconclusive when the associated control uses Security Hub or Config as a data source but you didn't enable those services. This is also the case when a control uses a data source that doesn’t support compliance checks (for example: manual evidence, API calls, or CloudTrail).

    If evidence has a compliance check status of not applicable, it's classed as inconclusive in Insights data.

    " + "documentation":"

    The number of evidence without a compliance check ruling. Evidence is inconclusive when the associated control uses Security Hub CSPM or Config as a data source but you didn't enable those services. This is also the case when a control uses a data source that doesn’t support compliance checks (for example: manual evidence, API calls, or CloudTrail).

    If evidence has a compliance check status of not applicable, it's classed as inconclusive in Insights data.

    " }, "assessmentControlsCountByNoncompliantEvidence":{ "shape":"NullableInteger", @@ -3834,15 +3834,15 @@ "members":{ "noncompliantEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of compliance check evidence that Audit Manager classified as non-compliant. This includes evidence that was collected from Security Hub with a Fail ruling, or collected from Config with a Non-compliant ruling.

    " + "documentation":"

    The number of compliance check evidence that Audit Manager classified as non-compliant. This includes evidence that was collected from Security Hub CSPM with a Fail ruling, or collected from Config with a Non-compliant ruling.

    " }, "compliantEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The number of compliance check evidence that Audit Manager classified as compliant. This includes evidence that was collected from Security Hub with a Pass ruling, or collected from Config with a Compliant ruling.

    " + "documentation":"

    The number of compliance check evidence that Audit Manager classified as compliant. This includes evidence that was collected from Security Hub CSPM with a Pass ruling, or collected from Config with a Compliant ruling.

    " }, "inconclusiveEvidenceCount":{ "shape":"NullableInteger", - "documentation":"

    The amount of evidence without a compliance check ruling. Evidence is inconclusive if the associated control uses Security Hub or Config as a data source and you didn't enable those services. This is also the case if a control uses a data source that doesn’t support compliance checks (for example, manual evidence, API calls, or CloudTrail).

    If evidence has a compliance check status of not applicable, it's classified as inconclusive in InsightsByAssessment data.

    " + "documentation":"

    The amount of evidence without a compliance check ruling. Evidence is inconclusive if the associated control uses Security Hub CSPM or Config as a data source and you didn't enable those services. This is also the case if a control uses a data source that doesn’t support compliance checks (for example, manual evidence, API calls, or CloudTrail).

    If evidence has a compliance check status of not applicable, it's classified as inconclusive in InsightsByAssessment data.

    " }, "assessmentControlsCountByNoncompliantEvidence":{ "shape":"NullableInteger", @@ -4498,7 +4498,7 @@ }, "complianceCheck":{ "shape":"String", - "documentation":"

    The evaluation status for a resource that was assessed when collecting compliance check evidence.

    • Audit Manager classes the resource as non-compliant if Security Hub reports a Fail result, or if Config reports a Non-compliant result.

    • Audit Manager classes the resource as compliant if Security Hub reports a Pass result, or if Config reports a Compliant result.

    • If a compliance check isn't available or applicable, then no compliance evaluation can be made for that resource. This is the case if a resource assessment uses Config or Security Hub as the underlying data source type, but those services aren't enabled. This is also the case if the resource assessment uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail).

    " + "documentation":"

    The evaluation status for a resource that was assessed when collecting compliance check evidence.

    • Audit Manager classes the resource as non-compliant if Security Hub CSPM reports a Fail result, or if Config reports a Non-compliant result.

    • Audit Manager classes the resource as compliant if Security Hub CSPM reports a Pass result, or if Config reports a Compliant result.

    • If a compliance check isn't available or applicable, then no compliance evaluation can be made for that resource. This is the case if a resource assessment uses Config or Security Hub CSPM as the underlying data source type, but those services aren't enabled. This is also the case if the resource assessment uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail).

    " } }, "documentation":"

    A system asset that's evaluated in an Audit Manager assessment.

    " @@ -4733,14 +4733,14 @@ "members":{ "keywordInputType":{ "shape":"KeywordInputType", - "documentation":"

    The input method for the keyword.

    • SELECT_FROM_LIST is used when mapping a data source for automated evidence.

      • When keywordInputType is SELECT_FROM_LIST, a keyword must be selected to collect automated evidence. For example, this keyword can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.

    • UPLOAD_FILE and INPUT_TEXT are only used when mapping a data source for manual evidence.

      • When keywordInputType is UPLOAD_FILE, a file must be uploaded as manual evidence.

      • When keywordInputType is INPUT_TEXT, text must be entered as manual evidence.

    " + "documentation":"

    The input method for the keyword.

    • SELECT_FROM_LIST is used when mapping a data source for automated evidence.

      • When keywordInputType is SELECT_FROM_LIST, a keyword must be selected to collect automated evidence. For example, this keyword can be a CloudTrail event name, a rule name for Config, a Security Hub CSPM control, or the name of an Amazon Web Services API call.

    • UPLOAD_FILE and INPUT_TEXT are only used when mapping a data source for manual evidence.

      • When keywordInputType is UPLOAD_FILE, a file must be uploaded as manual evidence.

      • When keywordInputType is INPUT_TEXT, text must be entered as manual evidence.

    " }, "keywordValue":{ "shape":"KeywordValue", - "documentation":"

    The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.

    If you’re mapping a data source to a rule in Config, the keywordValue that you specify depends on the type of rule:

    • For managed rules, you can use the rule identifier as the keywordValue. You can find the rule identifier from the list of Config managed rules. For some rules, the rule identifier is different from the rule name. For example, the rule name restricted-ssh has the following rule identifier: INCOMING_SSH_DISABLED. Make sure to use the rule identifier, not the rule name.

      Keyword example for managed rules:

    • For custom rules, you form the keywordValue by adding the Custom_ prefix to the rule name. This prefix distinguishes the custom rule from a managed rule.

      Keyword example for custom rules:

      • Custom rule name: my-custom-config-rule

        keywordValue: Custom_my-custom-config-rule

    • For service-linked rules, you form the keywordValue by adding the Custom_ prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name.

      Keyword examples for service-linked rules:

      • Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w

        keywordValue: Custom_CustomRuleForAccount-conformance-pack

      • Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba

        keywordValue: Custom_OrgConfigRule-s3-bucket-versioning-enabled

    The keywordValue is case sensitive. If you enter a value incorrectly, Audit Manager might not recognize the data source mapping. As a result, you might not successfully collect evidence from that data source as intended.

    Keep in mind the following requirements, depending on the data source type that you're using.

    1. For Config:

      • For managed rules, make sure that the keywordValue is the rule identifier in ALL_CAPS_WITH_UNDERSCORES. For example, CLOUDWATCH_LOG_GROUP_ENCRYPTED. For accuracy, we recommend that you reference the list of supported Config managed rules.

      • For custom rules, make sure that the keywordValue has the Custom_ prefix followed by the custom rule name. The format of the custom rule name itself may vary. For accuracy, we recommend that you visit the Config console to verify your custom rule name.

    2. For Security Hub: The format varies for Security Hub control names. For accuracy, we recommend that you reference the list of supported Security Hub controls.

    3. For Amazon Web Services API calls: Make sure that the keywordValue is written as serviceprefix_ActionName. For example, iam_ListGroups. For accuracy, we recommend that you reference the list of supported API calls.

    4. For CloudTrail: Make sure that the keywordValue is written as serviceprefix_ActionName. For example, cloudtrail_StartLogging. For accuracy, we recommend that you review the Amazon Web Services service prefix and action names in the Service Authorization Reference.

    " + "documentation":"

    The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub CSPM control, or the name of an Amazon Web Services API call.

    If you’re mapping a data source to a rule in Config, the keywordValue that you specify depends on the type of rule:

    • For managed rules, you can use the rule identifier as the keywordValue. You can find the rule identifier from the list of Config managed rules. For some rules, the rule identifier is different from the rule name. For example, the rule name restricted-ssh has the following rule identifier: INCOMING_SSH_DISABLED. Make sure to use the rule identifier, not the rule name.

      Keyword example for managed rules:

    • For custom rules, you form the keywordValue by adding the Custom_ prefix to the rule name. This prefix distinguishes the custom rule from a managed rule.

      Keyword example for custom rules:

      • Custom rule name: my-custom-config-rule

        keywordValue: Custom_my-custom-config-rule

    • For service-linked rules, you form the keywordValue by adding the Custom_ prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name.

      Keyword examples for service-linked rules:

      • Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w

        keywordValue: Custom_CustomRuleForAccount-conformance-pack

      • Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba

        keywordValue: Custom_OrgConfigRule-s3-bucket-versioning-enabled

    The keywordValue is case sensitive. If you enter a value incorrectly, Audit Manager might not recognize the data source mapping. As a result, you might not successfully collect evidence from that data source as intended.

    Keep in mind the following requirements, depending on the data source type that you're using.

    1. For Config:

      • For managed rules, make sure that the keywordValue is the rule identifier in ALL_CAPS_WITH_UNDERSCORES. For example, CLOUDWATCH_LOG_GROUP_ENCRYPTED. For accuracy, we recommend that you reference the list of supported Config managed rules.

      • For custom rules, make sure that the keywordValue has the Custom_ prefix followed by the custom rule name. The format of the custom rule name itself may vary. For accuracy, we recommend that you visit the Config console to verify your custom rule name.

    2. For Security Hub CSPM: The format varies for Security Hub CSPM control names. For accuracy, we recommend that you reference the list of supported Security Hub CSPM controls.

    3. For Amazon Web Services API calls: Make sure that the keywordValue is written as serviceprefix_ActionName. For example, iam_ListGroups. For accuracy, we recommend that you reference the list of supported API calls.

    4. For CloudTrail: Make sure that the keywordValue is written as serviceprefix_ActionName. For example, cloudtrail_StartLogging. For accuracy, we recommend that you review the Amazon Web Services service prefix and action names in the Service Authorization Reference.

    " } }, - "documentation":"

    A keyword that relates to the control data source.

    For manual evidence, this keyword indicates if the manual evidence is a file or text.

    For automated evidence, this keyword identifies a specific CloudTrail event, Config rule, Security Hub control, or Amazon Web Services API name.

    To learn more about the supported keywords that you can use when mapping a control data source, see the following pages in the Audit Manager User Guide:

    " + "documentation":"

    A keyword that relates to the control data source.

    For manual evidence, this keyword indicates if the manual evidence is a file or text.

    For automated evidence, this keyword identifies a specific CloudTrail event, Config rule, Security Hub CSPM control, or Amazon Web Services API name.

    To learn more about the supported keywords that you can use when mapping a control data source, see the following pages in the Audit Manager User Guide:

    " }, "SourceName":{ "type":"string", diff --git a/awscli/botocore/data/chime-sdk-voice/2022-08-03/service-2.json b/awscli/botocore/data/chime-sdk-voice/2022-08-03/service-2.json index e80b4e1257ad..56b19e62ccbe 100644 --- a/awscli/botocore/data/chime-sdk-voice/2022-08-03/service-2.json +++ b/awscli/botocore/data/chime-sdk-voice/2022-08-03/service-2.json @@ -2539,7 +2539,7 @@ }, "IntegrationType":{ "shape":"VoiceConnectorIntegrationType", - "documentation":"

    The connectors for use with Amazon Connect.

    The following options are available:

    • CONNECT_CALL_TRANSFER_CONNECTOR - Enables enterprises to integrate Amazon Connect with other voice systems to directly transfer voice calls and metadata without using the public telephone network. They can use Amazon Connect telephony and Interactive Voice Response (IVR) with their existing voice systems to modernize the IVR experience of their existing contact center and their enterprise and branch voice systems. Additionally, enterprises migrating their contact center to Amazon Connect can start with Connect telephony and IVR for immediate modernization ahead of agent migration.

    • CONNECT_ANALYTICS_CONNECTOR - Enables enterprises to integrate Amazon Connect with other voice systems for real-time and post-call analytics. They can use Amazon Connect Contact Lens with their existing voice systems to provides call recordings, conversational analytics (including contact transcript, sensitive data redaction, content categorization, theme detection, sentiment analysis, real-time alerts, and post-contact summary), and agent performance evaluations (including evaluation forms, automated evaluation, supervisor review) with a rich user experience to display, search and filter customer interactions, and programmatic access to data streams and the data lake. Additionally, enterprises migrating their contact center to Amazon Connect can start with Contact Lens analytics and performance insights ahead of agent migration.

    " + "documentation":"

    The connectors for use with Connect Customer.

    The following options are available:

    • CONNECT_CALL_TRANSFER_CONNECTOR - Enables enterprises to integrate Connect Customer with other voice systems to directly transfer voice calls and metadata without using the public telephone network. They can use Connect Customer telephony and Interactive Voice Response (IVR) with their existing voice systems to modernize the IVR experience of their existing contact center and their enterprise and branch voice systems. Additionally, enterprises migrating their contact center to Connect Customer can start with Connect telephony and IVR for immediate modernization ahead of agent migration.

    • CONNECT_ANALYTICS_CONNECTOR - Enables enterprises to integrate Connect Customer with other voice systems for real-time and post-call analytics. They can use Connect Customer Contact Lens with their existing voice systems to provides call recordings, conversational analytics (including contact transcript, sensitive data redaction, content categorization, theme detection, sentiment analysis, real-time alerts, and post-contact summary), and agent performance evaluations (including evaluation forms, automated evaluation, supervisor review) with a rich user experience to display, search and filter customer interactions, and programmatic access to data streams and the data lake. Additionally, enterprises migrating their contact center to Connect Customer can start with Contact Lens analytics and performance insights ahead of agent migration.

    " }, "NetworkType":{ "shape":"NetworkType", @@ -5956,7 +5956,7 @@ }, "IntegrationType":{ "shape":"VoiceConnectorIntegrationType", - "documentation":"

    The connectors for use with Amazon Connect.

    " + "documentation":"

    The connectors for use with Connect Customer.

    " }, "NetworkType":{ "shape":"NetworkType", diff --git a/awscli/botocore/data/cloudformation/2010-05-15/service-2.json b/awscli/botocore/data/cloudformation/2010-05-15/service-2.json index e989f0db7c02..4933ab86fc1b 100644 --- a/awscli/botocore/data/cloudformation/2010-05-15/service-2.json +++ b/awscli/botocore/data/cloudformation/2010-05-15/service-2.json @@ -6997,7 +6997,7 @@ }, "UniqueId":{ "shape":"ResourceSignalUniqueId", - "documentation":"

    A unique ID of the signal. When you signal Amazon EC2 instances or Amazon EC2 Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.

    " + "documentation":"

    A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.

    " }, "Status":{ "shape":"ResourceSignalStatus", @@ -9590,5 +9590,5 @@ "documentation":"

    Contains any warnings returned by the GetTemplateSummary API action.

    " } }, - "documentation":"CloudFormation

    CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments predictably and repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, ELB, and Amazon EC2 Auto Scaling to build highly reliable, highly scalable, cost-effective applications without creating or configuring the underlying Amazon Web Services infrastructure.

    With CloudFormation, you declare all your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you.

    For more information about CloudFormation, see the CloudFormation product page.

    CloudFormation makes use of other Amazon Web Services products. If you need additional technical information about a specific Amazon Web Services product, you can find the product's technical documentation at docs.aws.amazon.com.

    " + "documentation":"CloudFormation

    CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments predictably and repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Amazon EC2 Auto Scaling to build highly reliable, highly scalable, cost-effective applications without creating or configuring the underlying Amazon Web Services infrastructure.

    With CloudFormation, you declare all your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you.

    For more information about CloudFormation, see the CloudFormation product page.

    CloudFormation makes use of other Amazon Web Services products. If you need additional technical information about a specific Amazon Web Services product, you can find the product's technical documentation at docs.aws.amazon.com.

    " } diff --git a/awscli/botocore/data/config/2014-11-12/service-2.json b/awscli/botocore/data/config/2014-11-12/service-2.json index 8199b6e04179..c90ffaefcd96 100644 --- a/awscli/botocore/data/config/2014-11-12/service-2.json +++ b/awscli/botocore/data/config/2014-11-12/service-2.json @@ -2263,6 +2263,10 @@ "EvaluationModes":{ "shape":"EvaluationModes", "documentation":"

    The modes the Config rule can be evaluated in. The valid values are distinct objects. By default, the value is Detective evaluation mode only.

    " + }, + "RuleEvaluationVisibility":{ + "shape":"RuleEvaluationVisibility", + "documentation":"

    Indicates whether you can get Evaluations for the Config rule. You can get Evaluations for the Amazon Web Services Config rule if this value is EXTERNAL. You cannot get Evaluations for the Amazon Web Services Config rule if this value is INTERNAL.

    " } }, "documentation":"

    Config rules evaluate the configuration settings of your Amazon Web Services resources. A rule can run when Config detects a configuration change to an Amazon Web Services resource or at a periodic frequency that you choose (for example, every 24 hours). There are two types of rules: Config Managed Rules and Config Custom Rules.

    Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules.

    Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom rules created with Guard are called Config Custom Policy Rules.

    For more information about developing and using Config rules, see Evaluating Resource with Config Rules in the Config Developer Guide.

    You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you want to create a rule that triggers evaluations for your resources when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

    " @@ -3699,6 +3703,10 @@ "EvaluationMode":{ "shape":"EvaluationMode", "documentation":"

    The mode of an evaluation. The valid values are Detective or Proactive.

    " + }, + "RuleEvaluationVisibility":{ + "shape":"RuleEvaluationVisibility", + "documentation":"

    Filters the results by RuleEvaluationVisibility.

    " } }, "documentation":"

    Returns a filtered list of Detective or Proactive Config rules. By default, if the filter is not defined, this API returns an unfiltered list. For more information on Detective or Proactive Config rules, see Evaluation Mode in the Config Developer Guide.

    " @@ -8209,6 +8217,13 @@ "max":2557, "min":30 }, + "RuleEvaluationVisibility":{ + "type":"string", + "enum":[ + "EXTERNAL", + "INTERNAL" + ] + }, "RuleLimit":{ "type":"integer", "max":50, @@ -8246,6 +8261,10 @@ "ComplianceResourceId":{ "shape":"BaseResourceId", "documentation":"

    The ID of the only Amazon Web Services resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for ComplianceResourceTypes.

    " + }, + "ServicePrincipals":{ + "shape":"ServicePrincipals", + "documentation":"

    The service principals of the Amazon Web Services services for the rule.

    The field is populated only if the service-linked rule is created by a service. The field is empty if you create your own rule.

    " } }, "documentation":"

    Defines which resources trigger an evaluation for an Config rule. The scope can include one or more resource types, a combination of a tag key and value, or a combination of one resource type and one resource ID. Specify a scope to constrain which resources trigger an evaluation for a rule. Otherwise, evaluations for the rule are triggered when any resource in your recording group changes in configuration.

    " @@ -8344,6 +8363,12 @@ "type":"list", "member":{"shape":"ServicePrincipalValue"} }, + "ServicePrincipals":{ + "type":"list", + "member":{"shape":"StringWithCharLimit128"}, + "max":100, + "min":0 + }, "SortBy":{ "type":"string", "enum":["SCORE"] diff --git a/awscli/botocore/data/connectparticipant/2018-09-07/service-2.json b/awscli/botocore/data/connectparticipant/2018-09-07/service-2.json index 27866e850787..264754ad5255 100644 --- a/awscli/botocore/data/connectparticipant/2018-09-07/service-2.json +++ b/awscli/botocore/data/connectparticipant/2018-09-07/service-2.json @@ -47,7 +47,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ConflictException"} ], - "documentation":"

    Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API. A conflict exception is thrown when an attachment with that identifier is already being uploaded.

    For security recommendations, see Amazon Connect Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API. A conflict exception is thrown when an attachment with that identifier is already being uploaded.

    For security recommendations, see Connect Customer Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "CreateParticipantConnection":{ "name":"CreateParticipantConnection", @@ -63,7 +63,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Creates the participant's connection.

    For security recommendations, see Amazon Connect Chat security best practices.

    For WebRTC security recommendations, see Amazon Connect WebRTC security best practices.

    ParticipantToken is used for invoking this API instead of ConnectionToken.

    The participant token is valid for the lifetime of the participant – until they are part of a contact. For WebRTC participants, if they leave or are disconnected for 60 seconds, a new participant needs to be created using the CreateParticipant API.

    For WEBSOCKET Type:

    The response URL for has a connect expiry timeout of 100s. Clients must manually connect to the returned websocket URL and subscribe to the desired topic.

    For chat, you need to publish the following on the established websocket connection:

    {\"topic\":\"aws/subscribe\",\"content\":{\"topics\":[\"aws/chat\"]}}

    Upon websocket URL expiry, as specified in the response ConnectionExpiry parameter, clients need to call this API again to obtain a new websocket URL and perform the same steps as before.

    The expiry time for the connection token is different than the ChatDurationInMinutes. Expiry time for the connection token is 1 day.

    For WEBRTC_CONNECTION Type:

    The response includes connection data required for the client application to join the call using the Amazon Chime SDK client libraries. The WebRTCConnection response contains Meeting and Attendee information needed to establish the media connection.

    The attendee join token in WebRTCConnection response is valid for the lifetime of the participant in the call. If a participant leaves or is disconnected for 60 seconds, their participant credentials will no longer be valid, and a new participant will need to be created to rejoin the call.

    Message streaming support: This API can also be used together with the StartContactStreaming API to create a participant connection for chat contacts that are not using a websocket. For more information about message streaming, Enable real-time chat message streaming in the Amazon Connect Administrator Guide.

    Multi-user web, in-app, video calling support:

    For WebRTC calls, this API is used in conjunction with the CreateParticipant API to enable multi-party calling. The StartWebRTCContact API creates the initial contact and routes it to an agent, while CreateParticipant adds additional participants to the ongoing call. For more information about multi-party WebRTC calls, see Enable multi-user web, in-app, and video calling in the Amazon Connect Administrator Guide.

    Feature specifications: For information about feature specifications, such as the allowed number of open websocket connections per participant or maximum number of WebRTC participants, see Feature specifications in the Amazon Connect Administrator Guide.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Creates the participant's connection.

    For security recommendations, see Connect Customer Chat security best practices.

    For WebRTC security recommendations, see Connect Customer WebRTC security best practices.

    ParticipantToken is used for invoking this API instead of ConnectionToken.

    The participant token is valid for the lifetime of the participant – until they are part of a contact. For WebRTC participants, if they leave or are disconnected for 60 seconds, a new participant needs to be created using the CreateParticipant API.

    For WEBSOCKET Type:

    The response URL for has a connect expiry timeout of 100s. Clients must manually connect to the returned websocket URL and subscribe to the desired topic.

    For chat, you need to publish the following on the established websocket connection:

    {\"topic\":\"aws/subscribe\",\"content\":{\"topics\":[\"aws/chat\"]}}

    Upon websocket URL expiry, as specified in the response ConnectionExpiry parameter, clients need to call this API again to obtain a new websocket URL and perform the same steps as before.

    The expiry time for the connection token is different than the ChatDurationInMinutes. Expiry time for the connection token is 1 day.

    For WEBRTC_CONNECTION Type:

    The response includes connection data required for the client application to join the call using the Amazon Chime SDK client libraries. The WebRTCConnection response contains Meeting and Attendee information needed to establish the media connection.

    The attendee join token in WebRTCConnection response is valid for the lifetime of the participant in the call. If a participant leaves or is disconnected for 60 seconds, their participant credentials will no longer be valid, and a new participant will need to be created to rejoin the call.

    Message streaming support: This API can also be used together with the StartContactStreaming API to create a participant connection for chat contacts that are not using a websocket. For more information about message streaming, Enable real-time chat message streaming in the Amazon Connect Administrator Guide.

    Multi-user web, in-app, video calling support:

    For WebRTC calls, this API is used in conjunction with the CreateParticipant API to enable multi-party calling. The StartWebRTCContact API creates the initial contact and routes it to an agent, while CreateParticipant adds additional participants to the ongoing call. For more information about multi-party WebRTC calls, see Enable multi-user web, in-app, and video calling in the Amazon Connect Administrator Guide.

    Feature specifications: For information about feature specifications, such as the allowed number of open websocket connections per participant or maximum number of WebRTC participants, see Feature specifications in the Amazon Connect Administrator Guide.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "DescribeView":{ "name":"DescribeView", @@ -80,7 +80,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

    Retrieves the view for the specified view token.

    For security recommendations, see Amazon Connect Chat security best practices.

    " + "documentation":"

    Retrieves the view for the specified view token.

    For security recommendations, see Connect Customer Chat security best practices.

    " }, "DisconnectParticipant":{ "name":"DisconnectParticipant", @@ -96,7 +96,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Disconnects a participant.

    For security recommendations, see Amazon Connect Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Disconnects a participant.

    For security recommendations, see Connect Customer Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "GetAttachment":{ "name":"GetAttachment", @@ -112,7 +112,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Provides a pre-signed URL for download of a completed attachment. This is an asynchronous API for use with active contacts.

    For security recommendations, see Amazon Connect Chat security best practices.

    • The participant role CUSTOM_BOT is not permitted to access attachments customers may upload. An AccessDeniedException can indicate that the participant may be a CUSTOM_BOT, and it doesn't have access to attachments.

    • ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Provides a pre-signed URL for download of a completed attachment. This is an asynchronous API for use with active contacts.

    For security recommendations, see Connect Customer Chat security best practices.

    • The participant role CUSTOM_BOT is not permitted to access attachments customers may upload. An AccessDeniedException can indicate that the participant may be a CUSTOM_BOT, and it doesn't have access to attachments.

    • ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "GetAuthenticationUrl":{ "name":"GetAuthenticationUrl", @@ -128,7 +128,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Retrieves the AuthenticationUrl for the current authentication session for the AuthenticateCustomer flow block.

    For security recommendations, see Amazon Connect Chat security best practices.

    • This API can only be called within one minute of receiving the authenticationInitiated event.

    • The current supported channel is chat. This API is not supported for Apple Messages for Business, WhatsApp, or SMS chats.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Retrieves the AuthenticationUrl for the current authentication session for the AuthenticateCustomer flow block.

    For security recommendations, see Connect Customer Chat security best practices.

    • This API can only be called within one minute of receiving the authenticationInitiated event.

    • The current supported channel is chat. This API is not supported for Apple Messages for Business, WhatsApp, or SMS chats.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "GetTranscript":{ "name":"GetTranscript", @@ -144,7 +144,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Retrieves a transcript of the session, including details about any attachments. For information about accessing past chat contact transcripts for a persistent chat, see Enable persistent chat.

    For security recommendations, see Amazon Connect Chat security best practices.

    If you have a process that consumes events in the transcript of an chat that has ended, note that chat transcripts contain the following event content types if the event has occurred during the chat session:

    • application/vnd.amazonaws.connect.event.participant.invited

    • application/vnd.amazonaws.connect.event.participant.joined

    • application/vnd.amazonaws.connect.event.participant.left

    • application/vnd.amazonaws.connect.event.chat.ended

    • application/vnd.amazonaws.connect.event.transfer.succeeded

    • application/vnd.amazonaws.connect.event.transfer.failed

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Retrieves a transcript of the session, including details about any attachments. For information about accessing past chat contact transcripts for a persistent chat, see Enable persistent chat.

    For security recommendations, see Connect Customer Chat security best practices.

    If you have a process that consumes events in the transcript of an chat that has ended, note that chat transcripts contain the following event content types if the event has occurred during the chat session:

    • application/vnd.amazonaws.connect.event.participant.invited

    • application/vnd.amazonaws.connect.event.participant.joined

    • application/vnd.amazonaws.connect.event.participant.left

    • application/vnd.amazonaws.connect.event.chat.ended

    • application/vnd.amazonaws.connect.event.transfer.succeeded

    • application/vnd.amazonaws.connect.event.transfer.failed

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "SendEvent":{ "name":"SendEvent", @@ -161,7 +161,7 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"} ], - "documentation":"

    The application/vnd.amazonaws.connect.event.connection.acknowledged ContentType is no longer maintained since December 31, 2024. This event has been migrated to the CreateParticipantConnection API using the ConnectParticipant field.

    Sends an event. Message receipts are not supported when there are more than two active participants in the chat. Using the SendEvent API for message receipts when a supervisor is barged-in will result in a conflict exception.

    For security recommendations, see Amazon Connect Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    The application/vnd.amazonaws.connect.event.connection.acknowledged ContentType is no longer maintained since December 31, 2024. This event has been migrated to the CreateParticipantConnection API using the ConnectParticipant field.

    Sends an event. Message receipts are not supported when there are more than two active participants in the chat. Using the SendEvent API for message receipts when a supervisor is barged-in will result in a conflict exception.

    For security recommendations, see Connect Customer Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "SendMessage":{ "name":"SendMessage", @@ -177,7 +177,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Sends a message.

    For security recommendations, see Amazon Connect Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Sends a message.

    For security recommendations, see Connect Customer Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "StartAttachmentUpload":{ "name":"StartAttachmentUpload", @@ -194,7 +194,7 @@ {"shape":"ValidationException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Provides a pre-signed Amazon S3 URL in response for uploading the file directly to S3.

    For security recommendations, see Amazon Connect Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Provides a pre-signed Amazon S3 URL in response for uploading the file directly to S3.

    For security recommendations, see Connect Customer Chat security best practices.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " } }, "shapes":{ @@ -877,7 +877,7 @@ }, "ResourceType":{ "shape":"ResourceType", - "documentation":"

    The type of Amazon Connect resource.

    " + "documentation":"

    The type of Connect Customer resource.

    " } }, "documentation":"

    The resource was not found.

    ", @@ -1296,5 +1296,5 @@ "documentation":"

    The websocket for the participant's connection.

    " } }, - "documentation":"

    Amazon Connect is an easy-to-use omnichannel cloud contact center service that enables companies of any size to deliver superior customer service at a lower cost. Amazon Connect communications capabilities make it easy for companies to deliver personalized interactions across communication channels, including chat.

    Use the Amazon Connect Participant Service to manage participants (for example, agents, customers, and managers listening in), and to send messages and events within a chat contact. The APIs in the service enable the following: sending chat messages, attachment sharing, managing a participant's connection state and message events, and retrieving chat transcripts.

    " + "documentation":"

    Connect Customer is an easy-to-use omnichannel cloud contact center service that enables companies of any size to deliver superior customer service at a lower cost. Connect Customer communications capabilities make it easy for companies to deliver personalized interactions across communication channels, including chat.

    Use the Connect Customer Participant Service to manage participants (for example, agents, customers, and managers listening in), and to send messages and events within a chat contact. The APIs in the service enable the following: sending chat messages, attachment sharing, managing a participant's connection state and message events, and retrieving chat transcripts.

    " } diff --git a/awscli/botocore/data/efs/2015-02-01/service-2.json b/awscli/botocore/data/efs/2015-02-01/service-2.json index 554e5f11ff8a..34ec3d99dea1 100644 --- a/awscli/botocore/data/efs/2015-02-01/service-2.json +++ b/awscli/botocore/data/efs/2015-02-01/service-2.json @@ -789,7 +789,7 @@ }, "ProvisionedThroughputInMibps":{ "shape":"ProvisionedThroughputInMibps", - "documentation":"

    The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ThroughputMode is set to provisioned. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact Amazon Web ServicesSupport. For more information, see Amazon EFS quotas that you can increase in the Amazon EFS User Guide.

    " + "documentation":"

    The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ThroughputMode is set to provisioned. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact Amazon Web Services Support. For more information, see Amazon EFS quotas that you can increase in the Amazon EFS User Guide.

    " }, "AvailabilityZoneName":{ "shape":"AvailabilityZoneName", @@ -2505,7 +2505,7 @@ }, "ProvisionedThroughputInMibps":{ "shape":"ProvisionedThroughputInMibps", - "documentation":"

    (Optional) The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ThroughputMode is set to provisioned. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact Amazon Web ServicesSupport. For more information, see Amazon EFS quotas that you can increase in the Amazon EFS User Guide.

    " + "documentation":"

    (Optional) The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ThroughputMode is set to provisioned. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact Amazon Web Services Support. For more information, see Amazon EFS quotas that you can increase in the Amazon EFS User Guide.

    " } } }, diff --git a/awscli/botocore/data/emr/2009-03-31/paginators-1.json b/awscli/botocore/data/emr/2009-03-31/paginators-1.json index 447759f158c5..c908b4a3c320 100644 --- a/awscli/botocore/data/emr/2009-03-31/paginators-1.json +++ b/awscli/botocore/data/emr/2009-03-31/paginators-1.json @@ -49,6 +49,11 @@ "input_token": "Marker", "output_token": "Marker", "result_key": "Studios" + }, + "ListSessions": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Sessions" } } } diff --git a/awscli/botocore/data/emr/2009-03-31/service-2.json b/awscli/botocore/data/emr/2009-03-31/service-2.json index fa3535b64907..4618dfc4320b 100644 --- a/awscli/botocore/data/emr/2009-03-31/service-2.json +++ b/awscli/botocore/data/emr/2009-03-31/service-2.json @@ -366,6 +366,34 @@ ], "documentation":"

    The presigned URL properties for the cluster's application user interface.

    " }, + "GetSession":{ + "name":"GetSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSessionInput"}, + "output":{"shape":"GetSessionOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

    Returns detailed information about a session.

    " + }, + "GetSessionEndpoint":{ + "name":"GetSessionEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSessionEndpointInput"}, + "output":{"shape":"GetSessionEndpointOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

    Returns the Spark Connect endpoint URL and a time-limited authentication token for the specified session. Use the endpoint and token to connect a PySpark client to the session. Call this operation again when the token expires to obtain a new one.

    " + }, "GetStudioSessionMapping":{ "name":"GetStudioSessionMapping", "http":{ @@ -492,6 +520,20 @@ ], "documentation":"

    Lists all the security configurations visible to this account, providing their creation dates and times, and their names. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListSecurityConfigurations calls.

    " }, + "ListSessions":{ + "name":"ListSessions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSessionsInput"}, + "output":{"shape":"ListSessionsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

    Lists the sessions on a cluster. You can filter the results by session state. Newer sessions are returned first.

    " + }, "ListSteps":{ "name":"ListSteps", "http":{ @@ -750,6 +792,20 @@ ], "documentation":"

    Starts a notebook execution.

    " }, + "StartSession":{ + "name":"StartSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartSessionInput"}, + "output":{"shape":"StartSessionOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

    Creates and starts a new Spark Connect session on the specified cluster. The cluster must be in the RUNNING or WAITING state and have sessions enabled. This operation is supported in Amazon EMR Spark 8.0.0 and later.

    " + }, "StopNotebookExecution":{ "name":"StopNotebookExecution", "http":{ @@ -775,6 +831,20 @@ ], "documentation":"

    TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow is shut down, any step not yet completed is canceled and the Amazon EC2 instances on which the cluster is running are stopped. Any log files not already saved are uploaded to Amazon S3 if a LogUri was specified when the cluster was created.

    The maximum number of clusters allowed is 10. The call to TerminateJobFlows is asynchronous. Depending on the configuration of the cluster, it may take up to 1-5 minutes for the cluster to completely terminate and release allocated resources, such as Amazon EC2 instances.

    " }, + "TerminateSession":{ + "name":"TerminateSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateSessionInput"}, + "output":{"shape":"TerminateSessionOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

    Terminates an active session. After you call this operation, the session enters the TERMINATING state and then transitions to TERMINATED.

    " + }, "UpdateStudio":{ "name":"UpdateStudio", "http":{ @@ -928,6 +998,10 @@ "Tags":{ "shape":"TagList", "documentation":"

    A list of tags to associate with a resource. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.

    " + }, + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that scopes the tag operation. Required when the resource being tagged is a session-scoped resource.

    " } }, "documentation":"

    This input identifies an Amazon EMR resource and a list of tags to attach.

    " @@ -1208,6 +1282,25 @@ "FAILED" ] }, + "CertificateAuthority":{ + "type":"structure", + "members":{ + "CertificateArn":{ + "shape":"XmlString", + "documentation":"

    The Amazon Resource Name (ARN) of the certificate authority in Amazon Web Services Private CA that issued the Spark Connect server certificate.

    " + }, + "CertificateData":{ + "shape":"XmlString", + "documentation":"

    The PEM-encoded root CA certificate data. Provide this certificate to your client's trust store when connecting directly to the Spark Connect server over VPC peering.

    " + } + }, + "documentation":"

    Describes the certificate authority used to establish an mTLS connection to the Spark Connect server when connecting directly over VPC peering.

    " + }, + "ClientRequestToken":{ + "type":"string", + "max":36, + "min":1 + }, "CloudWatchAlarmDefinition":{ "type":"structure", "required":[ @@ -1429,11 +1522,18 @@ "MonitoringConfiguration":{ "shape":"MonitoringConfiguration", "documentation":"

    Contains Cloudwatch log configuration metadata and settings.

    " + }, + "SessionEnabled":{ + "shape":"BooleanObject", + "documentation":"

    Indicates whether Spark Connect sessions are enabled on the cluster.

    " } }, "documentation":"

    The detailed description of the cluster.

    " }, - "ClusterId":{"type":"string"}, + "ClusterId":{ + "type":"string", + "max":256 + }, "ClusterState":{ "type":"string", "enum":[ @@ -2490,6 +2590,76 @@ } } }, + "GetSessionEndpointInput":{ + "type":"structure", + "required":[ + "ClusterId", + "SessionId" + ], + "members":{ + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that the session belongs to.

    " + }, + "SessionId":{ + "shape":"SessionId", + "documentation":"

    The ID of the session.

    " + } + }, + "documentation":"

    Input to the GetSessionEndpoint operation.

    " + }, + "GetSessionEndpointOutput":{ + "type":"structure", + "required":["Endpoint"], + "members":{ + "Endpoint":{ + "shape":"XmlString", + "documentation":"

    The Spark Connect endpoint URL to use in the PySpark client.

    " + }, + "AuthToken":{ + "shape":"SensitiveString", + "documentation":"

    A time-limited authentication token used to connect to the Spark Connect endpoint.

    " + }, + "AuthTokenExpirationTime":{ + "shape":"Date", + "documentation":"

    The time at which the authentication token expires. After this time, call GetSessionEndpoint again to obtain a new token.

    " + }, + "Credentials":{ + "shape":"Credentials", + "documentation":"

    Username and password used to authenticate with the Spark Connect server when connecting directly over VPC peering.

    " + } + }, + "documentation":"

    Output of the GetSessionEndpoint operation.

    " + }, + "GetSessionInput":{ + "type":"structure", + "required":[ + "ClusterId", + "SessionId" + ], + "members":{ + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that the session belongs to.

    " + }, + "SessionId":{ + "shape":"SessionId", + "documentation":"

    The ID of the session.

    " + } + }, + "documentation":"

    Input to the GetSession operation.

    " + }, + "GetSessionOutput":{ + "type":"structure", + "required":["Session"], + "members":{ + "Session":{ + "shape":"Session", + "documentation":"

    The output displays information about the session.

    " + } + }, + "documentation":"

    Output of the GetSession operation.

    " + }, "GetStudioSessionMappingInput":{ "type":"structure", "required":[ @@ -2747,7 +2917,10 @@ "type":"list", "member":{"shape":"InstanceFleetConfig"} }, - "InstanceFleetId":{"type":"string"}, + "InstanceFleetId":{ + "type":"string", + "max":256 + }, "InstanceFleetList":{ "type":"list", "member":{"shape":"InstanceFleet"} @@ -3103,7 +3276,10 @@ "type":"list", "member":{"shape":"InstanceGroupDetail"} }, - "InstanceGroupId":{"type":"string"}, + "InstanceGroupId":{ + "type":"string", + "max":256 + }, "InstanceGroupIdsList":{ "type":"list", "member":{"shape":"XmlStringMaxLen256"} @@ -4053,6 +4229,43 @@ } } }, + "ListSessionsInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster to list sessions for.

    " + }, + "SessionStates":{ + "shape":"SessionStateList", + "documentation":"

    An optional filter that limits the results to sessions in the specified states.

    " + }, + "NextToken":{ + "shape":"String", + "documentation":"

    The pagination token returned by a previous ListSessions call. Use it to retrieve the next page of results.

    " + }, + "MaxResults":{ + "shape":"MaxResultsNumber", + "documentation":"

    The maximum number of sessions to return in each page of results.

    " + } + }, + "documentation":"

    Input to the ListSessions operation.

    " + }, + "ListSessionsOutput":{ + "type":"structure", + "members":{ + "Sessions":{ + "shape":"SessionList", + "documentation":"

    The sessions that match the request.

    " + }, + "NextToken":{ + "shape":"String", + "documentation":"

    The pagination token to use in a subsequent ListSessions call to retrieve the next page of results. This field is absent when there are no more results.

    " + } + }, + "documentation":"

    Output of the ListSessions operation.

    " + }, "ListStepsInput":{ "type":"structure", "required":["ClusterId"], @@ -4920,6 +5133,10 @@ "TagKeys":{ "shape":"StringList", "documentation":"

    A list of tag keys to remove from the resource.

    " + }, + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that scopes the tag operation. Required when the resource being untagged is a session-scoped resource.

    " } }, "documentation":"

    This input identifies an Amazon EMR resource and a list of tags to remove.

    " @@ -5076,6 +5293,10 @@ "MonitoringConfiguration":{ "shape":"MonitoringConfiguration", "documentation":"

    Contains CloudWatch log configuration metadata and settings.

    " + }, + "SessionEnabled":{ + "shape":"BooleanObject", + "documentation":"

    Indicates whether Spark Connect sessions are enabled on the cluster. When set to true, you can start Spark Connect sessions using the StartSession operation.

    " } }, "documentation":"

    Input to the RunJobFlow operation.

    " @@ -5099,7 +5320,7 @@ "members":{ "LogTypeUploadPolicy":{ "shape":"LogTypeMap", - "documentation":"

    A map that specifies the upload policy for each log type. The key is the log type, and the value is the upload policy.

    Valid log types:

    • system-logs: System-level logs including daemon logs, bootstrap logs, and other infrastructure logs.

    • application-logs: Application-level logs from frameworks like Hadoop, Spark, Hive, etc.

    • persistent-ui-logs: Logs for persistent application UIs like Spark History Server.

    Valid upload policies:

    • emr-managed: Logs are uploaded to both the EMR-managed S3 bucket and the customer-specified S3 bucket (if LogUri is provided).

    • on-customer-s3only: Logs are uploaded only to the customer-specified S3 bucket. Requires LogUri to be specified in the cluster configuration.

    • disabled: Log upload is disabled for this log type.

    " + "documentation":"

    A map that specifies the upload policy for each log type. The key is the log type, and the value is the upload policy.

    Valid log types:

    • system-logs: EMR Daemon logs.

    • application-logs: Framework logs from Hadoop, Spark, Hive and other applications running on the cluster.

    • persistent-ui-logs: Logs required for persistent application UIs such as Spark History Server and Tez UI.

    Valid upload policies:

    • emr-managed: Standard behavior. Logs are uploaded to S3 bucket as configured in your LogUri, with certain logs retained by the service for operational support and troubleshooting purposes.

    • on-customer-s3only: Logs are uploaded only to the customer-specified S3 bucket. This requires you to specify a LogUri when creating the cluster. Persistent-ui-logs cannot have on-customer-s3only policy. Allowed policies for persistent-ui-logs are emr-managed and disabled.

    • disabled: No S3 upload for this log type.

    " } }, "documentation":"

    Configuration for S3 logging behavior in EMR clusters. Defines how different types of logs are uploaded to S3 based on the specified upload policies for each log type.

    " @@ -5244,6 +5465,151 @@ "type":"list", "member":{"shape":"XmlStringMaxLen256"} }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, + "Session":{ + "type":"structure", + "required":[ + "Id", + "ClusterId", + "Arn", + "State" + ], + "members":{ + "Id":{ + "shape":"SessionId", + "documentation":"

    The ID of the session.

    " + }, + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that the session belongs to.

    " + }, + "Name":{ + "shape":"XmlStringMaxLen256", + "documentation":"

    The name of the session, if one was provided at creation time.

    " + }, + "Arn":{ + "shape":"ArnType", + "documentation":"

    The Amazon Resource Name (ARN) of the session.

    " + }, + "State":{ + "shape":"SessionState", + "documentation":"

    The current state of the session. Valid values are SUBMITTED, STARTING, STARTED, IDLE, BUSY, TERMINATING, TERMINATED, and FAILED.

    " + }, + "StateChangeReason":{ + "shape":"XmlString", + "documentation":"

    A human-readable message describing the most recent state change.

    " + }, + "ReleaseLabel":{ + "shape":"XmlStringMaxLen256", + "documentation":"

    The Amazon EMR release label of the cluster that the session is running on.

    " + }, + "ExecutionRoleArn":{ + "shape":"IAMRoleArn", + "documentation":"

    The execution role ARN for the session. Amazon EMR uses this role to access Amazon Web Services resources on your behalf during session execution.

    " + }, + "AccountId":{ + "shape":"XmlStringMaxLen256", + "documentation":"

    The Amazon Web Services account ID that owns the session.

    " + }, + "CreatedAt":{ + "shape":"Date", + "documentation":"

    The date and time that the session was created.

    " + }, + "UpdatedAt":{ + "shape":"Date", + "documentation":"

    The date and time that the session was last updated.

    " + }, + "StartedAt":{ + "shape":"Date", + "documentation":"

    The date and time that the session entered the STARTED state.

    " + }, + "EndedAt":{ + "shape":"Date", + "documentation":"

    The date and time that the session was terminated or failed.

    " + }, + "IdleSince":{ + "shape":"Date", + "documentation":"

    The date and time that the session last entered the IDLE state.

    " + }, + "EngineConfigurations":{ + "shape":"ConfigurationList", + "documentation":"

    The configuration overrides for the session. Only runtime configuration overrides are supported.

    " + }, + "MonitoringConfiguration":{ + "shape":"SessionMonitoringConfiguration", + "documentation":"

    The monitoring configuration for the session.

    " + }, + "SessionIdleTimeoutInMinutes":{ + "shape":"Long", + "documentation":"

    The idle timeout, in minutes. If the session is idle for this duration, Amazon EMR automatically terminates it.

    " + }, + "CertificateAuthority":{ + "shape":"CertificateAuthority", + "documentation":"

    The certificate authority used to establish an mTLS connection to the Spark Connect server when connecting directly over VPC peering.

    " + }, + "ServerUrl":{ + "shape":"XmlString", + "documentation":"

    The Spark Connect server URL for the session. Use this URL with the Credentials returned by GetSessionEndpoint to connect directly to the session over VPC peering.

    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    The tags associated with the session.

    " + } + }, + "documentation":"

    Detailed information about a Spark Connect session.

    " + }, + "SessionCloudWatchLoggingConfiguration":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

    Whether CloudWatch Logs is enabled for the session.

    " + }, + "LogGroup":{ + "shape":"XmlString", + "documentation":"

    The name of the log group where session logs are published.

    " + }, + "LogStreamNamePrefix":{ + "shape":"XmlString", + "documentation":"

    The prefix applied to the log stream name where session logs are published.

    " + }, + "EncryptionKeyArn":{ + "shape":"XmlString", + "documentation":"

    The Amazon Resource Name (ARN) of the KMS key used to encrypt the logs published to CloudWatch Logs.

    " + }, + "LogTypes":{ + "shape":"LogTypesMap", + "documentation":"

    A map of log component names (for example, SPARK_DRIVER, SPARK_EXECUTOR) to the list of log types to publish for that component (for example, stdout, stderr).

    " + } + }, + "documentation":"

    The CloudWatch Logs configuration for a session.

    " + }, + "SessionId":{ + "type":"string", + "max":256, + "min":0 + }, + "SessionList":{ + "type":"list", + "member":{"shape":"Session"} + }, + "SessionManagedLoggingConfiguration":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

    Whether Amazon EMR-managed logging is enabled for the session.

    " + }, + "EncryptionKeyArn":{ + "shape":"XmlString", + "documentation":"

    The Amazon Resource Name (ARN) of the KMS key used to encrypt the managed logs.

    " + } + }, + "documentation":"

    The Amazon EMR-managed logging configuration for a session.

    " + }, "SessionMappingDetail":{ "type":"structure", "members":{ @@ -5312,6 +5678,63 @@ "type":"list", "member":{"shape":"SessionMappingSummary"} }, + "SessionMonitoringConfiguration":{ + "type":"structure", + "members":{ + "CloudWatchLoggingConfiguration":{ + "shape":"SessionCloudWatchLoggingConfiguration", + "documentation":"

    The CloudWatch Logs configuration for the session.

    " + }, + "ManagedLoggingConfiguration":{ + "shape":"SessionManagedLoggingConfiguration", + "documentation":"

    The Amazon EMR-managed logging configuration for the session.

    " + }, + "S3LoggingConfiguration":{ + "shape":"SessionS3LoggingConfiguration", + "documentation":"

    The Amazon S3 logging configuration for the session.

    " + } + }, + "documentation":"

    The monitoring configuration for a session. Controls where session logs are published.

    " + }, + "SessionS3LoggingConfiguration":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

    Whether Amazon S3 logging is enabled for the session.

    " + }, + "LogUri":{ + "shape":"XmlString", + "documentation":"

    The Amazon S3 destination URI where session logs are published.

    " + }, + "EncryptionKeyArn":{ + "shape":"XmlString", + "documentation":"

    The Amazon Resource Name (ARN) of the KMS key used to encrypt logs published to Amazon S3.

    " + }, + "LogTypes":{ + "shape":"LogTypesMap", + "documentation":"

    A map of log component names (for example, SPARK_DRIVER, SPARK_EXECUTOR) to the list of log types to publish for that component (for example, stdout, stderr).

    " + } + }, + "documentation":"

    The Amazon S3 logging configuration for a session.

    " + }, + "SessionState":{ + "type":"string", + "enum":[ + "SUBMITTED", + "STARTING", + "STARTED", + "IDLE", + "BUSY", + "TERMINATING", + "TERMINATED", + "FAILED" + ] + }, + "SessionStateList":{ + "type":"list", + "member":{"shape":"SessionState"} + }, "SetKeepJobFlowAliveWhenNoStepsInput":{ "type":"structure", "required":[ @@ -5556,6 +5979,72 @@ } } }, + "StartSessionInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "Name":{ + "shape":"XmlStringMaxLen256", + "documentation":"

    An optional name for the session.

    " + }, + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster on which to start the session.

    " + }, + "ExecutionRoleArn":{ + "shape":"IAMRoleArn", + "documentation":"

    The execution role ARN for the session. Amazon EMR uses this role to access Amazon Web Services resources on your behalf during session execution.

    " + }, + "EngineConfigurations":{ + "shape":"ConfigurationList", + "documentation":"

    The configuration overrides for the session. Only runtime configuration overrides are supported.

    " + }, + "MonitoringConfiguration":{ + "shape":"SessionMonitoringConfiguration", + "documentation":"

    The monitoring configuration that controls where session logs are published, such as Amazon S3, CloudWatch, or managed logging.

    " + }, + "SessionIdleTimeoutInMinutes":{ + "shape":"Long", + "documentation":"

    The idle timeout, in minutes. If the session is idle for this duration, Amazon EMR EC2 automatically terminates it.

    " + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client request token, the service returns the original response without performing the operation again.

    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    The tags to assign to the session.

    " + } + }, + "documentation":"

    Input to the StartSession operation.

    " + }, + "StartSessionOutput":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"SessionId", + "documentation":"

    The output contains the ID of the session.

    " + }, + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that the session was started on.

    " + }, + "Arn":{ + "shape":"ArnType", + "documentation":"

    The output contains the ARN of the session.

    " + }, + "AccountId":{ + "shape":"XmlStringMaxLen256", + "documentation":"

    The Amazon Web Services account ID that owns the session.

    " + }, + "State":{ + "shape":"SessionState", + "documentation":"

    The state of the session at the time the request returned. When a session is first created, it enters the SUBMITTED state.

    " + } + }, + "documentation":"

    Output of the StartSession operation.

    " + }, "Statistic":{ "type":"string", "enum":[ @@ -6085,6 +6574,47 @@ }, "documentation":"

    Input to the TerminateJobFlows operation.

    " }, + "TerminateSessionInput":{ + "type":"structure", + "required":[ + "ClusterId", + "SessionId" + ], + "members":{ + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that the session belongs to.

    " + }, + "SessionId":{ + "shape":"SessionId", + "documentation":"

    The ID of the session to terminate.

    " + } + }, + "documentation":"

    Input to the TerminateSession operation.

    " + }, + "TerminateSessionOutput":{ + "type":"structure", + "required":[ + "ClusterId", + "SessionId", + "State" + ], + "members":{ + "ClusterId":{ + "shape":"ClusterId", + "documentation":"

    The ID of the cluster that the session belonged to.

    " + }, + "SessionId":{ + "shape":"SessionId", + "documentation":"

    The ID of the terminated session.

    " + }, + "State":{ + "shape":"SessionState", + "documentation":"

    The state of the session after the terminate request has been accepted.

    " + } + }, + "documentation":"

    Output of the TerminateSession operation.

    " + }, "ThroughputVal":{ "type":"integer", "min":0 diff --git a/awscli/botocore/data/glue/2017-03-31/service-2.json b/awscli/botocore/data/glue/2017-03-31/service-2.json index 3b23628469a6..fa2b605da440 100644 --- a/awscli/botocore/data/glue/2017-03-31/service-2.json +++ b/awscli/botocore/data/glue/2017-03-31/service-2.json @@ -811,7 +811,8 @@ {"shape":"InvalidInputException"}, {"shape":"ValidationException"}, {"shape":"AlreadyExistsException"}, - {"shape":"ResourceNumberLimitExceededException"} + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"OperationNotSupportedException"} ], "documentation":"

    Creates a new session.

    " }, @@ -1876,6 +1877,24 @@ ], "documentation":"

    Retrieves the details of a custom pattern by specifying its name.

    " }, + "GetDashboardUrl":{ + "name":"GetDashboardUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDashboardUrlRequest"}, + "output":{"shape":"GetDashboardUrlResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

    Retrieves the URL for the Spark monitoring dashboard for a Glue resource.

    ", + "readonly":true + }, "GetDataCatalogEncryptionSettings":{ "name":"GetDataCatalogEncryptionSettings", "http":{ @@ -2557,6 +2576,26 @@ ], "documentation":"

    Retrieves the session.

    " }, + "GetSessionEndpoint":{ + "name":"GetSessionEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSessionEndpointRequest"}, + "output":{"shape":"GetSessionEndpointResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"IllegalSessionStateException"} + ], + "documentation":"

    Returns the Spark Connect endpoint URL and authentication token for an interactive session.

    ", + "readonly":true + }, "GetStatement":{ "name":"GetStatement", "http":{ @@ -3546,6 +3585,8 @@ {"shape":"InvalidInputException"}, {"shape":"ValidationException"}, {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"SessionBusyException"}, {"shape":"IllegalSessionStateException"} ], "documentation":"

    Executes the statement.

    " @@ -10392,6 +10433,10 @@ "RequestOrigin":{ "shape":"OrchestrationNameString", "documentation":"

    The origin of the request.

    " + }, + "SessionType":{ + "shape":"SessionType", + "documentation":"

    The type of session to create.

    " } }, "documentation":"

    Request to create a new session.

    " @@ -14939,6 +14984,37 @@ } } }, + "GetDashboardUrlRequest":{ + "type":"structure", + "required":[ + "ResourceId", + "ResourceType" + ], + "members":{ + "ResourceId":{ + "shape":"NameString", + "documentation":"

    The unique identifier of the resource for which to retrieve the dashboard URL.

    " + }, + "ResourceType":{ + "shape":"GlueResourceType", + "documentation":"

    The type of the resource. Valid values are SESSION and JOB.

    " + }, + "RequestOrigin":{ + "shape":"OrchestrationNameString", + "documentation":"

    The origin of the request.

    " + } + } + }, + "GetDashboardUrlResponse":{ + "type":"structure", + "required":["Url"], + "members":{ + "Url":{ + "shape":"SensitiveUrl", + "documentation":"

    The URL for the Spark monitoring dashboard.

    " + } + } + }, "GetDataCatalogEncryptionSettingsRequest":{ "type":"structure", "members":{ @@ -16512,6 +16588,26 @@ } } }, + "GetSessionEndpointRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"NameString", + "documentation":"

    The unique identifier of the interactive session.

    " + } + } + }, + "GetSessionEndpointResponse":{ + "type":"structure", + "required":["SparkConnect"], + "members":{ + "SparkConnect":{ + "shape":"SessionEndpoint", + "documentation":"

    The Spark Connect endpoint details for the session.

    " + } + } + }, "GetSessionRequest":{ "type":"structure", "required":["Id"], @@ -17377,6 +17473,13 @@ "min":1, "pattern":"arn:aws(-(cn|us-gov|iso(-[bef])?))?:glue:.*" }, + "GlueResourceType":{ + "type":"string", + "enum":[ + "JOB", + "SESSION" + ] + }, "GlueSchema":{ "type":"structure", "members":{ @@ -25271,6 +25374,16 @@ "max":1000, "min":1 }, + "SensitiveString":{ + "type":"string", + "max":16384, + "sensitive":true + }, + "SensitiveUrl":{ + "type":"string", + "max":40000, + "sensitive":true + }, "Separator":{ "type":"string", "enum":[ @@ -25381,10 +25494,25 @@ "ProfileName":{ "shape":"NameString", "documentation":"

    The name of an Glue usage profile associated with the session.

    " + }, + "SessionType":{ + "shape":"SessionType", + "documentation":"

    The type of the session.

    " } }, "documentation":"

    The period in which a remote Spark runtime environment is running.

    " }, + "SessionBusyException":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"OrchestrationMessageString", + "documentation":"

    A message describing the problem.

    " + } + }, + "documentation":"

    The session is currently busy processing another request and cannot accept new operations.

    ", + "exception":true + }, "SessionCommand":{ "type":"structure", "members":{ @@ -25399,6 +25527,29 @@ }, "documentation":"

    The SessionCommand that runs the job.

    " }, + "SessionEndpoint":{ + "type":"structure", + "required":[ + "Url", + "AuthToken", + "AuthTokenExpirationTime" + ], + "members":{ + "Url":{ + "shape":"SparkConnectEndpointUrl", + "documentation":"

    The Spark Connect endpoint URL for the session.

    " + }, + "AuthToken":{ + "shape":"SensitiveString", + "documentation":"

    The authentication token to include in requests to the Spark Connect endpoint.

    " + }, + "AuthTokenExpirationTime":{ + "shape":"TimestampValue", + "documentation":"

    The time at which the authentication token expires.

    " + } + }, + "documentation":"

    Contains the Spark Connect endpoint details for an interactive session, including the URL and authentication credentials.

    " + }, "SessionIdList":{ "type":"list", "member":{"shape":"NameString"} @@ -25418,6 +25569,13 @@ "STOPPED" ] }, + "SessionType":{ + "type":"string", + "enum":[ + "LIVY", + "SPARK_CONNECT" + ] + }, "SettingSource":{ "type":"string", "enum":[ @@ -25727,6 +25885,11 @@ "type":"list", "member":{"shape":"String128"} }, + "SparkConnectEndpointUrl":{ + "type":"string", + "max":2048, + "pattern":"^sc://.*$" + }, "SparkConnectorSource":{ "type":"structure", "required":[ diff --git a/awscli/botocore/data/guardduty/2017-11-28/service-2.json b/awscli/botocore/data/guardduty/2017-11-28/service-2.json index 470d20e26b6c..325371a1c9d8 100644 --- a/awscli/botocore/data/guardduty/2017-11-28/service-2.json +++ b/awscli/botocore/data/guardduty/2017-11-28/service-2.json @@ -2772,7 +2772,7 @@ }, "FindingCriteria":{ "shape":"FindingCriteria", - "documentation":"

    Represents the criteria to be used in the filter for querying findings. The following fields are available for filtering:

    • accountId

    • arn

    • associatedAttackSequenceArn

    • confidence

    • createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • description

    • id

    • partition

    • region

    • resource.accessKeyDetails.accessKeyId

    • resource.accessKeyDetails.principalId

    • resource.accessKeyDetails.userIdentity.accessKeyId

    • resource.accessKeyDetails.userIdentity.accountId

    • resource.accessKeyDetails.userIdentity.arn

    • resource.accessKeyDetails.userIdentity.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.attributes.mfaAuthenticated

    • resource.accessKeyDetails.userIdentity.sessionContext.ec2RoleDelivery

    • resource.accessKeyDetails.userIdentity.sessionContext.invokedBy

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.accountId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.arn

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.type

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.userName

    • resource.accessKeyDetails.userIdentity.sessionContext.sourceIdentity

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.attributes

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.federatedProvider

    • resource.accessKeyDetails.userIdentity.type

    • resource.accessKeyDetails.userIdentity.userName

    • resource.accessKeyDetails.userName

    • resource.accessKeyDetails.userType

    • resource.bedrockGuardrailDetails.guardrailArn

    • resource.bedrockGuardrailDetails.guardrailVersion

    • resource.containerDetails.containerRuntime

    • resource.containerDetails.id

    • resource.containerDetails.image

    • resource.containerDetails.imagePrefix

    • resource.containerDetails.name

    • resource.containerDetails.securityContext.allowPrivilegeEscalation

    • resource.containerDetails.securityContext.privileged

    • resource.containerDetails.volumeMounts.mountPath

    • resource.containerDetails.volumeMounts.name

    • resource.ebsSnapshotDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.scannedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.scannedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeType

    • resource.ebsVolumeDetails.skippedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.skippedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.skippedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeType

    • resource.ec2ImageDetails.imageArn

    • resource.ecsClusterDetails.activeServicesCount

    • resource.ecsClusterDetails.arn

    • resource.ecsClusterDetails.name

    • resource.ecsClusterDetails.registeredContainerInstancesCount

    • resource.ecsClusterDetails.runningTasksCount

    • resource.ecsClusterDetails.status

    • resource.ecsClusterDetails.tags.key

    • resource.ecsClusterDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.arn

    • resource.ecsClusterDetails.taskDetails.containers.containerRuntime

    • resource.ecsClusterDetails.taskDetails.containers.id

    • resource.ecsClusterDetails.taskDetails.containers.image

    • resource.ecsClusterDetails.taskDetails.containers.imagePrefix

    • resource.ecsClusterDetails.taskDetails.containers.name

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.privileged

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.mountPath

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.name

    • resource.ecsClusterDetails.taskDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.definitionArn

    • resource.ecsClusterDetails.taskDetails.group

    • resource.ecsClusterDetails.taskDetails.launchType

    • resource.ecsClusterDetails.taskDetails.startedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.startedBy

    • resource.ecsClusterDetails.taskDetails.tags.key

    • resource.ecsClusterDetails.taskDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.version

    • resource.ecsClusterDetails.taskDetails.volumes.hostPath.path

    • resource.ecsClusterDetails.taskDetails.volumes.name

    • resource.eksClusterDetails.arn

    • resource.eksClusterDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.eksClusterDetails.name

    • resource.eksClusterDetails.status

    • resource.eksClusterDetails.tags.key

    • resource.eksClusterDetails.tags.value

    • resource.eksClusterDetails.vpcId

    • resource.instanceDetails.availabilityZone

    • resource.instanceDetails.iamInstanceProfile.arn

    • resource.instanceDetails.iamInstanceProfile.id

    • resource.instanceDetails.imageDescription

    • resource.instanceDetails.imageId

    • resource.instanceDetails.instanceId

    • resource.instanceDetails.instanceState

    • resource.instanceDetails.instanceType

    • resource.instanceDetails.launchTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.instanceDetails.networkInterfaces.ipv6Addresses

    • resource.instanceDetails.networkInterfaces.networkInterfaceId

    • resource.instanceDetails.networkInterfaces.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddress

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    • resource.instanceDetails.networkInterfaces.publicDnsName

    • resource.instanceDetails.networkInterfaces.publicIp

    • resource.instanceDetails.networkInterfaces.securityGroups.groupId

    • resource.instanceDetails.networkInterfaces.securityGroups.groupName

    • resource.instanceDetails.networkInterfaces.subnetId

    • resource.instanceDetails.networkInterfaces.vpcId

    • resource.instanceDetails.outpostArn

    • resource.instanceDetails.platform

    • resource.instanceDetails.productCodes.productCodeId

    • resource.instanceDetails.productCodes.productCodeType

    • resource.instanceDetails.tags.key

    • resource.instanceDetails.tags.value

    • resource.kubernetesDetails.kubernetesUserDetails.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.username

    • resource.kubernetesDetails.kubernetesUserDetails.sessionName

    • resource.kubernetesDetails.kubernetesUserDetails.uid

    • resource.kubernetesDetails.kubernetesUserDetails.username

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.containerRuntime

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.id

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.privileged

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.mountPath

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostIpc

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostNetwork

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostPid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    • resource.kubernetesDetails.kubernetesWorkloadDetails.serviceAccountName

    • resource.kubernetesDetails.kubernetesWorkloadDetails.type

    • resource.kubernetesDetails.kubernetesWorkloadDetails.uid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.hostPath.path

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.name

    • resource.lambdaDetails.description

    • resource.lambdaDetails.functionArn

    • resource.lambdaDetails.functionName

    • resource.lambdaDetails.functionVersion

    • resource.lambdaDetails.lastModifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.lambdaDetails.revisionId

    • resource.lambdaDetails.role

    • resource.lambdaDetails.tags.key

    • resource.lambdaDetails.tags.value

    • resource.lambdaDetails.vpcConfig.securityGroups.groupId

    • resource.lambdaDetails.vpcConfig.securityGroups.groupName

    • resource.lambdaDetails.vpcConfig.subnetIds

    • resource.lambdaDetails.vpcConfig.vpcId

    • resource.rdsDbInstanceDetails.dbClusterIdentifier

    • resource.rdsDbInstanceDetails.dbInstanceArn

    • resource.rdsDbInstanceDetails.dbInstanceIdentifier

    • resource.rdsDbInstanceDetails.dbSecurityGroups.name

    • resource.rdsDbInstanceDetails.dbSecurityGroups.status

    • resource.rdsDbInstanceDetails.dbiResourceId

    • resource.rdsDbInstanceDetails.engine

    • resource.rdsDbInstanceDetails.engineVersion

    • resource.rdsDbInstanceDetails.iamDatabaseAuthenticationEnabled

    • resource.rdsDbInstanceDetails.publiclyAccessible

    • resource.rdsDbInstanceDetails.tags.key

    • resource.rdsDbInstanceDetails.tags.value

    • resource.rdsDbInstanceDetails.vpcId

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.status

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.vpcSecurityGroupId

    • resource.rdsDbUserDetails.application

    • resource.rdsDbUserDetails.authMethod

    • resource.rdsDbUserDetails.database

    • resource.rdsDbUserDetails.ssl

    • resource.rdsDbUserDetails.user

    • resource.rdsLimitlessDbDetails.dbClusterIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupArn

    • resource.rdsLimitlessDbDetails.dbShardGroupIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupResourceId

    • resource.rdsLimitlessDbDetails.engine

    • resource.rdsLimitlessDbDetails.engineVersion

    • resource.rdsLimitlessDbDetails.tags.key

    • resource.rdsLimitlessDbDetails.tags.value

    • resource.recoveryPointDetails.backupVaultName

    • resource.recoveryPointDetails.recoveryPointArn

    • resource.resourceType

    • resource.s3BucketDetails.arn

    • resource.s3BucketDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.s3BucketDetails.defaultServerSideEncryption.encryptionType

    • resource.s3BucketDetails.defaultServerSideEncryption.kmsMasterKeyArn

    • resource.s3BucketDetails.name

    • resource.s3BucketDetails.owner.id

    • resource.s3BucketDetails.publicAccess.effectivePermission

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicWriteAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicWriteAccess

    • resource.s3BucketDetails.s3ObjectDetails.eTag

    • resource.s3BucketDetails.s3ObjectDetails.hash

    • resource.s3BucketDetails.s3ObjectDetails.key

    • resource.s3BucketDetails.s3ObjectDetails.objectArn

    • resource.s3BucketDetails.s3ObjectDetails.versionId

    • resource.s3BucketDetails.tags.key

    • resource.s3BucketDetails.tags.value

    • resource.s3BucketDetails.type

    • schemaVersion

    • service.action.actionType

    • service.action.awsApiCallAction.affectedResources

    • service.action.awsApiCallAction.api

    • service.action.awsApiCallAction.callerType

    • service.action.awsApiCallAction.domainDetails.domain

    • service.action.awsApiCallAction.errorCode

    • service.action.awsApiCallAction.remoteAccountDetails.accountId

    • service.action.awsApiCallAction.remoteAccountDetails.affiliated

    • service.action.awsApiCallAction.remoteAccountDetails.awsServiceName

    • service.action.awsApiCallAction.remoteIpDetails.city.cityName

    • service.action.awsApiCallAction.remoteIpDetails.country.countryCode

    • service.action.awsApiCallAction.remoteIpDetails.country.countryName

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.awsApiCallAction.remoteIpDetails.organization.asn

    • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.awsApiCallAction.remoteIpDetails.organization.isp

    • service.action.awsApiCallAction.remoteIpDetails.organization.org

    • service.action.awsApiCallAction.serviceName

    • service.action.awsApiCallAction.userAgent

    • service.action.dnsRequestAction.blocked

    • service.action.dnsRequestAction.domain

    • service.action.dnsRequestAction.domainWithSuffix

    • service.action.dnsRequestAction.protocol

    • service.action.dnsRequestAction.vpcOwnerAccountId

    • service.action.kubernetesApiCallAction.namespace

    • service.action.kubernetesApiCallAction.parameters

    • service.action.kubernetesApiCallAction.remoteIpDetails.city.cityName

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryCode

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryName

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.isp

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.org

    • service.action.kubernetesApiCallAction.requestUri

    • service.action.kubernetesApiCallAction.resource

    • service.action.kubernetesApiCallAction.resourceName

    • service.action.kubernetesApiCallAction.sourceIPs

    • service.action.kubernetesApiCallAction.statusCode

    • service.action.kubernetesApiCallAction.subresource

    • service.action.kubernetesApiCallAction.userAgent

    • service.action.kubernetesApiCallAction.verb

    • service.action.kubernetesPermissionCheckedDetails.allowed

    • service.action.kubernetesPermissionCheckedDetails.namespace

    • service.action.kubernetesPermissionCheckedDetails.resource

    • service.action.kubernetesPermissionCheckedDetails.verb

    • service.action.kubernetesRoleBindingDetails.kind

    • service.action.kubernetesRoleBindingDetails.name

    • service.action.kubernetesRoleBindingDetails.roleRefKind

    • service.action.kubernetesRoleBindingDetails.roleRefName

    • service.action.kubernetesRoleBindingDetails.uid

    • service.action.kubernetesRoleDetails.kind

    • service.action.kubernetesRoleDetails.name

    • service.action.kubernetesRoleDetails.uid

    • service.action.networkConnectionAction.blocked

    • service.action.networkConnectionAction.connectionDirection

    • service.action.networkConnectionAction.localIpDetails.ipAddressV4

    • service.action.networkConnectionAction.localIpDetails.ipAddressV6

    • service.action.networkConnectionAction.localNetworkInterface

    • service.action.networkConnectionAction.localPortDetails.port

    • service.action.networkConnectionAction.localPortDetails.portName

    • service.action.networkConnectionAction.protocol

    • service.action.networkConnectionAction.remoteIpDetails.city.cityName

    • service.action.networkConnectionAction.remoteIpDetails.country.countryCode

    • service.action.networkConnectionAction.remoteIpDetails.country.countryName

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lat

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lon

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    • service.action.networkConnectionAction.remoteIpDetails.organization.asn

    • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    • service.action.networkConnectionAction.remoteIpDetails.organization.isp

    • service.action.networkConnectionAction.remoteIpDetails.organization.org

    • service.action.networkConnectionAction.remotePortDetails.port

    • service.action.networkConnectionAction.remotePortDetails.portName

    • service.action.portProbeAction.blocked

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.localPortDetails.port

    • service.action.portProbeAction.portProbeDetails.localPortDetails.portName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.city.cityName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryCode

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lat

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lon

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asn

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asnOrg

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.isp

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.org

    • service.action.rdsLoginAttemptAction.loginAttributes.application

    • service.action.rdsLoginAttemptAction.loginAttributes.failedLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.successfulLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.user

    • service.action.rdsLoginAttemptAction.remoteIpDetails.city.cityName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryCode

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lat

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lon

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV4

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV6

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asn

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asnOrg

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.isp

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.org

    • service.additionalInfo.agentDetails.agentId

    • service.additionalInfo.agentDetails.agentVersion

    • service.additionalInfo.anomalies.anomalousAPIs

    • service.additionalInfo.authenticationMethod

    • service.additionalInfo.averagePacketSizeIn

    • service.additionalInfo.averagePacketSizeOut

    • service.additionalInfo.context

    • service.additionalInfo.domain

    • service.additionalInfo.inBytes

    • service.additionalInfo.localNetworkInterfaceOwner

    • service.additionalInfo.localPort

    • service.additionalInfo.outBytes

    • service.additionalInfo.packetsIn

    • service.additionalInfo.packetsOut

    • service.additionalInfo.policyArn

    • service.additionalInfo.policyName

    • service.additionalInfo.remotePort

    • service.additionalInfo.sample

    • service.additionalInfo.scannedPort

    • service.additionalInfo.threatFileSha256

    • service.additionalInfo.threatListName

    • service.additionalInfo.threatName

    • service.additionalInfo.totalBytesIn

    • service.additionalInfo.totalBytesOut

    • service.additionalInfo.type

    • service.additionalInfo.unusual.asnOrg

    • service.additionalInfo.unusual.port

    • service.additionalInfo.unusualProtocol

    • service.additionalInfo.userAgent.fullUserAgent

    • service.additionalInfo.userAgent.userAgentCategory

    • service.additionalInfo.value

    • service.additionalInfo.vpcOwnerAccountId

    • service.archived

    • service.count

    • service.detection.anomaly.profiles

    • service.detection.anomaly.unusual.behavior

    • service.detection.sequence.actors.id

    • service.detection.sequence.actors.process.name

    • service.detection.sequence.actors.process.path

    • service.detection.sequence.actors.process.sha256

    • service.detection.sequence.actors.session.createdTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.actors.session.issuer

    • service.detection.sequence.actors.session.mfaStatus

    • service.detection.sequence.actors.session.uid

    • service.detection.sequence.actors.user.account.account

    • service.detection.sequence.actors.user.account.uid

    • service.detection.sequence.actors.user.credentialUid

    • service.detection.sequence.actors.user.name

    • service.detection.sequence.actors.user.type

    • service.detection.sequence.actors.user.uid

    • service.detection.sequence.additionalSequenceTypes

    • service.detection.sequence.description

    • service.detection.sequence.endpoints.autonomousSystem.name

    • service.detection.sequence.endpoints.autonomousSystem.number

    • service.detection.sequence.endpoints.connection.direction

    • service.detection.sequence.endpoints.domain

    • service.detection.sequence.endpoints.id

    • service.detection.sequence.endpoints.ip

    • service.detection.sequence.endpoints.location.city

    • service.detection.sequence.endpoints.location.country

    • service.detection.sequence.endpoints.location.lat

    • service.detection.sequence.endpoints.location.lon

    • service.detection.sequence.endpoints.port

    • service.detection.sequence.resources.accountId

    • service.detection.sequence.resources.cloudPartition

    • service.detection.sequence.resources.data.accessKey.principalId

    • service.detection.sequence.resources.data.accessKey.userName

    • service.detection.sequence.resources.data.accessKey.userType

    • service.detection.sequence.resources.data.autoscalingAutoScalingGroup.ec2InstanceUids

    • service.detection.sequence.resources.data.cloudformationStack.ec2InstanceUids

    • service.detection.sequence.resources.data.container.image

    • service.detection.sequence.resources.data.container.imageUid

    • service.detection.sequence.resources.data.ec2Image.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2Instance.availabilityZone

    • service.detection.sequence.resources.data.ec2Instance.ec2NetworkInterfaceUids

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.arn

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.id

    • service.detection.sequence.resources.data.ec2Instance.imageDescription

    • service.detection.sequence.resources.data.ec2Instance.instanceState

    • service.detection.sequence.resources.data.ec2Instance.instanceType

    • service.detection.sequence.resources.data.ec2Instance.outpostArn

    • service.detection.sequence.resources.data.ec2Instance.platform

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeId

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeType

    • service.detection.sequence.resources.data.ec2LaunchTemplate.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2LaunchTemplate.version

    • service.detection.sequence.resources.data.ec2NetworkInterface.ipv6Addresses

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateDnsName

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateIpAddress

    • service.detection.sequence.resources.data.ec2NetworkInterface.publicIp

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupId

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupName

    • service.detection.sequence.resources.data.ec2NetworkInterface.subNetId

    • service.detection.sequence.resources.data.ec2NetworkInterface.vpcId

    • service.detection.sequence.resources.data.ec2Vpc.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.status

    • service.detection.sequence.resources.data.ecsTask.containerUids

    • service.detection.sequence.resources.data.ecsTask.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.ecsTask.launchType

    • service.detection.sequence.resources.data.ecsTask.taskDefinitionArn

    • service.detection.sequence.resources.data.eksCluster.arn

    • service.detection.sequence.resources.data.eksCluster.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.eksCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.eksCluster.status

    • service.detection.sequence.resources.data.eksCluster.vpcId

    • service.detection.sequence.resources.data.iamInstanceProfile.ec2InstanceUids

    • service.detection.sequence.resources.data.iamInstanceProfile.id

    • service.detection.sequence.resources.data.kubernetesWorkload.containerUids

    • service.detection.sequence.resources.data.kubernetesWorkload.namespace

    • service.detection.sequence.resources.data.kubernetesWorkload.type

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.s3Bucket.effectivePermission

    • service.detection.sequence.resources.data.s3Bucket.encryptionKeyArn

    • service.detection.sequence.resources.data.s3Bucket.encryptionType

    • service.detection.sequence.resources.data.s3Bucket.ownerId

    • service.detection.sequence.resources.data.s3Bucket.publicReadAccess

    • service.detection.sequence.resources.data.s3Bucket.publicWriteAccess

    • service.detection.sequence.resources.data.s3Bucket.s3ObjectUids

    • service.detection.sequence.resources.data.s3Object.eTag

    • service.detection.sequence.resources.data.s3Object.key

    • service.detection.sequence.resources.data.s3Object.versionId

    • service.detection.sequence.resources.name

    • service.detection.sequence.resources.region

    • service.detection.sequence.resources.resourceType

    • service.detection.sequence.resources.service

    • service.detection.sequence.resources.tags.key

    • service.detection.sequence.resources.tags.value

    • service.detection.sequence.resources.uid

    • service.detection.sequence.sequenceIndicators.key

    • service.detection.sequence.sequenceIndicators.title

    • service.detection.sequence.sequenceIndicators.values

    • service.detection.sequence.signals.actorIds

    • service.detection.sequence.signals.count

    • service.detection.sequence.signals.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.description

    • service.detection.sequence.signals.endpointIds

    • service.detection.sequence.signals.firstSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.lastSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.name

    • service.detection.sequence.signals.resourceUids

    • service.detection.sequence.signals.severity

    • service.detection.sequence.signals.signalIndicators.key

    • service.detection.sequence.signals.signalIndicators.title

    • service.detection.sequence.signals.signalIndicators.values

    • service.detection.sequence.signals.type

    • service.detection.sequence.signals.uid

    • service.detection.sequence.signals.updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.uid

    • service.detectorId

    • service.ebsVolumeScanDetails.scanCompletedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.count

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.severity

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.threatName

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.files

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.totalGb

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.volumes

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.shortened

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.fileName

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.filePath

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.volumeArn

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.uniqueThreatNameCount

    • service.ebsVolumeScanDetails.scanDetections.threatsDetectedItemCount.files

    • service.ebsVolumeScanDetails.scanId

    • service.ebsVolumeScanDetails.scanStartedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanType

    • service.ebsVolumeScanDetails.sources

    • service.ebsVolumeScanDetails.triggerFindingId

    • service.eventFirstSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.eventLastSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.evidence.threatIntelligenceDetails.threatFileSha256

    • service.evidence.threatIntelligenceDetails.threatListName

    • service.evidence.threatIntelligenceDetails.threatNames

    • service.featureName

    • service.malwareScanDetails.scanCategory

    • service.malwareScanDetails.scanConfiguration.incrementalScanDetails.baselineResourceArn

    • service.malwareScanDetails.scanConfiguration.triggerType

    • service.malwareScanDetails.scanId

    • service.malwareScanDetails.scanType

    • service.malwareScanDetails.threats.count

    • service.malwareScanDetails.threats.hash

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.deviceName

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.versionId

    • service.malwareScanDetails.threats.itemDetails.hash

    • service.malwareScanDetails.threats.itemDetails.itemPath

    • service.malwareScanDetails.threats.itemDetails.resourceArn

    • service.malwareScanDetails.threats.itemPaths.hash

    • service.malwareScanDetails.threats.itemPaths.nestedItemPath

    • service.malwareScanDetails.threats.name

    • service.malwareScanDetails.threats.source

    • service.malwareScanDetails.uniqueThreatCount

    • service.resourceRole

    • service.runtimeDetails.context.addressFamily

    • service.runtimeDetails.context.commandLineExample

    • service.runtimeDetails.context.fileOperation

    • service.runtimeDetails.context.filePath

    • service.runtimeDetails.context.fileSystemType

    • service.runtimeDetails.context.flags

    • service.runtimeDetails.context.ianaProtocolNumber

    • service.runtimeDetails.context.ldPreloadValue

    • service.runtimeDetails.context.libraryPath

    • service.runtimeDetails.context.memoryRegions

    • service.runtimeDetails.context.modifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.euid

    • service.runtimeDetails.context.modifyingProcess.executablePath

    • service.runtimeDetails.context.modifyingProcess.executableSha256

    • service.runtimeDetails.context.modifyingProcess.lineage.euid

    • service.runtimeDetails.context.modifyingProcess.lineage.executablePath

    • service.runtimeDetails.context.modifyingProcess.lineage.name

    • service.runtimeDetails.context.modifyingProcess.lineage.namespacePid

    • service.runtimeDetails.context.modifyingProcess.lineage.parentUuid

    • service.runtimeDetails.context.modifyingProcess.lineage.pid

    • service.runtimeDetails.context.modifyingProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.lineage.userId

    • service.runtimeDetails.context.modifyingProcess.lineage.uuid

    • service.runtimeDetails.context.modifyingProcess.name

    • service.runtimeDetails.context.modifyingProcess.namespacePid

    • service.runtimeDetails.context.modifyingProcess.parentUuid

    • service.runtimeDetails.context.modifyingProcess.pid

    • service.runtimeDetails.context.modifyingProcess.pwd

    • service.runtimeDetails.context.modifyingProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.user

    • service.runtimeDetails.context.modifyingProcess.userId

    • service.runtimeDetails.context.modifyingProcess.uuid

    • service.runtimeDetails.context.moduleFilePath

    • service.runtimeDetails.context.moduleName

    • service.runtimeDetails.context.moduleSha256

    • service.runtimeDetails.context.mountSource

    • service.runtimeDetails.context.mountTarget

    • service.runtimeDetails.context.relatedFilePaths

    • service.runtimeDetails.context.releaseAgentPath

    • service.runtimeDetails.context.runcBinaryPath

    • service.runtimeDetails.context.scriptPath

    • service.runtimeDetails.context.serviceName

    • service.runtimeDetails.context.shellHistoryFilePath

    • service.runtimeDetails.context.socketPath

    • service.runtimeDetails.context.targetProcess.euid

    • service.runtimeDetails.context.targetProcess.executablePath

    • service.runtimeDetails.context.targetProcess.executableSha256

    • service.runtimeDetails.context.targetProcess.lineage.euid

    • service.runtimeDetails.context.targetProcess.lineage.executablePath

    • service.runtimeDetails.context.targetProcess.lineage.name

    • service.runtimeDetails.context.targetProcess.lineage.namespacePid

    • service.runtimeDetails.context.targetProcess.lineage.parentUuid

    • service.runtimeDetails.context.targetProcess.lineage.pid

    • service.runtimeDetails.context.targetProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.lineage.userId

    • service.runtimeDetails.context.targetProcess.lineage.uuid

    • service.runtimeDetails.context.targetProcess.name

    • service.runtimeDetails.context.targetProcess.namespacePid

    • service.runtimeDetails.context.targetProcess.parentUuid

    • service.runtimeDetails.context.targetProcess.pid

    • service.runtimeDetails.context.targetProcess.pwd

    • service.runtimeDetails.context.targetProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.user

    • service.runtimeDetails.context.targetProcess.userId

    • service.runtimeDetails.context.targetProcess.uuid

    • service.runtimeDetails.context.threatFilePath

    • service.runtimeDetails.context.toolCategory

    • service.runtimeDetails.context.toolName

    • service.runtimeDetails.process.euid

    • service.runtimeDetails.process.executablePath

    • service.runtimeDetails.process.executableSha256

    • service.runtimeDetails.process.lineage.euid

    • service.runtimeDetails.process.lineage.executablePath

    • service.runtimeDetails.process.lineage.name

    • service.runtimeDetails.process.lineage.namespacePid

    • service.runtimeDetails.process.lineage.parentUuid

    • service.runtimeDetails.process.lineage.pid

    • service.runtimeDetails.process.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.lineage.userId

    • service.runtimeDetails.process.lineage.uuid

    • service.runtimeDetails.process.name

    • service.runtimeDetails.process.namespacePid

    • service.runtimeDetails.process.parentUuid

    • service.runtimeDetails.process.pid

    • service.runtimeDetails.process.pwd

    • service.runtimeDetails.process.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.user

    • service.runtimeDetails.process.userId

    • service.runtimeDetails.process.uuid

    • service.serviceName

    • service.userFeedback

    • severity

      To configure severity based filters, use the following for the FindingCriteria condition:

      • Low: [\"1\", \"2\", \"3\"]

      • Medium: [\"4\", \"5\", \"6\"]

      • High: [\"7\", \"8\"]

      • Critical: [\"9\", \"10\"]

      For more information, see Findings severity levels in the Amazon GuardDuty User Guide.

    • title

    • type

    • updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    ", + "documentation":"

    Represents the criteria to be used in the filter for querying findings. The following fields are available for filtering:

    • accountId

    • arn

    • associatedAttackSequenceArn

    • confidence

    • createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • id

    • partition

    • region

    • resource.accessKeyDetails.accessKeyId

    • resource.accessKeyDetails.principalId

    • resource.accessKeyDetails.userIdentity.accessKeyId

    • resource.accessKeyDetails.userIdentity.accountId

    • resource.accessKeyDetails.userIdentity.arn

    • resource.accessKeyDetails.userIdentity.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.attributes.mfaAuthenticated

    • resource.accessKeyDetails.userIdentity.sessionContext.ec2RoleDelivery

    • resource.accessKeyDetails.userIdentity.sessionContext.invokedBy

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.accountId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.arn

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.type

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.userName

    • resource.accessKeyDetails.userIdentity.sessionContext.sourceIdentity

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.attributes

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.federatedProvider

    • resource.accessKeyDetails.userIdentity.type

    • resource.accessKeyDetails.userIdentity.userName

    • resource.accessKeyDetails.userName

    • resource.accessKeyDetails.userType

    • resource.bedrockGuardrailDetails.guardrailArn

    • resource.bedrockGuardrailDetails.guardrailVersion

    • resource.containerDetails.containerRuntime

    • resource.containerDetails.id

    • resource.containerDetails.image

    • resource.containerDetails.imagePrefix

    • resource.containerDetails.name

    • resource.containerDetails.securityContext.allowPrivilegeEscalation

    • resource.containerDetails.securityContext.privileged

    • resource.containerDetails.volumeMounts.mountPath

    • resource.containerDetails.volumeMounts.name

    • resource.ebsSnapshotDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.scannedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.scannedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeType

    • resource.ebsVolumeDetails.skippedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.skippedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.skippedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeType

    • resource.ec2ImageDetails.imageArn

    • resource.ecsClusterDetails.activeServicesCount

    • resource.ecsClusterDetails.arn

    • resource.ecsClusterDetails.name

    • resource.ecsClusterDetails.registeredContainerInstancesCount

    • resource.ecsClusterDetails.runningTasksCount

    • resource.ecsClusterDetails.status

    • resource.ecsClusterDetails.tags.key

    • resource.ecsClusterDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.arn

    • resource.ecsClusterDetails.taskDetails.containers.containerRuntime

    • resource.ecsClusterDetails.taskDetails.containers.id

    • resource.ecsClusterDetails.taskDetails.containers.image

    • resource.ecsClusterDetails.taskDetails.containers.imagePrefix

    • resource.ecsClusterDetails.taskDetails.containers.name

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.privileged

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.mountPath

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.name

    • resource.ecsClusterDetails.taskDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.definitionArn

    • resource.ecsClusterDetails.taskDetails.group

    • resource.ecsClusterDetails.taskDetails.launchType

    • resource.ecsClusterDetails.taskDetails.startedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.startedBy

    • resource.ecsClusterDetails.taskDetails.tags.key

    • resource.ecsClusterDetails.taskDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.version

    • resource.ecsClusterDetails.taskDetails.volumes.hostPath.path

    • resource.ecsClusterDetails.taskDetails.volumes.name

    • resource.eksClusterDetails.arn

    • resource.eksClusterDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.eksClusterDetails.name

    • resource.eksClusterDetails.status

    • resource.eksClusterDetails.tags.key

    • resource.eksClusterDetails.tags.value

    • resource.eksClusterDetails.vpcId

    • resource.instanceDetails.availabilityZone

    • resource.instanceDetails.iamInstanceProfile.arn

    • resource.instanceDetails.iamInstanceProfile.id

    • resource.instanceDetails.imageDescription

    • resource.instanceDetails.imageId

    • resource.instanceDetails.instanceId

    • resource.instanceDetails.instanceState

    • resource.instanceDetails.instanceType

    • resource.instanceDetails.launchTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.instanceDetails.networkInterfaces.ipv6Addresses

    • resource.instanceDetails.networkInterfaces.networkInterfaceId

    • resource.instanceDetails.networkInterfaces.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddress

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    • resource.instanceDetails.networkInterfaces.publicDnsName

    • resource.instanceDetails.networkInterfaces.publicIp

    • resource.instanceDetails.networkInterfaces.securityGroups.groupId

    • resource.instanceDetails.networkInterfaces.securityGroups.groupName

    • resource.instanceDetails.networkInterfaces.subnetId

    • resource.instanceDetails.networkInterfaces.vpcId

    • resource.instanceDetails.outpostArn

    • resource.instanceDetails.platform

    • resource.instanceDetails.productCodes.productCodeId

    • resource.instanceDetails.productCodes.productCodeType

    • resource.instanceDetails.tags.key

    • resource.instanceDetails.tags.value

    • resource.kubernetesDetails.kubernetesUserDetails.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.username

    • resource.kubernetesDetails.kubernetesUserDetails.sessionName

    • resource.kubernetesDetails.kubernetesUserDetails.uid

    • resource.kubernetesDetails.kubernetesUserDetails.username

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.containerRuntime

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.id

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.privileged

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.mountPath

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostIpc

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostNetwork

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostPid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    • resource.kubernetesDetails.kubernetesWorkloadDetails.serviceAccountName

    • resource.kubernetesDetails.kubernetesWorkloadDetails.type

    • resource.kubernetesDetails.kubernetesWorkloadDetails.uid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.hostPath.path

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.name

    • resource.lambdaDetails.description

    • resource.lambdaDetails.functionArn

    • resource.lambdaDetails.functionName

    • resource.lambdaDetails.functionVersion

    • resource.lambdaDetails.lastModifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.lambdaDetails.revisionId

    • resource.lambdaDetails.role

    • resource.lambdaDetails.tags.key

    • resource.lambdaDetails.tags.value

    • resource.lambdaDetails.vpcConfig.securityGroups.groupId

    • resource.lambdaDetails.vpcConfig.securityGroups.groupName

    • resource.lambdaDetails.vpcConfig.subnetIds

    • resource.lambdaDetails.vpcConfig.vpcId

    • resource.rdsDbInstanceDetails.dbClusterIdentifier

    • resource.rdsDbInstanceDetails.dbInstanceArn

    • resource.rdsDbInstanceDetails.dbInstanceIdentifier

    • resource.rdsDbInstanceDetails.dbSecurityGroups.name

    • resource.rdsDbInstanceDetails.dbSecurityGroups.status

    • resource.rdsDbInstanceDetails.dbiResourceId

    • resource.rdsDbInstanceDetails.engine

    • resource.rdsDbInstanceDetails.engineVersion

    • resource.rdsDbInstanceDetails.iamDatabaseAuthenticationEnabled

    • resource.rdsDbInstanceDetails.publiclyAccessible

    • resource.rdsDbInstanceDetails.vpcId

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.status

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.vpcSecurityGroupId

    • resource.rdsDbUserDetails.application

    • resource.rdsDbUserDetails.authMethod

    • resource.rdsDbUserDetails.database

    • resource.rdsDbUserDetails.ssl

    • resource.rdsDbUserDetails.user

    • resource.rdsLimitlessDbDetails.dbClusterIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupArn

    • resource.rdsLimitlessDbDetails.dbShardGroupIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupResourceId

    • resource.rdsLimitlessDbDetails.engine

    • resource.rdsLimitlessDbDetails.engineVersion

    • resource.rdsLimitlessDbDetails.tags.key

    • resource.rdsLimitlessDbDetails.tags.value

    • resource.recoveryPointDetails.backupVaultName

    • resource.recoveryPointDetails.recoveryPointArn

    • resource.resourceType

    • resource.s3BucketDetails.arn

    • resource.s3BucketDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.s3BucketDetails.defaultServerSideEncryption.encryptionType

    • resource.s3BucketDetails.defaultServerSideEncryption.kmsMasterKeyArn

    • resource.s3BucketDetails.name

    • resource.s3BucketDetails.owner.id

    • resource.s3BucketDetails.publicAccess.effectivePermission

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicWriteAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicWriteAccess

    • resource.s3BucketDetails.s3ObjectDetails.eTag

    • resource.s3BucketDetails.s3ObjectDetails.hash

    • resource.s3BucketDetails.s3ObjectDetails.key

    • resource.s3BucketDetails.s3ObjectDetails.objectArn

    • resource.s3BucketDetails.s3ObjectDetails.versionId

    • resource.s3BucketDetails.tags.key

    • resource.s3BucketDetails.tags.value

    • resource.s3BucketDetails.type

    • schemaVersion

    • service.action.actionType

    • service.action.awsApiCallAction.api

    • service.action.awsApiCallAction.callerType

    • service.action.awsApiCallAction.domainDetails.domain

    • service.action.awsApiCallAction.errorCode

    • service.action.awsApiCallAction.remoteAccountDetails.accountId

    • service.action.awsApiCallAction.remoteAccountDetails.affiliated

    • service.action.awsApiCallAction.remoteAccountDetails.awsServiceName

    • service.action.awsApiCallAction.remoteIpDetails.city.cityName

    • service.action.awsApiCallAction.remoteIpDetails.country.countryCode

    • service.action.awsApiCallAction.remoteIpDetails.country.countryName

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.awsApiCallAction.remoteIpDetails.organization.asn

    • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.awsApiCallAction.remoteIpDetails.organization.isp

    • service.action.awsApiCallAction.remoteIpDetails.organization.org

    • service.action.awsApiCallAction.serviceName

    • service.action.awsApiCallAction.userAgent

    • service.action.dnsRequestAction.blocked

    • service.action.dnsRequestAction.domain

    • service.action.dnsRequestAction.domainWithSuffix

    • service.action.dnsRequestAction.protocol

    • service.action.dnsRequestAction.vpcOwnerAccountId

    • service.action.kubernetesApiCallAction.namespace

    • service.action.kubernetesApiCallAction.parameters

    • service.action.kubernetesApiCallAction.remoteIpDetails.city.cityName

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryCode

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryName

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.isp

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.org

    • service.action.kubernetesApiCallAction.requestUri

    • service.action.kubernetesApiCallAction.resource

    • service.action.kubernetesApiCallAction.resourceName

    • service.action.kubernetesApiCallAction.sourceIPs

    • service.action.kubernetesApiCallAction.statusCode

    • service.action.kubernetesApiCallAction.subresource

    • service.action.kubernetesApiCallAction.userAgent

    • service.action.kubernetesApiCallAction.verb

    • service.action.kubernetesPermissionCheckedDetails.allowed

    • service.action.kubernetesPermissionCheckedDetails.namespace

    • service.action.kubernetesPermissionCheckedDetails.resource

    • service.action.kubernetesPermissionCheckedDetails.verb

    • service.action.kubernetesRoleBindingDetails.kind

    • service.action.kubernetesRoleBindingDetails.name

    • service.action.kubernetesRoleBindingDetails.roleRefKind

    • service.action.kubernetesRoleBindingDetails.roleRefName

    • service.action.kubernetesRoleBindingDetails.uid

    • service.action.kubernetesRoleDetails.kind

    • service.action.kubernetesRoleDetails.name

    • service.action.kubernetesRoleDetails.uid

    • service.action.networkConnectionAction.blocked

    • service.action.networkConnectionAction.connectionDirection

    • service.action.networkConnectionAction.localIpDetails.ipAddressV4

    • service.action.networkConnectionAction.localIpDetails.ipAddressV6

    • service.action.networkConnectionAction.localNetworkInterface

    • service.action.networkConnectionAction.localPortDetails.port

    • service.action.networkConnectionAction.localPortDetails.portName

    • service.action.networkConnectionAction.protocol

    • service.action.networkConnectionAction.remoteIpDetails.city.cityName

    • service.action.networkConnectionAction.remoteIpDetails.country.countryCode

    • service.action.networkConnectionAction.remoteIpDetails.country.countryName

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lat

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lon

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    • service.action.networkConnectionAction.remoteIpDetails.organization.asn

    • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    • service.action.networkConnectionAction.remoteIpDetails.organization.isp

    • service.action.networkConnectionAction.remoteIpDetails.organization.org

    • service.action.networkConnectionAction.remotePortDetails.port

    • service.action.networkConnectionAction.remotePortDetails.portName

    • service.action.portProbeAction.blocked

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.localPortDetails.port

    • service.action.portProbeAction.portProbeDetails.localPortDetails.portName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.city.cityName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryCode

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lat

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lon

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asn

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asnOrg

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.isp

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.org

    • service.action.rdsLoginAttemptAction.loginAttributes.application

    • service.action.rdsLoginAttemptAction.loginAttributes.failedLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.successfulLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.user

    • service.action.rdsLoginAttemptAction.remoteIpDetails.city.cityName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryCode

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lat

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lon

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV4

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV6

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asn

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asnOrg

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.isp

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.org

    • service.additionalInfo.agentDetails.agentId

    • service.additionalInfo.agentDetails.agentVersion

    • service.additionalInfo.anomalies.anomalousAPIs

    • service.additionalInfo.authenticationMethod

    • service.additionalInfo.averagePacketSizeIn

    • service.additionalInfo.averagePacketSizeOut

    • service.additionalInfo.context

    • service.additionalInfo.domain

    • service.additionalInfo.inBytes

    • service.additionalInfo.localNetworkInterfaceOwner

    • service.additionalInfo.localPort

    • service.additionalInfo.outBytes

    • service.additionalInfo.packetsIn

    • service.additionalInfo.packetsOut

    • service.additionalInfo.policyArn

    • service.additionalInfo.policyName

    • service.additionalInfo.remotePort

    • service.additionalInfo.sample

    • service.additionalInfo.scannedPort

    • service.additionalInfo.threatFileSha256

    • service.additionalInfo.threatListName

    • service.additionalInfo.threatName

    • service.additionalInfo.totalBytesIn

    • service.additionalInfo.totalBytesOut

    • service.additionalInfo.type

    • service.additionalInfo.unusual.asnOrg

    • service.additionalInfo.unusual.port

    • service.additionalInfo.unusualProtocol

    • service.additionalInfo.userAgent.fullUserAgent

    • service.additionalInfo.userAgent.userAgentCategory

    • service.additionalInfo.value

    • service.additionalInfo.vpcOwnerAccountId

    • service.archived

    • service.count

    • service.detection.sequence.actors.id

    • service.detection.sequence.actors.process.name

    • service.detection.sequence.actors.process.path

    • service.detection.sequence.actors.process.sha256

    • service.detection.sequence.actors.session.createdTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.actors.session.issuer

    • service.detection.sequence.actors.session.mfaStatus

    • service.detection.sequence.actors.session.uid

    • service.detection.sequence.actors.user.account.account

    • service.detection.sequence.actors.user.account.uid

    • service.detection.sequence.actors.user.credentialUid

    • service.detection.sequence.actors.user.name

    • service.detection.sequence.actors.user.type

    • service.detection.sequence.actors.user.uid

    • service.detection.sequence.additionalSequenceTypes

    • service.detection.sequence.description

    • service.detection.sequence.endpoints.autonomousSystem.name

    • service.detection.sequence.endpoints.autonomousSystem.number

    • service.detection.sequence.endpoints.connection.direction

    • service.detection.sequence.endpoints.domain

    • service.detection.sequence.endpoints.id

    • service.detection.sequence.endpoints.ip

    • service.detection.sequence.endpoints.location.city

    • service.detection.sequence.endpoints.location.country

    • service.detection.sequence.endpoints.location.lat

    • service.detection.sequence.endpoints.location.lon

    • service.detection.sequence.endpoints.port

    • service.detection.sequence.resources.accountId

    • service.detection.sequence.resources.cloudPartition

    • service.detection.sequence.resources.data.accessKey.principalId

    • service.detection.sequence.resources.data.accessKey.userName

    • service.detection.sequence.resources.data.accessKey.userType

    • service.detection.sequence.resources.data.autoscalingAutoScalingGroup.ec2InstanceUids

    • service.detection.sequence.resources.data.cloudformationStack.ec2InstanceUids

    • service.detection.sequence.resources.data.container.image

    • service.detection.sequence.resources.data.container.imageUid

    • service.detection.sequence.resources.data.ec2Image.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2Instance.availabilityZone

    • service.detection.sequence.resources.data.ec2Instance.ec2NetworkInterfaceUids

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.arn

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.id

    • service.detection.sequence.resources.data.ec2Instance.imageDescription

    • service.detection.sequence.resources.data.ec2Instance.instanceState

    • service.detection.sequence.resources.data.ec2Instance.instanceType

    • service.detection.sequence.resources.data.ec2Instance.outpostArn

    • service.detection.sequence.resources.data.ec2Instance.platform

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeId

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeType

    • service.detection.sequence.resources.data.ec2LaunchTemplate.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2LaunchTemplate.version

    • service.detection.sequence.resources.data.ec2NetworkInterface.ipv6Addresses

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateDnsName

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateIpAddress

    • service.detection.sequence.resources.data.ec2NetworkInterface.publicIp

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupId

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupName

    • service.detection.sequence.resources.data.ec2NetworkInterface.subNetId

    • service.detection.sequence.resources.data.ec2NetworkInterface.vpcId

    • service.detection.sequence.resources.data.ec2Vpc.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.status

    • service.detection.sequence.resources.data.ecsTask.containerUids

    • service.detection.sequence.resources.data.ecsTask.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.ecsTask.launchType

    • service.detection.sequence.resources.data.ecsTask.taskDefinitionArn

    • service.detection.sequence.resources.data.eksCluster.arn

    • service.detection.sequence.resources.data.eksCluster.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.eksCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.eksCluster.status

    • service.detection.sequence.resources.data.eksCluster.vpcId

    • service.detection.sequence.resources.data.iamInstanceProfile.ec2InstanceUids

    • service.detection.sequence.resources.data.iamInstanceProfile.id

    • service.detection.sequence.resources.data.kubernetesWorkload.containerUids

    • service.detection.sequence.resources.data.kubernetesWorkload.namespace

    • service.detection.sequence.resources.data.kubernetesWorkload.type

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.s3Bucket.effectivePermission

    • service.detection.sequence.resources.data.s3Bucket.encryptionKeyArn

    • service.detection.sequence.resources.data.s3Bucket.encryptionType

    • service.detection.sequence.resources.data.s3Bucket.ownerId

    • service.detection.sequence.resources.data.s3Bucket.publicReadAccess

    • service.detection.sequence.resources.data.s3Bucket.publicWriteAccess

    • service.detection.sequence.resources.data.s3Bucket.s3ObjectUids

    • service.detection.sequence.resources.data.s3Object.eTag

    • service.detection.sequence.resources.data.s3Object.key

    • service.detection.sequence.resources.data.s3Object.versionId

    • service.detection.sequence.resources.name

    • service.detection.sequence.resources.region

    • service.detection.sequence.resources.resourceType

    • service.detection.sequence.resources.service

    • service.detection.sequence.resources.tags.key

    • service.detection.sequence.resources.tags.value

    • service.detection.sequence.resources.uid

    • service.detection.sequence.sequenceIndicators.key

    • service.detection.sequence.sequenceIndicators.title

    • service.detection.sequence.sequenceIndicators.values

    • service.detection.sequence.signals.actorIds

    • service.detection.sequence.signals.count

    • service.detection.sequence.signals.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.description

    • service.detection.sequence.signals.endpointIds

    • service.detection.sequence.signals.firstSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.lastSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.name

    • service.detection.sequence.signals.resourceUids

    • service.detection.sequence.signals.severity

    • service.detection.sequence.signals.signalIndicators.key

    • service.detection.sequence.signals.signalIndicators.title

    • service.detection.sequence.signals.signalIndicators.values

    • service.detection.sequence.signals.type

    • service.detection.sequence.signals.uid

    • service.detection.sequence.signals.updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.uid

    • service.detectorId

    • service.ebsVolumeScanDetails.scanCompletedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.count

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.severity

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.threatName

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.files

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.totalGb

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.volumes

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.shortened

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.fileName

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.filePath

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.volumeArn

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.uniqueThreatNameCount

    • service.ebsVolumeScanDetails.scanDetections.threatsDetectedItemCount.files

    • service.ebsVolumeScanDetails.scanId

    • service.ebsVolumeScanDetails.scanStartedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanType

    • service.ebsVolumeScanDetails.sources

    • service.ebsVolumeScanDetails.triggerFindingId

    • service.eventFirstSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.eventLastSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.evidence.threatIntelligenceDetails.threatFileSha256

    • service.evidence.threatIntelligenceDetails.threatListName

    • service.evidence.threatIntelligenceDetails.threatNames

    • service.featureName

    • service.malwareScanDetails.scanCategory

    • service.malwareScanDetails.scanConfiguration.incrementalScanDetails.baselineResourceArn

    • service.malwareScanDetails.scanConfiguration.triggerType

    • service.malwareScanDetails.scanId

    • service.malwareScanDetails.scanType

    • service.malwareScanDetails.threats.count

    • service.malwareScanDetails.threats.hash

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.deviceName

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.versionId

    • service.malwareScanDetails.threats.itemDetails.hash

    • service.malwareScanDetails.threats.itemDetails.itemPath

    • service.malwareScanDetails.threats.itemDetails.resourceArn

    • service.malwareScanDetails.threats.itemPaths.hash

    • service.malwareScanDetails.threats.itemPaths.nestedItemPath

    • service.malwareScanDetails.threats.name

    • service.malwareScanDetails.threats.source

    • service.malwareScanDetails.uniqueThreatCount

    • service.resourceRole

    • service.runtimeDetails.context.addressFamily

    • service.runtimeDetails.context.commandLineExample

    • service.runtimeDetails.context.fileOperation

    • service.runtimeDetails.context.filePath

    • service.runtimeDetails.context.fileSystemType

    • service.runtimeDetails.context.flags

    • service.runtimeDetails.context.ianaProtocolNumber

    • service.runtimeDetails.context.ldPreloadValue

    • service.runtimeDetails.context.libraryPath

    • service.runtimeDetails.context.memoryRegions

    • service.runtimeDetails.context.modifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.euid

    • service.runtimeDetails.context.modifyingProcess.executablePath

    • service.runtimeDetails.context.modifyingProcess.executableSha256

    • service.runtimeDetails.context.modifyingProcess.lineage.euid

    • service.runtimeDetails.context.modifyingProcess.lineage.executablePath

    • service.runtimeDetails.context.modifyingProcess.lineage.name

    • service.runtimeDetails.context.modifyingProcess.lineage.namespacePid

    • service.runtimeDetails.context.modifyingProcess.lineage.parentUuid

    • service.runtimeDetails.context.modifyingProcess.lineage.pid

    • service.runtimeDetails.context.modifyingProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.lineage.userId

    • service.runtimeDetails.context.modifyingProcess.lineage.uuid

    • service.runtimeDetails.context.modifyingProcess.name

    • service.runtimeDetails.context.modifyingProcess.namespacePid

    • service.runtimeDetails.context.modifyingProcess.parentUuid

    • service.runtimeDetails.context.modifyingProcess.pid

    • service.runtimeDetails.context.modifyingProcess.pwd

    • service.runtimeDetails.context.modifyingProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.user

    • service.runtimeDetails.context.modifyingProcess.userId

    • service.runtimeDetails.context.modifyingProcess.uuid

    • service.runtimeDetails.context.moduleFilePath

    • service.runtimeDetails.context.moduleName

    • service.runtimeDetails.context.moduleSha256

    • service.runtimeDetails.context.mountSource

    • service.runtimeDetails.context.mountTarget

    • service.runtimeDetails.context.relatedFilePaths

    • service.runtimeDetails.context.releaseAgentPath

    • service.runtimeDetails.context.runcBinaryPath

    • service.runtimeDetails.context.scriptPath

    • service.runtimeDetails.context.serviceName

    • service.runtimeDetails.context.shellHistoryFilePath

    • service.runtimeDetails.context.socketPath

    • service.runtimeDetails.context.targetProcess.euid

    • service.runtimeDetails.context.targetProcess.executablePath

    • service.runtimeDetails.context.targetProcess.executableSha256

    • service.runtimeDetails.context.targetProcess.lineage.euid

    • service.runtimeDetails.context.targetProcess.lineage.executablePath

    • service.runtimeDetails.context.targetProcess.lineage.name

    • service.runtimeDetails.context.targetProcess.lineage.namespacePid

    • service.runtimeDetails.context.targetProcess.lineage.parentUuid

    • service.runtimeDetails.context.targetProcess.lineage.pid

    • service.runtimeDetails.context.targetProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.lineage.userId

    • service.runtimeDetails.context.targetProcess.lineage.uuid

    • service.runtimeDetails.context.targetProcess.name

    • service.runtimeDetails.context.targetProcess.namespacePid

    • service.runtimeDetails.context.targetProcess.parentUuid

    • service.runtimeDetails.context.targetProcess.pid

    • service.runtimeDetails.context.targetProcess.pwd

    • service.runtimeDetails.context.targetProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.user

    • service.runtimeDetails.context.targetProcess.userId

    • service.runtimeDetails.context.targetProcess.uuid

    • service.runtimeDetails.context.threatFilePath

    • service.runtimeDetails.context.toolCategory

    • service.runtimeDetails.context.toolName

    • service.runtimeDetails.process.euid

    • service.runtimeDetails.process.executablePath

    • service.runtimeDetails.process.executableSha256

    • service.runtimeDetails.process.lineage.euid

    • service.runtimeDetails.process.lineage.executablePath

    • service.runtimeDetails.process.lineage.name

    • service.runtimeDetails.process.lineage.namespacePid

    • service.runtimeDetails.process.lineage.parentUuid

    • service.runtimeDetails.process.lineage.pid

    • service.runtimeDetails.process.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.lineage.userId

    • service.runtimeDetails.process.lineage.uuid

    • service.runtimeDetails.process.name

    • service.runtimeDetails.process.namespacePid

    • service.runtimeDetails.process.parentUuid

    • service.runtimeDetails.process.pid

    • service.runtimeDetails.process.pwd

    • service.runtimeDetails.process.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.user

    • service.runtimeDetails.process.userId

    • service.runtimeDetails.process.uuid

    • service.serviceName

    • service.userFeedback

    • severity

      To configure severity based filters, use the following for the FindingCriteria condition:

      • Low: [\"1\", \"2\", \"3\"]

      • Medium: [\"4\", \"5\", \"6\"]

      • High: [\"7\", \"8\"]

      • Critical: [\"9\", \"10\"]

      For more information, see Findings severity levels in the Amazon GuardDuty User Guide.

    • type

    • updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    ", "locationName":"findingCriteria" }, "ClientToken":{ @@ -11663,7 +11663,7 @@ }, "FindingCriteria":{ "shape":"FindingCriteria", - "documentation":"

    Represents the criteria to be used in the filter for querying findings. The following fields are available for filtering:

    • accountId

    • arn

    • associatedAttackSequenceArn

    • confidence

    • createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • description

    • id

    • partition

    • region

    • resource.accessKeyDetails.accessKeyId

    • resource.accessKeyDetails.principalId

    • resource.accessKeyDetails.userIdentity.accessKeyId

    • resource.accessKeyDetails.userIdentity.accountId

    • resource.accessKeyDetails.userIdentity.arn

    • resource.accessKeyDetails.userIdentity.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.attributes.mfaAuthenticated

    • resource.accessKeyDetails.userIdentity.sessionContext.ec2RoleDelivery

    • resource.accessKeyDetails.userIdentity.sessionContext.invokedBy

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.accountId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.arn

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.type

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.userName

    • resource.accessKeyDetails.userIdentity.sessionContext.sourceIdentity

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.attributes

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.federatedProvider

    • resource.accessKeyDetails.userIdentity.type

    • resource.accessKeyDetails.userIdentity.userName

    • resource.accessKeyDetails.userName

    • resource.accessKeyDetails.userType

    • resource.bedrockGuardrailDetails.guardrailArn

    • resource.bedrockGuardrailDetails.guardrailVersion

    • resource.containerDetails.containerRuntime

    • resource.containerDetails.id

    • resource.containerDetails.image

    • resource.containerDetails.imagePrefix

    • resource.containerDetails.name

    • resource.containerDetails.securityContext.allowPrivilegeEscalation

    • resource.containerDetails.securityContext.privileged

    • resource.containerDetails.volumeMounts.mountPath

    • resource.containerDetails.volumeMounts.name

    • resource.ebsSnapshotDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.scannedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.scannedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeType

    • resource.ebsVolumeDetails.skippedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.skippedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.skippedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeType

    • resource.ec2ImageDetails.imageArn

    • resource.ecsClusterDetails.activeServicesCount

    • resource.ecsClusterDetails.arn

    • resource.ecsClusterDetails.name

    • resource.ecsClusterDetails.registeredContainerInstancesCount

    • resource.ecsClusterDetails.runningTasksCount

    • resource.ecsClusterDetails.status

    • resource.ecsClusterDetails.tags.key

    • resource.ecsClusterDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.arn

    • resource.ecsClusterDetails.taskDetails.containers.containerRuntime

    • resource.ecsClusterDetails.taskDetails.containers.id

    • resource.ecsClusterDetails.taskDetails.containers.image

    • resource.ecsClusterDetails.taskDetails.containers.imagePrefix

    • resource.ecsClusterDetails.taskDetails.containers.name

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.privileged

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.mountPath

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.name

    • resource.ecsClusterDetails.taskDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.definitionArn

    • resource.ecsClusterDetails.taskDetails.group

    • resource.ecsClusterDetails.taskDetails.launchType

    • resource.ecsClusterDetails.taskDetails.startedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.startedBy

    • resource.ecsClusterDetails.taskDetails.tags.key

    • resource.ecsClusterDetails.taskDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.version

    • resource.ecsClusterDetails.taskDetails.volumes.hostPath.path

    • resource.ecsClusterDetails.taskDetails.volumes.name

    • resource.eksClusterDetails.arn

    • resource.eksClusterDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.eksClusterDetails.name

    • resource.eksClusterDetails.status

    • resource.eksClusterDetails.tags.key

    • resource.eksClusterDetails.tags.value

    • resource.eksClusterDetails.vpcId

    • resource.instanceDetails.availabilityZone

    • resource.instanceDetails.iamInstanceProfile.arn

    • resource.instanceDetails.iamInstanceProfile.id

    • resource.instanceDetails.imageDescription

    • resource.instanceDetails.imageId

    • resource.instanceDetails.instanceId

    • resource.instanceDetails.instanceState

    • resource.instanceDetails.instanceType

    • resource.instanceDetails.launchTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.instanceDetails.networkInterfaces.ipv6Addresses

    • resource.instanceDetails.networkInterfaces.networkInterfaceId

    • resource.instanceDetails.networkInterfaces.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddress

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    • resource.instanceDetails.networkInterfaces.publicDnsName

    • resource.instanceDetails.networkInterfaces.publicIp

    • resource.instanceDetails.networkInterfaces.securityGroups.groupId

    • resource.instanceDetails.networkInterfaces.securityGroups.groupName

    • resource.instanceDetails.networkInterfaces.subnetId

    • resource.instanceDetails.networkInterfaces.vpcId

    • resource.instanceDetails.outpostArn

    • resource.instanceDetails.platform

    • resource.instanceDetails.productCodes.productCodeId

    • resource.instanceDetails.productCodes.productCodeType

    • resource.instanceDetails.tags.key

    • resource.instanceDetails.tags.value

    • resource.kubernetesDetails.kubernetesUserDetails.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.username

    • resource.kubernetesDetails.kubernetesUserDetails.sessionName

    • resource.kubernetesDetails.kubernetesUserDetails.uid

    • resource.kubernetesDetails.kubernetesUserDetails.username

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.containerRuntime

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.id

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.privileged

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.mountPath

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostIpc

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostNetwork

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostPid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    • resource.kubernetesDetails.kubernetesWorkloadDetails.serviceAccountName

    • resource.kubernetesDetails.kubernetesWorkloadDetails.type

    • resource.kubernetesDetails.kubernetesWorkloadDetails.uid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.hostPath.path

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.name

    • resource.lambdaDetails.description

    • resource.lambdaDetails.functionArn

    • resource.lambdaDetails.functionName

    • resource.lambdaDetails.functionVersion

    • resource.lambdaDetails.lastModifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.lambdaDetails.revisionId

    • resource.lambdaDetails.role

    • resource.lambdaDetails.tags.key

    • resource.lambdaDetails.tags.value

    • resource.lambdaDetails.vpcConfig.securityGroups.groupId

    • resource.lambdaDetails.vpcConfig.securityGroups.groupName

    • resource.lambdaDetails.vpcConfig.subnetIds

    • resource.lambdaDetails.vpcConfig.vpcId

    • resource.rdsDbInstanceDetails.dbClusterIdentifier

    • resource.rdsDbInstanceDetails.dbInstanceArn

    • resource.rdsDbInstanceDetails.dbInstanceIdentifier

    • resource.rdsDbInstanceDetails.dbSecurityGroups.name

    • resource.rdsDbInstanceDetails.dbSecurityGroups.status

    • resource.rdsDbInstanceDetails.dbiResourceId

    • resource.rdsDbInstanceDetails.engine

    • resource.rdsDbInstanceDetails.engineVersion

    • resource.rdsDbInstanceDetails.iamDatabaseAuthenticationEnabled

    • resource.rdsDbInstanceDetails.publiclyAccessible

    • resource.rdsDbInstanceDetails.tags.key

    • resource.rdsDbInstanceDetails.tags.value

    • resource.rdsDbInstanceDetails.vpcId

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.status

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.vpcSecurityGroupId

    • resource.rdsDbUserDetails.application

    • resource.rdsDbUserDetails.authMethod

    • resource.rdsDbUserDetails.database

    • resource.rdsDbUserDetails.ssl

    • resource.rdsDbUserDetails.user

    • resource.rdsLimitlessDbDetails.dbClusterIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupArn

    • resource.rdsLimitlessDbDetails.dbShardGroupIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupResourceId

    • resource.rdsLimitlessDbDetails.engine

    • resource.rdsLimitlessDbDetails.engineVersion

    • resource.rdsLimitlessDbDetails.tags.key

    • resource.rdsLimitlessDbDetails.tags.value

    • resource.recoveryPointDetails.backupVaultName

    • resource.recoveryPointDetails.recoveryPointArn

    • resource.resourceType

    • resource.s3BucketDetails.arn

    • resource.s3BucketDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.s3BucketDetails.defaultServerSideEncryption.encryptionType

    • resource.s3BucketDetails.defaultServerSideEncryption.kmsMasterKeyArn

    • resource.s3BucketDetails.name

    • resource.s3BucketDetails.owner.id

    • resource.s3BucketDetails.publicAccess.effectivePermission

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicWriteAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicWriteAccess

    • resource.s3BucketDetails.s3ObjectDetails.eTag

    • resource.s3BucketDetails.s3ObjectDetails.hash

    • resource.s3BucketDetails.s3ObjectDetails.key

    • resource.s3BucketDetails.s3ObjectDetails.objectArn

    • resource.s3BucketDetails.s3ObjectDetails.versionId

    • resource.s3BucketDetails.tags.key

    • resource.s3BucketDetails.tags.value

    • resource.s3BucketDetails.type

    • schemaVersion

    • service.action.actionType

    • service.action.awsApiCallAction.affectedResources

    • service.action.awsApiCallAction.api

    • service.action.awsApiCallAction.callerType

    • service.action.awsApiCallAction.domainDetails.domain

    • service.action.awsApiCallAction.errorCode

    • service.action.awsApiCallAction.remoteAccountDetails.accountId

    • service.action.awsApiCallAction.remoteAccountDetails.affiliated

    • service.action.awsApiCallAction.remoteAccountDetails.awsServiceName

    • service.action.awsApiCallAction.remoteIpDetails.city.cityName

    • service.action.awsApiCallAction.remoteIpDetails.country.countryCode

    • service.action.awsApiCallAction.remoteIpDetails.country.countryName

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.awsApiCallAction.remoteIpDetails.organization.asn

    • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.awsApiCallAction.remoteIpDetails.organization.isp

    • service.action.awsApiCallAction.remoteIpDetails.organization.org

    • service.action.awsApiCallAction.serviceName

    • service.action.awsApiCallAction.userAgent

    • service.action.dnsRequestAction.blocked

    • service.action.dnsRequestAction.domain

    • service.action.dnsRequestAction.domainWithSuffix

    • service.action.dnsRequestAction.protocol

    • service.action.dnsRequestAction.vpcOwnerAccountId

    • service.action.kubernetesApiCallAction.namespace

    • service.action.kubernetesApiCallAction.parameters

    • service.action.kubernetesApiCallAction.remoteIpDetails.city.cityName

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryCode

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryName

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.isp

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.org

    • service.action.kubernetesApiCallAction.requestUri

    • service.action.kubernetesApiCallAction.resource

    • service.action.kubernetesApiCallAction.resourceName

    • service.action.kubernetesApiCallAction.sourceIPs

    • service.action.kubernetesApiCallAction.statusCode

    • service.action.kubernetesApiCallAction.subresource

    • service.action.kubernetesApiCallAction.userAgent

    • service.action.kubernetesApiCallAction.verb

    • service.action.kubernetesPermissionCheckedDetails.allowed

    • service.action.kubernetesPermissionCheckedDetails.namespace

    • service.action.kubernetesPermissionCheckedDetails.resource

    • service.action.kubernetesPermissionCheckedDetails.verb

    • service.action.kubernetesRoleBindingDetails.kind

    • service.action.kubernetesRoleBindingDetails.name

    • service.action.kubernetesRoleBindingDetails.roleRefKind

    • service.action.kubernetesRoleBindingDetails.roleRefName

    • service.action.kubernetesRoleBindingDetails.uid

    • service.action.kubernetesRoleDetails.kind

    • service.action.kubernetesRoleDetails.name

    • service.action.kubernetesRoleDetails.uid

    • service.action.networkConnectionAction.blocked

    • service.action.networkConnectionAction.connectionDirection

    • service.action.networkConnectionAction.localIpDetails.ipAddressV4

    • service.action.networkConnectionAction.localIpDetails.ipAddressV6

    • service.action.networkConnectionAction.localNetworkInterface

    • service.action.networkConnectionAction.localPortDetails.port

    • service.action.networkConnectionAction.localPortDetails.portName

    • service.action.networkConnectionAction.protocol

    • service.action.networkConnectionAction.remoteIpDetails.city.cityName

    • service.action.networkConnectionAction.remoteIpDetails.country.countryCode

    • service.action.networkConnectionAction.remoteIpDetails.country.countryName

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lat

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lon

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    • service.action.networkConnectionAction.remoteIpDetails.organization.asn

    • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    • service.action.networkConnectionAction.remoteIpDetails.organization.isp

    • service.action.networkConnectionAction.remoteIpDetails.organization.org

    • service.action.networkConnectionAction.remotePortDetails.port

    • service.action.networkConnectionAction.remotePortDetails.portName

    • service.action.portProbeAction.blocked

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.localPortDetails.port

    • service.action.portProbeAction.portProbeDetails.localPortDetails.portName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.city.cityName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryCode

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lat

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lon

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asn

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asnOrg

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.isp

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.org

    • service.action.rdsLoginAttemptAction.loginAttributes.application

    • service.action.rdsLoginAttemptAction.loginAttributes.failedLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.successfulLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.user

    • service.action.rdsLoginAttemptAction.remoteIpDetails.city.cityName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryCode

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lat

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lon

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV4

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV6

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asn

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asnOrg

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.isp

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.org

    • service.additionalInfo.agentDetails.agentId

    • service.additionalInfo.agentDetails.agentVersion

    • service.additionalInfo.anomalies.anomalousAPIs

    • service.additionalInfo.authenticationMethod

    • service.additionalInfo.averagePacketSizeIn

    • service.additionalInfo.averagePacketSizeOut

    • service.additionalInfo.context

    • service.additionalInfo.domain

    • service.additionalInfo.inBytes

    • service.additionalInfo.localNetworkInterfaceOwner

    • service.additionalInfo.localPort

    • service.additionalInfo.outBytes

    • service.additionalInfo.packetsIn

    • service.additionalInfo.packetsOut

    • service.additionalInfo.policyArn

    • service.additionalInfo.policyName

    • service.additionalInfo.remotePort

    • service.additionalInfo.sample

    • service.additionalInfo.scannedPort

    • service.additionalInfo.threatFileSha256

    • service.additionalInfo.threatListName

    • service.additionalInfo.threatName

    • service.additionalInfo.totalBytesIn

    • service.additionalInfo.totalBytesOut

    • service.additionalInfo.type

    • service.additionalInfo.unusual.asnOrg

    • service.additionalInfo.unusual.port

    • service.additionalInfo.unusualProtocol

    • service.additionalInfo.userAgent.fullUserAgent

    • service.additionalInfo.userAgent.userAgentCategory

    • service.additionalInfo.value

    • service.additionalInfo.vpcOwnerAccountId

    • service.archived

    • service.count

    • service.detection.anomaly.profiles

    • service.detection.anomaly.unusual.behavior

    • service.detection.sequence.actors.id

    • service.detection.sequence.actors.process.name

    • service.detection.sequence.actors.process.path

    • service.detection.sequence.actors.process.sha256

    • service.detection.sequence.actors.session.createdTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.actors.session.issuer

    • service.detection.sequence.actors.session.mfaStatus

    • service.detection.sequence.actors.session.uid

    • service.detection.sequence.actors.user.account.account

    • service.detection.sequence.actors.user.account.uid

    • service.detection.sequence.actors.user.credentialUid

    • service.detection.sequence.actors.user.name

    • service.detection.sequence.actors.user.type

    • service.detection.sequence.actors.user.uid

    • service.detection.sequence.additionalSequenceTypes

    • service.detection.sequence.description

    • service.detection.sequence.endpoints.autonomousSystem.name

    • service.detection.sequence.endpoints.autonomousSystem.number

    • service.detection.sequence.endpoints.connection.direction

    • service.detection.sequence.endpoints.domain

    • service.detection.sequence.endpoints.id

    • service.detection.sequence.endpoints.ip

    • service.detection.sequence.endpoints.location.city

    • service.detection.sequence.endpoints.location.country

    • service.detection.sequence.endpoints.location.lat

    • service.detection.sequence.endpoints.location.lon

    • service.detection.sequence.endpoints.port

    • service.detection.sequence.resources.accountId

    • service.detection.sequence.resources.cloudPartition

    • service.detection.sequence.resources.data.accessKey.principalId

    • service.detection.sequence.resources.data.accessKey.userName

    • service.detection.sequence.resources.data.accessKey.userType

    • service.detection.sequence.resources.data.autoscalingAutoScalingGroup.ec2InstanceUids

    • service.detection.sequence.resources.data.cloudformationStack.ec2InstanceUids

    • service.detection.sequence.resources.data.container.image

    • service.detection.sequence.resources.data.container.imageUid

    • service.detection.sequence.resources.data.ec2Image.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2Instance.availabilityZone

    • service.detection.sequence.resources.data.ec2Instance.ec2NetworkInterfaceUids

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.arn

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.id

    • service.detection.sequence.resources.data.ec2Instance.imageDescription

    • service.detection.sequence.resources.data.ec2Instance.instanceState

    • service.detection.sequence.resources.data.ec2Instance.instanceType

    • service.detection.sequence.resources.data.ec2Instance.outpostArn

    • service.detection.sequence.resources.data.ec2Instance.platform

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeId

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeType

    • service.detection.sequence.resources.data.ec2LaunchTemplate.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2LaunchTemplate.version

    • service.detection.sequence.resources.data.ec2NetworkInterface.ipv6Addresses

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateDnsName

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateIpAddress

    • service.detection.sequence.resources.data.ec2NetworkInterface.publicIp

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupId

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupName

    • service.detection.sequence.resources.data.ec2NetworkInterface.subNetId

    • service.detection.sequence.resources.data.ec2NetworkInterface.vpcId

    • service.detection.sequence.resources.data.ec2Vpc.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.status

    • service.detection.sequence.resources.data.ecsTask.containerUids

    • service.detection.sequence.resources.data.ecsTask.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.ecsTask.launchType

    • service.detection.sequence.resources.data.ecsTask.taskDefinitionArn

    • service.detection.sequence.resources.data.eksCluster.arn

    • service.detection.sequence.resources.data.eksCluster.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.eksCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.eksCluster.status

    • service.detection.sequence.resources.data.eksCluster.vpcId

    • service.detection.sequence.resources.data.iamInstanceProfile.ec2InstanceUids

    • service.detection.sequence.resources.data.iamInstanceProfile.id

    • service.detection.sequence.resources.data.kubernetesWorkload.containerUids

    • service.detection.sequence.resources.data.kubernetesWorkload.namespace

    • service.detection.sequence.resources.data.kubernetesWorkload.type

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.s3Bucket.effectivePermission

    • service.detection.sequence.resources.data.s3Bucket.encryptionKeyArn

    • service.detection.sequence.resources.data.s3Bucket.encryptionType

    • service.detection.sequence.resources.data.s3Bucket.ownerId

    • service.detection.sequence.resources.data.s3Bucket.publicReadAccess

    • service.detection.sequence.resources.data.s3Bucket.publicWriteAccess

    • service.detection.sequence.resources.data.s3Bucket.s3ObjectUids

    • service.detection.sequence.resources.data.s3Object.eTag

    • service.detection.sequence.resources.data.s3Object.key

    • service.detection.sequence.resources.data.s3Object.versionId

    • service.detection.sequence.resources.name

    • service.detection.sequence.resources.region

    • service.detection.sequence.resources.resourceType

    • service.detection.sequence.resources.service

    • service.detection.sequence.resources.tags.key

    • service.detection.sequence.resources.tags.value

    • service.detection.sequence.resources.uid

    • service.detection.sequence.sequenceIndicators.key

    • service.detection.sequence.sequenceIndicators.title

    • service.detection.sequence.sequenceIndicators.values

    • service.detection.sequence.signals.actorIds

    • service.detection.sequence.signals.count

    • service.detection.sequence.signals.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.description

    • service.detection.sequence.signals.endpointIds

    • service.detection.sequence.signals.firstSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.lastSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.name

    • service.detection.sequence.signals.resourceUids

    • service.detection.sequence.signals.severity

    • service.detection.sequence.signals.signalIndicators.key

    • service.detection.sequence.signals.signalIndicators.title

    • service.detection.sequence.signals.signalIndicators.values

    • service.detection.sequence.signals.type

    • service.detection.sequence.signals.uid

    • service.detection.sequence.signals.updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.uid

    • service.detectorId

    • service.ebsVolumeScanDetails.scanCompletedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.count

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.severity

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.threatName

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.files

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.totalGb

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.volumes

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.shortened

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.fileName

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.filePath

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.volumeArn

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.uniqueThreatNameCount

    • service.ebsVolumeScanDetails.scanDetections.threatsDetectedItemCount.files

    • service.ebsVolumeScanDetails.scanId

    • service.ebsVolumeScanDetails.scanStartedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanType

    • service.ebsVolumeScanDetails.sources

    • service.ebsVolumeScanDetails.triggerFindingId

    • service.eventFirstSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.eventLastSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.evidence.threatIntelligenceDetails.threatFileSha256

    • service.evidence.threatIntelligenceDetails.threatListName

    • service.evidence.threatIntelligenceDetails.threatNames

    • service.featureName

    • service.malwareScanDetails.scanCategory

    • service.malwareScanDetails.scanConfiguration.incrementalScanDetails.baselineResourceArn

    • service.malwareScanDetails.scanConfiguration.triggerType

    • service.malwareScanDetails.scanId

    • service.malwareScanDetails.scanType

    • service.malwareScanDetails.threats.count

    • service.malwareScanDetails.threats.hash

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.deviceName

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.versionId

    • service.malwareScanDetails.threats.itemDetails.hash

    • service.malwareScanDetails.threats.itemDetails.itemPath

    • service.malwareScanDetails.threats.itemDetails.resourceArn

    • service.malwareScanDetails.threats.itemPaths.hash

    • service.malwareScanDetails.threats.itemPaths.nestedItemPath

    • service.malwareScanDetails.threats.name

    • service.malwareScanDetails.threats.source

    • service.malwareScanDetails.uniqueThreatCount

    • service.resourceRole

    • service.runtimeDetails.context.addressFamily

    • service.runtimeDetails.context.commandLineExample

    • service.runtimeDetails.context.fileOperation

    • service.runtimeDetails.context.filePath

    • service.runtimeDetails.context.fileSystemType

    • service.runtimeDetails.context.flags

    • service.runtimeDetails.context.ianaProtocolNumber

    • service.runtimeDetails.context.ldPreloadValue

    • service.runtimeDetails.context.libraryPath

    • service.runtimeDetails.context.memoryRegions

    • service.runtimeDetails.context.modifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.euid

    • service.runtimeDetails.context.modifyingProcess.executablePath

    • service.runtimeDetails.context.modifyingProcess.executableSha256

    • service.runtimeDetails.context.modifyingProcess.lineage.euid

    • service.runtimeDetails.context.modifyingProcess.lineage.executablePath

    • service.runtimeDetails.context.modifyingProcess.lineage.name

    • service.runtimeDetails.context.modifyingProcess.lineage.namespacePid

    • service.runtimeDetails.context.modifyingProcess.lineage.parentUuid

    • service.runtimeDetails.context.modifyingProcess.lineage.pid

    • service.runtimeDetails.context.modifyingProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.lineage.userId

    • service.runtimeDetails.context.modifyingProcess.lineage.uuid

    • service.runtimeDetails.context.modifyingProcess.name

    • service.runtimeDetails.context.modifyingProcess.namespacePid

    • service.runtimeDetails.context.modifyingProcess.parentUuid

    • service.runtimeDetails.context.modifyingProcess.pid

    • service.runtimeDetails.context.modifyingProcess.pwd

    • service.runtimeDetails.context.modifyingProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.user

    • service.runtimeDetails.context.modifyingProcess.userId

    • service.runtimeDetails.context.modifyingProcess.uuid

    • service.runtimeDetails.context.moduleFilePath

    • service.runtimeDetails.context.moduleName

    • service.runtimeDetails.context.moduleSha256

    • service.runtimeDetails.context.mountSource

    • service.runtimeDetails.context.mountTarget

    • service.runtimeDetails.context.relatedFilePaths

    • service.runtimeDetails.context.releaseAgentPath

    • service.runtimeDetails.context.runcBinaryPath

    • service.runtimeDetails.context.scriptPath

    • service.runtimeDetails.context.serviceName

    • service.runtimeDetails.context.shellHistoryFilePath

    • service.runtimeDetails.context.socketPath

    • service.runtimeDetails.context.targetProcess.euid

    • service.runtimeDetails.context.targetProcess.executablePath

    • service.runtimeDetails.context.targetProcess.executableSha256

    • service.runtimeDetails.context.targetProcess.lineage.euid

    • service.runtimeDetails.context.targetProcess.lineage.executablePath

    • service.runtimeDetails.context.targetProcess.lineage.name

    • service.runtimeDetails.context.targetProcess.lineage.namespacePid

    • service.runtimeDetails.context.targetProcess.lineage.parentUuid

    • service.runtimeDetails.context.targetProcess.lineage.pid

    • service.runtimeDetails.context.targetProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.lineage.userId

    • service.runtimeDetails.context.targetProcess.lineage.uuid

    • service.runtimeDetails.context.targetProcess.name

    • service.runtimeDetails.context.targetProcess.namespacePid

    • service.runtimeDetails.context.targetProcess.parentUuid

    • service.runtimeDetails.context.targetProcess.pid

    • service.runtimeDetails.context.targetProcess.pwd

    • service.runtimeDetails.context.targetProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.user

    • service.runtimeDetails.context.targetProcess.userId

    • service.runtimeDetails.context.targetProcess.uuid

    • service.runtimeDetails.context.threatFilePath

    • service.runtimeDetails.context.toolCategory

    • service.runtimeDetails.context.toolName

    • service.runtimeDetails.process.euid

    • service.runtimeDetails.process.executablePath

    • service.runtimeDetails.process.executableSha256

    • service.runtimeDetails.process.lineage.euid

    • service.runtimeDetails.process.lineage.executablePath

    • service.runtimeDetails.process.lineage.name

    • service.runtimeDetails.process.lineage.namespacePid

    • service.runtimeDetails.process.lineage.parentUuid

    • service.runtimeDetails.process.lineage.pid

    • service.runtimeDetails.process.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.lineage.userId

    • service.runtimeDetails.process.lineage.uuid

    • service.runtimeDetails.process.name

    • service.runtimeDetails.process.namespacePid

    • service.runtimeDetails.process.parentUuid

    • service.runtimeDetails.process.pid

    • service.runtimeDetails.process.pwd

    • service.runtimeDetails.process.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.user

    • service.runtimeDetails.process.userId

    • service.runtimeDetails.process.uuid

    • service.serviceName

    • service.userFeedback

    • severity

      To configure severity based filters, use the following for the FindingCriteria condition:

      • Low: [\"1\", \"2\", \"3\"]

      • Medium: [\"4\", \"5\", \"6\"]

      • High: [\"7\", \"8\"]

      • Critical: [\"9\", \"10\"]

      For more information, see Findings severity levels in the Amazon GuardDuty User Guide.

    • title

    • type

    • updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    ", + "documentation":"

    Represents the criteria to be used in the filter for querying findings. The following fields are available for filtering:

    • accountId

    • arn

    • associatedAttackSequenceArn

    • confidence

    • createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • id

    • partition

    • region

    • resource.accessKeyDetails.accessKeyId

    • resource.accessKeyDetails.principalId

    • resource.accessKeyDetails.userIdentity.accessKeyId

    • resource.accessKeyDetails.userIdentity.accountId

    • resource.accessKeyDetails.userIdentity.arn

    • resource.accessKeyDetails.userIdentity.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.attributes.mfaAuthenticated

    • resource.accessKeyDetails.userIdentity.sessionContext.ec2RoleDelivery

    • resource.accessKeyDetails.userIdentity.sessionContext.invokedBy

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.accountId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.arn

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.principalId

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.type

    • resource.accessKeyDetails.userIdentity.sessionContext.sessionIssuer.userName

    • resource.accessKeyDetails.userIdentity.sessionContext.sourceIdentity

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.attributes

    • resource.accessKeyDetails.userIdentity.sessionContext.webIdFederationData.federatedProvider

    • resource.accessKeyDetails.userIdentity.type

    • resource.accessKeyDetails.userIdentity.userName

    • resource.accessKeyDetails.userName

    • resource.accessKeyDetails.userType

    • resource.bedrockGuardrailDetails.guardrailArn

    • resource.bedrockGuardrailDetails.guardrailVersion

    • resource.containerDetails.containerRuntime

    • resource.containerDetails.id

    • resource.containerDetails.image

    • resource.containerDetails.imagePrefix

    • resource.containerDetails.name

    • resource.containerDetails.securityContext.allowPrivilegeEscalation

    • resource.containerDetails.securityContext.privileged

    • resource.containerDetails.volumeMounts.mountPath

    • resource.containerDetails.volumeMounts.name

    • resource.ebsSnapshotDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.scannedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.scannedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.scannedVolumeDetails.volumeType

    • resource.ebsVolumeDetails.skippedVolumeDetails.deviceName

    • resource.ebsVolumeDetails.skippedVolumeDetails.encryptionType

    • resource.ebsVolumeDetails.skippedVolumeDetails.kmsKeyArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.snapshotArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeArn

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeSizeInGB

    • resource.ebsVolumeDetails.skippedVolumeDetails.volumeType

    • resource.ec2ImageDetails.imageArn

    • resource.ecsClusterDetails.activeServicesCount

    • resource.ecsClusterDetails.arn

    • resource.ecsClusterDetails.name

    • resource.ecsClusterDetails.registeredContainerInstancesCount

    • resource.ecsClusterDetails.runningTasksCount

    • resource.ecsClusterDetails.status

    • resource.ecsClusterDetails.tags.key

    • resource.ecsClusterDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.arn

    • resource.ecsClusterDetails.taskDetails.containers.containerRuntime

    • resource.ecsClusterDetails.taskDetails.containers.id

    • resource.ecsClusterDetails.taskDetails.containers.image

    • resource.ecsClusterDetails.taskDetails.containers.imagePrefix

    • resource.ecsClusterDetails.taskDetails.containers.name

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.ecsClusterDetails.taskDetails.containers.securityContext.privileged

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.mountPath

    • resource.ecsClusterDetails.taskDetails.containers.volumeMounts.name

    • resource.ecsClusterDetails.taskDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.definitionArn

    • resource.ecsClusterDetails.taskDetails.group

    • resource.ecsClusterDetails.taskDetails.launchType

    • resource.ecsClusterDetails.taskDetails.startedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.ecsClusterDetails.taskDetails.startedBy

    • resource.ecsClusterDetails.taskDetails.tags.key

    • resource.ecsClusterDetails.taskDetails.tags.value

    • resource.ecsClusterDetails.taskDetails.version

    • resource.ecsClusterDetails.taskDetails.volumes.hostPath.path

    • resource.ecsClusterDetails.taskDetails.volumes.name

    • resource.eksClusterDetails.arn

    • resource.eksClusterDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.eksClusterDetails.name

    • resource.eksClusterDetails.status

    • resource.eksClusterDetails.tags.key

    • resource.eksClusterDetails.tags.value

    • resource.eksClusterDetails.vpcId

    • resource.instanceDetails.availabilityZone

    • resource.instanceDetails.iamInstanceProfile.arn

    • resource.instanceDetails.iamInstanceProfile.id

    • resource.instanceDetails.imageDescription

    • resource.instanceDetails.imageId

    • resource.instanceDetails.instanceId

    • resource.instanceDetails.instanceState

    • resource.instanceDetails.instanceType

    • resource.instanceDetails.launchTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.instanceDetails.networkInterfaces.ipv6Addresses

    • resource.instanceDetails.networkInterfaces.networkInterfaceId

    • resource.instanceDetails.networkInterfaces.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddress

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateDnsName

    • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    • resource.instanceDetails.networkInterfaces.publicDnsName

    • resource.instanceDetails.networkInterfaces.publicIp

    • resource.instanceDetails.networkInterfaces.securityGroups.groupId

    • resource.instanceDetails.networkInterfaces.securityGroups.groupName

    • resource.instanceDetails.networkInterfaces.subnetId

    • resource.instanceDetails.networkInterfaces.vpcId

    • resource.instanceDetails.outpostArn

    • resource.instanceDetails.platform

    • resource.instanceDetails.productCodes.productCodeId

    • resource.instanceDetails.productCodes.productCodeType

    • resource.instanceDetails.tags.key

    • resource.instanceDetails.tags.value

    • resource.kubernetesDetails.kubernetesUserDetails.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.groups

    • resource.kubernetesDetails.kubernetesUserDetails.impersonatedUser.username

    • resource.kubernetesDetails.kubernetesUserDetails.sessionName

    • resource.kubernetesDetails.kubernetesUserDetails.uid

    • resource.kubernetesDetails.kubernetesUserDetails.username

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.containerRuntime

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.id

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.allowPrivilegeEscalation

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.privileged

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.mountPath

    • resource.kubernetesDetails.kubernetesWorkloadDetails.containers.volumeMounts.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostIpc

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostNetwork

    • resource.kubernetesDetails.kubernetesWorkloadDetails.hostPid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.name

    • resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    • resource.kubernetesDetails.kubernetesWorkloadDetails.serviceAccountName

    • resource.kubernetesDetails.kubernetesWorkloadDetails.type

    • resource.kubernetesDetails.kubernetesWorkloadDetails.uid

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.hostPath.path

    • resource.kubernetesDetails.kubernetesWorkloadDetails.volumes.name

    • resource.lambdaDetails.description

    • resource.lambdaDetails.functionArn

    • resource.lambdaDetails.functionName

    • resource.lambdaDetails.functionVersion

    • resource.lambdaDetails.lastModifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.lambdaDetails.revisionId

    • resource.lambdaDetails.role

    • resource.lambdaDetails.tags.key

    • resource.lambdaDetails.tags.value

    • resource.lambdaDetails.vpcConfig.securityGroups.groupId

    • resource.lambdaDetails.vpcConfig.securityGroups.groupName

    • resource.lambdaDetails.vpcConfig.subnetIds

    • resource.lambdaDetails.vpcConfig.vpcId

    • resource.rdsDbInstanceDetails.dbClusterIdentifier

    • resource.rdsDbInstanceDetails.dbInstanceArn

    • resource.rdsDbInstanceDetails.dbInstanceIdentifier

    • resource.rdsDbInstanceDetails.dbSecurityGroups.name

    • resource.rdsDbInstanceDetails.dbSecurityGroups.status

    • resource.rdsDbInstanceDetails.dbiResourceId

    • resource.rdsDbInstanceDetails.engine

    • resource.rdsDbInstanceDetails.engineVersion

    • resource.rdsDbInstanceDetails.iamDatabaseAuthenticationEnabled

    • resource.rdsDbInstanceDetails.publiclyAccessible

    • resource.rdsDbInstanceDetails.vpcId

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.status

    • resource.rdsDbInstanceDetails.vpcSecurityGroups.vpcSecurityGroupId

    • resource.rdsDbUserDetails.application

    • resource.rdsDbUserDetails.authMethod

    • resource.rdsDbUserDetails.database

    • resource.rdsDbUserDetails.ssl

    • resource.rdsDbUserDetails.user

    • resource.rdsLimitlessDbDetails.dbClusterIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupArn

    • resource.rdsLimitlessDbDetails.dbShardGroupIdentifier

    • resource.rdsLimitlessDbDetails.dbShardGroupResourceId

    • resource.rdsLimitlessDbDetails.engine

    • resource.rdsLimitlessDbDetails.engineVersion

    • resource.rdsLimitlessDbDetails.tags.key

    • resource.rdsLimitlessDbDetails.tags.value

    • resource.recoveryPointDetails.backupVaultName

    • resource.recoveryPointDetails.recoveryPointArn

    • resource.resourceType

    • resource.s3BucketDetails.arn

    • resource.s3BucketDetails.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • resource.s3BucketDetails.defaultServerSideEncryption.encryptionType

    • resource.s3BucketDetails.defaultServerSideEncryption.kmsMasterKeyArn

    • resource.s3BucketDetails.name

    • resource.s3BucketDetails.owner.id

    • resource.s3BucketDetails.publicAccess.effectivePermission

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.accountLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.accessControlList.allowsPublicWriteAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.blockPublicPolicy

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.ignorePublicAcls

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.blockPublicAccess.restrictPublicBuckets

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicReadAccess

    • resource.s3BucketDetails.publicAccess.permissionConfiguration.bucketLevelPermissions.bucketPolicy.allowsPublicWriteAccess

    • resource.s3BucketDetails.s3ObjectDetails.eTag

    • resource.s3BucketDetails.s3ObjectDetails.hash

    • resource.s3BucketDetails.s3ObjectDetails.key

    • resource.s3BucketDetails.s3ObjectDetails.objectArn

    • resource.s3BucketDetails.s3ObjectDetails.versionId

    • resource.s3BucketDetails.tags.key

    • resource.s3BucketDetails.tags.value

    • resource.s3BucketDetails.type

    • schemaVersion

    • service.action.actionType

    • service.action.awsApiCallAction.api

    • service.action.awsApiCallAction.callerType

    • service.action.awsApiCallAction.domainDetails.domain

    • service.action.awsApiCallAction.errorCode

    • service.action.awsApiCallAction.remoteAccountDetails.accountId

    • service.action.awsApiCallAction.remoteAccountDetails.affiliated

    • service.action.awsApiCallAction.remoteAccountDetails.awsServiceName

    • service.action.awsApiCallAction.remoteIpDetails.city.cityName

    • service.action.awsApiCallAction.remoteIpDetails.country.countryCode

    • service.action.awsApiCallAction.remoteIpDetails.country.countryName

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.awsApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.awsApiCallAction.remoteIpDetails.organization.asn

    • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.awsApiCallAction.remoteIpDetails.organization.isp

    • service.action.awsApiCallAction.remoteIpDetails.organization.org

    • service.action.awsApiCallAction.serviceName

    • service.action.awsApiCallAction.userAgent

    • service.action.dnsRequestAction.blocked

    • service.action.dnsRequestAction.domain

    • service.action.dnsRequestAction.domainWithSuffix

    • service.action.dnsRequestAction.protocol

    • service.action.dnsRequestAction.vpcOwnerAccountId

    • service.action.kubernetesApiCallAction.namespace

    • service.action.kubernetesApiCallAction.parameters

    • service.action.kubernetesApiCallAction.remoteIpDetails.city.cityName

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryCode

    • service.action.kubernetesApiCallAction.remoteIpDetails.country.countryName

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lat

    • service.action.kubernetesApiCallAction.remoteIpDetails.geoLocation.lon

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    • service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.asnOrg

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.isp

    • service.action.kubernetesApiCallAction.remoteIpDetails.organization.org

    • service.action.kubernetesApiCallAction.requestUri

    • service.action.kubernetesApiCallAction.resource

    • service.action.kubernetesApiCallAction.resourceName

    • service.action.kubernetesApiCallAction.sourceIPs

    • service.action.kubernetesApiCallAction.statusCode

    • service.action.kubernetesApiCallAction.subresource

    • service.action.kubernetesApiCallAction.userAgent

    • service.action.kubernetesApiCallAction.verb

    • service.action.kubernetesPermissionCheckedDetails.allowed

    • service.action.kubernetesPermissionCheckedDetails.namespace

    • service.action.kubernetesPermissionCheckedDetails.resource

    • service.action.kubernetesPermissionCheckedDetails.verb

    • service.action.kubernetesRoleBindingDetails.kind

    • service.action.kubernetesRoleBindingDetails.name

    • service.action.kubernetesRoleBindingDetails.roleRefKind

    • service.action.kubernetesRoleBindingDetails.roleRefName

    • service.action.kubernetesRoleBindingDetails.uid

    • service.action.kubernetesRoleDetails.kind

    • service.action.kubernetesRoleDetails.name

    • service.action.kubernetesRoleDetails.uid

    • service.action.networkConnectionAction.blocked

    • service.action.networkConnectionAction.connectionDirection

    • service.action.networkConnectionAction.localIpDetails.ipAddressV4

    • service.action.networkConnectionAction.localIpDetails.ipAddressV6

    • service.action.networkConnectionAction.localNetworkInterface

    • service.action.networkConnectionAction.localPortDetails.port

    • service.action.networkConnectionAction.localPortDetails.portName

    • service.action.networkConnectionAction.protocol

    • service.action.networkConnectionAction.remoteIpDetails.city.cityName

    • service.action.networkConnectionAction.remoteIpDetails.country.countryCode

    • service.action.networkConnectionAction.remoteIpDetails.country.countryName

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lat

    • service.action.networkConnectionAction.remoteIpDetails.geoLocation.lon

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    • service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    • service.action.networkConnectionAction.remoteIpDetails.organization.asn

    • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    • service.action.networkConnectionAction.remoteIpDetails.organization.isp

    • service.action.networkConnectionAction.remoteIpDetails.organization.org

    • service.action.networkConnectionAction.remotePortDetails.port

    • service.action.networkConnectionAction.remotePortDetails.portName

    • service.action.portProbeAction.blocked

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.localIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.localPortDetails.port

    • service.action.portProbeAction.portProbeDetails.localPortDetails.portName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.city.cityName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryCode

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.country.countryName

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lat

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.geoLocation.lon

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV4

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.ipAddressV6

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asn

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.asnOrg

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.isp

    • service.action.portProbeAction.portProbeDetails.remoteIpDetails.organization.org

    • service.action.rdsLoginAttemptAction.loginAttributes.application

    • service.action.rdsLoginAttemptAction.loginAttributes.failedLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.successfulLoginAttempts

    • service.action.rdsLoginAttemptAction.loginAttributes.user

    • service.action.rdsLoginAttemptAction.remoteIpDetails.city.cityName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryCode

    • service.action.rdsLoginAttemptAction.remoteIpDetails.country.countryName

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lat

    • service.action.rdsLoginAttemptAction.remoteIpDetails.geoLocation.lon

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV4

    • service.action.rdsLoginAttemptAction.remoteIpDetails.ipAddressV6

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asn

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.asnOrg

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.isp

    • service.action.rdsLoginAttemptAction.remoteIpDetails.organization.org

    • service.additionalInfo.agentDetails.agentId

    • service.additionalInfo.agentDetails.agentVersion

    • service.additionalInfo.anomalies.anomalousAPIs

    • service.additionalInfo.authenticationMethod

    • service.additionalInfo.averagePacketSizeIn

    • service.additionalInfo.averagePacketSizeOut

    • service.additionalInfo.context

    • service.additionalInfo.domain

    • service.additionalInfo.inBytes

    • service.additionalInfo.localNetworkInterfaceOwner

    • service.additionalInfo.localPort

    • service.additionalInfo.outBytes

    • service.additionalInfo.packetsIn

    • service.additionalInfo.packetsOut

    • service.additionalInfo.policyArn

    • service.additionalInfo.policyName

    • service.additionalInfo.remotePort

    • service.additionalInfo.sample

    • service.additionalInfo.scannedPort

    • service.additionalInfo.threatFileSha256

    • service.additionalInfo.threatListName

    • service.additionalInfo.threatName

    • service.additionalInfo.totalBytesIn

    • service.additionalInfo.totalBytesOut

    • service.additionalInfo.type

    • service.additionalInfo.unusual.asnOrg

    • service.additionalInfo.unusual.port

    • service.additionalInfo.unusualProtocol

    • service.additionalInfo.userAgent.fullUserAgent

    • service.additionalInfo.userAgent.userAgentCategory

    • service.additionalInfo.value

    • service.additionalInfo.vpcOwnerAccountId

    • service.archived

    • service.count

    • service.detection.sequence.actors.id

    • service.detection.sequence.actors.process.name

    • service.detection.sequence.actors.process.path

    • service.detection.sequence.actors.process.sha256

    • service.detection.sequence.actors.session.createdTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.actors.session.issuer

    • service.detection.sequence.actors.session.mfaStatus

    • service.detection.sequence.actors.session.uid

    • service.detection.sequence.actors.user.account.account

    • service.detection.sequence.actors.user.account.uid

    • service.detection.sequence.actors.user.credentialUid

    • service.detection.sequence.actors.user.name

    • service.detection.sequence.actors.user.type

    • service.detection.sequence.actors.user.uid

    • service.detection.sequence.additionalSequenceTypes

    • service.detection.sequence.description

    • service.detection.sequence.endpoints.autonomousSystem.name

    • service.detection.sequence.endpoints.autonomousSystem.number

    • service.detection.sequence.endpoints.connection.direction

    • service.detection.sequence.endpoints.domain

    • service.detection.sequence.endpoints.id

    • service.detection.sequence.endpoints.ip

    • service.detection.sequence.endpoints.location.city

    • service.detection.sequence.endpoints.location.country

    • service.detection.sequence.endpoints.location.lat

    • service.detection.sequence.endpoints.location.lon

    • service.detection.sequence.endpoints.port

    • service.detection.sequence.resources.accountId

    • service.detection.sequence.resources.cloudPartition

    • service.detection.sequence.resources.data.accessKey.principalId

    • service.detection.sequence.resources.data.accessKey.userName

    • service.detection.sequence.resources.data.accessKey.userType

    • service.detection.sequence.resources.data.autoscalingAutoScalingGroup.ec2InstanceUids

    • service.detection.sequence.resources.data.cloudformationStack.ec2InstanceUids

    • service.detection.sequence.resources.data.container.image

    • service.detection.sequence.resources.data.container.imageUid

    • service.detection.sequence.resources.data.ec2Image.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2Instance.availabilityZone

    • service.detection.sequence.resources.data.ec2Instance.ec2NetworkInterfaceUids

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.arn

    • service.detection.sequence.resources.data.ec2Instance.iamInstanceProfile.id

    • service.detection.sequence.resources.data.ec2Instance.imageDescription

    • service.detection.sequence.resources.data.ec2Instance.instanceState

    • service.detection.sequence.resources.data.ec2Instance.instanceType

    • service.detection.sequence.resources.data.ec2Instance.outpostArn

    • service.detection.sequence.resources.data.ec2Instance.platform

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeId

    • service.detection.sequence.resources.data.ec2Instance.productCodes.productCodeType

    • service.detection.sequence.resources.data.ec2LaunchTemplate.ec2InstanceUids

    • service.detection.sequence.resources.data.ec2LaunchTemplate.version

    • service.detection.sequence.resources.data.ec2NetworkInterface.ipv6Addresses

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateDnsName

    • service.detection.sequence.resources.data.ec2NetworkInterface.privateIpAddresses.privateIpAddress

    • service.detection.sequence.resources.data.ec2NetworkInterface.publicIp

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupId

    • service.detection.sequence.resources.data.ec2NetworkInterface.securityGroups.groupName

    • service.detection.sequence.resources.data.ec2NetworkInterface.subNetId

    • service.detection.sequence.resources.data.ec2NetworkInterface.vpcId

    • service.detection.sequence.resources.data.ec2Vpc.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.ecsCluster.status

    • service.detection.sequence.resources.data.ecsTask.containerUids

    • service.detection.sequence.resources.data.ecsTask.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.ecsTask.launchType

    • service.detection.sequence.resources.data.ecsTask.taskDefinitionArn

    • service.detection.sequence.resources.data.eksCluster.arn

    • service.detection.sequence.resources.data.eksCluster.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.eksCluster.ec2InstanceUids

    • service.detection.sequence.resources.data.eksCluster.status

    • service.detection.sequence.resources.data.eksCluster.vpcId

    • service.detection.sequence.resources.data.iamInstanceProfile.ec2InstanceUids

    • service.detection.sequence.resources.data.iamInstanceProfile.id

    • service.detection.sequence.resources.data.kubernetesWorkload.containerUids

    • service.detection.sequence.resources.data.kubernetesWorkload.namespace

    • service.detection.sequence.resources.data.kubernetesWorkload.type

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.accountPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclAccess

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicAclIgnoreBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicBucketRestrictBehavior

    • service.detection.sequence.resources.data.s3Bucket.bucketPublicAccess.publicPolicyAccess

    • service.detection.sequence.resources.data.s3Bucket.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.resources.data.s3Bucket.effectivePermission

    • service.detection.sequence.resources.data.s3Bucket.encryptionKeyArn

    • service.detection.sequence.resources.data.s3Bucket.encryptionType

    • service.detection.sequence.resources.data.s3Bucket.ownerId

    • service.detection.sequence.resources.data.s3Bucket.publicReadAccess

    • service.detection.sequence.resources.data.s3Bucket.publicWriteAccess

    • service.detection.sequence.resources.data.s3Bucket.s3ObjectUids

    • service.detection.sequence.resources.data.s3Object.eTag

    • service.detection.sequence.resources.data.s3Object.key

    • service.detection.sequence.resources.data.s3Object.versionId

    • service.detection.sequence.resources.name

    • service.detection.sequence.resources.region

    • service.detection.sequence.resources.resourceType

    • service.detection.sequence.resources.service

    • service.detection.sequence.resources.tags.key

    • service.detection.sequence.resources.tags.value

    • service.detection.sequence.resources.uid

    • service.detection.sequence.sequenceIndicators.key

    • service.detection.sequence.sequenceIndicators.title

    • service.detection.sequence.sequenceIndicators.values

    • service.detection.sequence.signals.actorIds

    • service.detection.sequence.signals.count

    • service.detection.sequence.signals.createdAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.description

    • service.detection.sequence.signals.endpointIds

    • service.detection.sequence.signals.firstSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.lastSeenAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.signals.name

    • service.detection.sequence.signals.resourceUids

    • service.detection.sequence.signals.severity

    • service.detection.sequence.signals.signalIndicators.key

    • service.detection.sequence.signals.signalIndicators.title

    • service.detection.sequence.signals.signalIndicators.values

    • service.detection.sequence.signals.type

    • service.detection.sequence.signals.uid

    • service.detection.sequence.signals.updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.detection.sequence.uid

    • service.detectorId

    • service.ebsVolumeScanDetails.scanCompletedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.count

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.severity

    • service.ebsVolumeScanDetails.scanDetections.highestSeverityThreatDetails.threatName

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.files

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.totalGb

    • service.ebsVolumeScanDetails.scanDetections.scannedItemCount.volumes

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.shortened

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.fileName

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.filePath

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.volumeArn

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.itemCount

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    • service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.uniqueThreatNameCount

    • service.ebsVolumeScanDetails.scanDetections.threatsDetectedItemCount.files

    • service.ebsVolumeScanDetails.scanId

    • service.ebsVolumeScanDetails.scanStartedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.ebsVolumeScanDetails.scanType

    • service.ebsVolumeScanDetails.sources

    • service.ebsVolumeScanDetails.triggerFindingId

    • service.eventFirstSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.eventLastSeen

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.evidence.threatIntelligenceDetails.threatFileSha256

    • service.evidence.threatIntelligenceDetails.threatListName

    • service.evidence.threatIntelligenceDetails.threatNames

    • service.featureName

    • service.malwareScanDetails.scanCategory

    • service.malwareScanDetails.scanConfiguration.incrementalScanDetails.baselineResourceArn

    • service.malwareScanDetails.scanConfiguration.triggerType

    • service.malwareScanDetails.scanId

    • service.malwareScanDetails.scanType

    • service.malwareScanDetails.threats.count

    • service.malwareScanDetails.threats.hash

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.deviceName

    • service.malwareScanDetails.threats.itemDetails.additionalInfo.versionId

    • service.malwareScanDetails.threats.itemDetails.hash

    • service.malwareScanDetails.threats.itemDetails.itemPath

    • service.malwareScanDetails.threats.itemDetails.resourceArn

    • service.malwareScanDetails.threats.itemPaths.hash

    • service.malwareScanDetails.threats.itemPaths.nestedItemPath

    • service.malwareScanDetails.threats.name

    • service.malwareScanDetails.threats.source

    • service.malwareScanDetails.uniqueThreatCount

    • service.resourceRole

    • service.runtimeDetails.context.addressFamily

    • service.runtimeDetails.context.commandLineExample

    • service.runtimeDetails.context.fileOperation

    • service.runtimeDetails.context.filePath

    • service.runtimeDetails.context.fileSystemType

    • service.runtimeDetails.context.flags

    • service.runtimeDetails.context.ianaProtocolNumber

    • service.runtimeDetails.context.ldPreloadValue

    • service.runtimeDetails.context.libraryPath

    • service.runtimeDetails.context.memoryRegions

    • service.runtimeDetails.context.modifiedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.euid

    • service.runtimeDetails.context.modifyingProcess.executablePath

    • service.runtimeDetails.context.modifyingProcess.executableSha256

    • service.runtimeDetails.context.modifyingProcess.lineage.euid

    • service.runtimeDetails.context.modifyingProcess.lineage.executablePath

    • service.runtimeDetails.context.modifyingProcess.lineage.name

    • service.runtimeDetails.context.modifyingProcess.lineage.namespacePid

    • service.runtimeDetails.context.modifyingProcess.lineage.parentUuid

    • service.runtimeDetails.context.modifyingProcess.lineage.pid

    • service.runtimeDetails.context.modifyingProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.lineage.userId

    • service.runtimeDetails.context.modifyingProcess.lineage.uuid

    • service.runtimeDetails.context.modifyingProcess.name

    • service.runtimeDetails.context.modifyingProcess.namespacePid

    • service.runtimeDetails.context.modifyingProcess.parentUuid

    • service.runtimeDetails.context.modifyingProcess.pid

    • service.runtimeDetails.context.modifyingProcess.pwd

    • service.runtimeDetails.context.modifyingProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.modifyingProcess.user

    • service.runtimeDetails.context.modifyingProcess.userId

    • service.runtimeDetails.context.modifyingProcess.uuid

    • service.runtimeDetails.context.moduleFilePath

    • service.runtimeDetails.context.moduleName

    • service.runtimeDetails.context.moduleSha256

    • service.runtimeDetails.context.mountSource

    • service.runtimeDetails.context.mountTarget

    • service.runtimeDetails.context.relatedFilePaths

    • service.runtimeDetails.context.releaseAgentPath

    • service.runtimeDetails.context.runcBinaryPath

    • service.runtimeDetails.context.scriptPath

    • service.runtimeDetails.context.serviceName

    • service.runtimeDetails.context.shellHistoryFilePath

    • service.runtimeDetails.context.socketPath

    • service.runtimeDetails.context.targetProcess.euid

    • service.runtimeDetails.context.targetProcess.executablePath

    • service.runtimeDetails.context.targetProcess.executableSha256

    • service.runtimeDetails.context.targetProcess.lineage.euid

    • service.runtimeDetails.context.targetProcess.lineage.executablePath

    • service.runtimeDetails.context.targetProcess.lineage.name

    • service.runtimeDetails.context.targetProcess.lineage.namespacePid

    • service.runtimeDetails.context.targetProcess.lineage.parentUuid

    • service.runtimeDetails.context.targetProcess.lineage.pid

    • service.runtimeDetails.context.targetProcess.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.lineage.userId

    • service.runtimeDetails.context.targetProcess.lineage.uuid

    • service.runtimeDetails.context.targetProcess.name

    • service.runtimeDetails.context.targetProcess.namespacePid

    • service.runtimeDetails.context.targetProcess.parentUuid

    • service.runtimeDetails.context.targetProcess.pid

    • service.runtimeDetails.context.targetProcess.pwd

    • service.runtimeDetails.context.targetProcess.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.context.targetProcess.user

    • service.runtimeDetails.context.targetProcess.userId

    • service.runtimeDetails.context.targetProcess.uuid

    • service.runtimeDetails.context.threatFilePath

    • service.runtimeDetails.context.toolCategory

    • service.runtimeDetails.context.toolName

    • service.runtimeDetails.process.euid

    • service.runtimeDetails.process.executablePath

    • service.runtimeDetails.process.executableSha256

    • service.runtimeDetails.process.lineage.euid

    • service.runtimeDetails.process.lineage.executablePath

    • service.runtimeDetails.process.lineage.name

    • service.runtimeDetails.process.lineage.namespacePid

    • service.runtimeDetails.process.lineage.parentUuid

    • service.runtimeDetails.process.lineage.pid

    • service.runtimeDetails.process.lineage.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.lineage.userId

    • service.runtimeDetails.process.lineage.uuid

    • service.runtimeDetails.process.name

    • service.runtimeDetails.process.namespacePid

    • service.runtimeDetails.process.parentUuid

    • service.runtimeDetails.process.pid

    • service.runtimeDetails.process.pwd

    • service.runtimeDetails.process.startTime

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    • service.runtimeDetails.process.user

    • service.runtimeDetails.process.userId

    • service.runtimeDetails.process.uuid

    • service.serviceName

    • service.userFeedback

    • severity

      To configure severity based filters, use the following for the FindingCriteria condition:

      • Low: [\"1\", \"2\", \"3\"]

      • Medium: [\"4\", \"5\", \"6\"]

      • High: [\"7\", \"8\"]

      • Critical: [\"9\", \"10\"]

      For more information, see Findings severity levels in the Amazon GuardDuty User Guide.

    • type

    • updatedAt

      Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000

    ", "locationName":"findingCriteria" } } diff --git a/awscli/botocore/data/ivs/2020-07-14/service-2.json b/awscli/botocore/data/ivs/2020-07-14/service-2.json index 11b3482668f3..072e6a5205cb 100644 --- a/awscli/botocore/data/ivs/2020-07-14/service-2.json +++ b/awscli/botocore/data/ivs/2020-07-14/service-2.json @@ -679,6 +679,27 @@ "documentation":"

    Removes tags from the resource with the specified ARN.

    ", "idempotent":true }, + "UpdateAdConfiguration":{ + "name":"UpdateAdConfiguration", + "http":{ + "method":"POST", + "requestUri":"/UpdateAdConfiguration", + "responseCode":200 + }, + "input":{"shape":"UpdateAdConfigurationRequest"}, + "output":{"shape":"UpdateAdConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"PendingVerification"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Updates a specified ad configuration.

    " + }, "UpdateChannel":{ "name":"UpdateChannel", "http":{ @@ -803,7 +824,7 @@ }, "mediaTailorPlaybackConfigurations":{ "shape":"MediaTailorPlaybackConfigurationsList", - "documentation":"

    List of integration configurations with media tailor resources.

    " + "documentation":"

    List of integration configurations with MediaTailor resources. The first item in the list is the default playback configuration used for the ad configuration. To select a different configuration per viewing session, see Generate and Sign IVS Playback Tokens.

    " }, "tags":{ "shape":"Tags", @@ -845,7 +866,7 @@ }, "mediaTailorPlaybackConfigurations":{ "shape":"MediaTailorPlaybackConfigurationsList", - "documentation":"

    List of integration configurations with media tailor resources.

    " + "documentation":"

    List of integration configurations with MediaTailor resources. The first item in the list is the default playback configuration used for the ad configuration. To select a different configuration per viewing session, see Generate and Sign IVS Playback Tokens.

    " }, "tags":{ "shape":"Tags", @@ -1179,7 +1200,7 @@ }, "type":{ "shape":"ChannelType", - "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " + "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " }, "recordingConfigurationArn":{ "shape":"ChannelRecordingConfigurationArn", @@ -1375,7 +1396,7 @@ }, "type":{ "shape":"ChannelType", - "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " + "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " }, "preset":{ "shape":"TranscodePreset", @@ -1485,7 +1506,7 @@ }, "mediaTailorPlaybackConfigurations":{ "shape":"MediaTailorPlaybackConfigurationsList", - "documentation":"

    List of integration configurations with media tailor resources.

    " + "documentation":"

    List of integration configurations with MediaTailor resources. The first item in the list is the default playback configuration used for the ad configuration. To select a different configuration per viewing session, see Generate and Sign IVS Playback Tokens.

    " }, "tags":{ "shape":"Tags", @@ -1516,7 +1537,7 @@ }, "type":{ "shape":"ChannelType", - "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " + "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " }, "authorized":{ "shape":"Boolean", @@ -1969,7 +1990,7 @@ }, "durationSeconds":{ "shape":"AdDurationSeconds", - "documentation":"

    Maximum duration of the ad break, in seconds.

    " + "documentation":"

    Duration of the ad break, in seconds.

    " } } }, @@ -3011,7 +3032,7 @@ }, "exceptionMessage":{ "shape":"errorMessage", - "documentation":"

    " + "documentation":"

    The service is temporarily unavailable.

    " } }, "documentation":"

    ", @@ -3599,6 +3620,34 @@ "type":"structure", "members":{} }, + "UpdateAdConfigurationRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"AdConfigurationArn", + "documentation":"

    ARN of the ad configuration to be updated.

    " + }, + "name":{ + "shape":"AdConfigurationName", + "documentation":"

    Ad configuration name. The value does not need to be unique.

    " + }, + "mediaTailorPlaybackConfigurations":{ + "shape":"MediaTailorPlaybackConfigurationsList", + "documentation":"

    List of integration configurations with MediaTailor resources. The first item in the list is the default playback configuration used for the ad configuration. To select a different configuration per viewing session, see Generate and Sign IVS Playback Tokens.

    " + } + } + }, + "UpdateAdConfigurationResponse":{ + "type":"structure", + "required":["adConfiguration"], + "members":{ + "adConfiguration":{ + "shape":"AdConfiguration", + "documentation":"

    Object specifying the updated ad configuration.

    " + } + } + }, "UpdateChannelRequest":{ "type":"structure", "required":["arn"], @@ -3617,7 +3666,7 @@ }, "type":{ "shape":"ChannelType", - "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " + "documentation":"

    Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

    " }, "authorized":{ "shape":"Boolean", diff --git a/awscli/botocore/data/kendra/2019-02-03/service-2.json b/awscli/botocore/data/kendra/2019-02-03/service-2.json index 586e35274870..ac3a81d3c28d 100644 --- a/awscli/botocore/data/kendra/2019-02-03/service-2.json +++ b/awscli/botocore/data/kendra/2019-02-03/service-2.json @@ -2927,7 +2927,7 @@ "WebCrawlerConfiguration":{"shape":"WebCrawlerConfiguration"}, "WorkDocsConfiguration":{ "shape":"WorkDocsConfiguration", - "documentation":"

    Provides the configuration information to connect to Amazon WorkDocs as your data source.

    " + "documentation":"

    Provides the configuration information to connect to WorkDocs as your data source.

    " }, "FsxConfiguration":{ "shape":"FsxConfiguration", @@ -9279,7 +9279,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

    The identifier of the directory corresponding to your Amazon WorkDocs site repository.

    You can find the organization ID in the Directory Service by going to Active Directory, then Directories. Your Amazon WorkDocs site directory has an ID, which is the organization ID. You can also set up a new Amazon WorkDocs directory in the Directory Service console and enable a Amazon WorkDocs site for the directory in the Amazon WorkDocs console.

    " + "documentation":"

    The identifier of the directory corresponding to your WorkDocs site repository.

    You can find the organization ID in the Directory Service by going to Active Directory, then Directories. Your WorkDocs site directory has an ID, which is the organization ID. You can also set up a new WorkDocs directory in the Directory Service console and enable a WorkDocs site for the directory in the WorkDocs console.

    " }, "CrawlComments":{ "shape":"Boolean", @@ -9287,22 +9287,22 @@ }, "UseChangeLog":{ "shape":"Boolean", - "documentation":"

    TRUE to use the Amazon WorkDocs change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in Amazon WorkDocs.

    " + "documentation":"

    TRUE to use the WorkDocs change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in WorkDocs.

    " }, "InclusionPatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", - "documentation":"

    A list of regular expression patterns to include certain files in your Amazon WorkDocs site repository. Files that match the patterns are included in the index. Files that don't match the patterns are excluded from the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

    " + "documentation":"

    A list of regular expression patterns to include certain files in your WorkDocs site repository. Files that match the patterns are included in the index. Files that don't match the patterns are excluded from the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

    " }, "ExclusionPatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", - "documentation":"

    A list of regular expression patterns to exclude certain files in your Amazon WorkDocs site repository. Files that match the patterns are excluded from the index. Files that don’t match the patterns are included in the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

    " + "documentation":"

    A list of regular expression patterns to exclude certain files in your WorkDocs site repository. Files that match the patterns are excluded from the index. Files that don’t match the patterns are included in the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

    " }, "FieldMappings":{ "shape":"DataSourceToIndexFieldMappingList", - "documentation":"

    A list of DataSourceToIndexFieldMapping objects that map Amazon WorkDocs data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Amazon WorkDocs fields. For more information, see Mapping data source fields. The Amazon WorkDocs data source field names must exist in your Amazon WorkDocs custom metadata.

    " + "documentation":"

    A list of DataSourceToIndexFieldMapping objects that map WorkDocs data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to WorkDocs fields. For more information, see Mapping data source fields. The WorkDocs data source field names must exist in your WorkDocs custom metadata.

    " } }, - "documentation":"

    Provides the configuration information to connect to Amazon WorkDocs as your data source.

    Amazon WorkDocs connector is available in Oregon, North Virginia, Sydney, Singapore and Ireland regions.

    " + "documentation":"

    Provides the configuration information to connect to WorkDocs as your data source.

    WorkDocs connector is available in Oregon, North Virginia, Sydney, Singapore and Ireland regions.

    " } }, "documentation":"

    Amazon Kendra is a service for indexing large document sets.

    " diff --git a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json index ceb4f316dc3b..7d4bb1e3163b 100644 --- a/awscli/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/awscli/botocore/data/sagemaker/2017-07-24/service-2.json @@ -2472,7 +2472,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    Describes the content, creation time, and security configuration of an Amazon SageMaker Model Card.

    " + "documentation":"

    Describes the content, creation time, and security configuration of an Amazon SageMaker Model Card.

    To retrieve only metadata about a model card without requiring kms:Decrypt permission on the associated customer-managed Amazon Web Services KMS key, set IncludedData to MetadataOnly. The default is AllData, which returns the full model card Content and requires kms:Decrypt permission when a customer-managed key is configured.

    " }, "DescribeModelCardExportJob":{ "name":"DescribeModelCardExportJob", @@ -2508,7 +2508,7 @@ }, "input":{"shape":"DescribeModelPackageInput"}, "output":{"shape":"DescribeModelPackageOutput"}, - "documentation":"

    Returns a description of the specified model package, which is used to create SageMaker models or list them on Amazon Web Services Marketplace.

    If you provided a KMS Key ID when you created your model package, you will see the KMS Decrypt API call in your CloudTrail logs when you use this API.

    To create models in SageMaker, buyers can subscribe to model packages listed on Amazon Web Services Marketplace.

    " + "documentation":"

    Returns a description of the specified model package, which is used to create SageMaker models or list them on Amazon Web Services Marketplace.

    If you provided a KMS Key ID when you created your model package, you will see the KMS Decrypt API call in your CloudTrail logs when you use this API. To call this operation without requiring kms:Decrypt permission on the customer-managed key, set IncludedData to MetadataOnly; the response is returned with the embedded ModelCard.ModelCardContent field sanitized.

    To create models in SageMaker, buyers can subscribe to model packages listed on Amazon Web Services Marketplace.

    " }, "DescribeModelPackageGroup":{ "name":"DescribeModelPackageGroup", @@ -21027,6 +21027,10 @@ "shape":"Integer", "documentation":"

    The version of the model card to describe. If a version is not provided, then the latest version of the model card is described.

    ", "box":true + }, + "IncludedData":{ + "shape":"IncludedData", + "documentation":"

    Specifies the level of model card data to include in the response. Use this parameter to call DescribeModelCard without requiring kms:Decrypt permission on the customer-managed Amazon Web Services KMS key.

    • AllData: Returns the full model card Content. This option requires kms:Decrypt permission on the customer-managed key, if one is associated with the model card. This is the default.

    • MetadataOnly: Returns the model card with sanitized Content that includes only a small set of unencrypted metadata fields. This option does not require kms:Decrypt permission. For the list of fields preserved in the response, see Content.

    If you don't specify a value, SageMaker returns AllData.

    " } } }, @@ -21057,7 +21061,7 @@ }, "Content":{ "shape":"ModelCardContent", - "documentation":"

    The content of the model card.

    " + "documentation":"

    The content of the model card. Content is provided as a string in the model card JSON schema.

    When you set IncludedData to MetadataOnly in the request, SageMaker returns a sanitized version of Content that includes only the following JSON paths, when present in the model card:

    • model_overview.model_id

    • model_overview.model_name

    • intended_uses.risk_rating

    • model_package_details.model_package_group_name

    • model_package_details.model_package_arn

    All other fields are removed from Content when IncludedData is MetadataOnly, including model description, training details, evaluation details, business details, and additional information. To retrieve the complete Content, set IncludedData to AllData or omit the parameter.

    " }, "ModelCardStatus":{ "shape":"ModelCardStatus", @@ -21258,6 +21262,10 @@ "ModelPackageName":{ "shape":"VersionedArnOrName", "documentation":"

    The name or Amazon Resource Name (ARN) of the model package to describe.

    When you specify a name, the name must have 1 to 63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).

    " + }, + "IncludedData":{ + "shape":"IncludedData", + "documentation":"

    Specifies the level of model package data to include in the response. Use this parameter to call DescribeModelPackage on a model package that has an associated model card without requiring kms:Decrypt permission on the customer-managed KMS key associated with the embedded model card.

    • AllData: Returns the full model package response, including the unredacted ModelCard.ModelCardContent. This option requires kms:Decrypt permission on the customer-managed key, if one is associated with the embedded model card. This is the default.

    • MetadataOnly: Returns the full model package response, but with the embedded ModelCard.ModelCardContent sanitized to include only a small set of unencrypted metadata fields. This option does not require kms:Decrypt permission. All other top-level response fields, including InferenceSpecification, ModelMetrics, DriftCheckBaselines, and SecurityConfig, are returned unchanged. For the list of fields preserved within ModelCardContent, see ModelCard.

    If you don't specify a value, SageMaker returns AllData.

    " } } }, @@ -21381,7 +21389,7 @@ }, "ModelCard":{ "shape":"ModelPackageModelCard", - "documentation":"

    The model card associated with the model package. Since ModelPackageModelCard is tied to a model package, it is a specific usage of a model card and its schema is simplified compared to the schema of ModelCard. The ModelPackageModelCard schema does not include model_package_details, and model_overview is composed of the model_creator and model_artifact properties. For more information about the model package model card schema, see Model package model card schema. For more information about the model card associated with the model package, see View the Details of a Model Version.

    " + "documentation":"

    The model card associated with the model package. Since ModelPackageModelCard is tied to a model package, it is a specific usage of a model card and its schema is simplified compared to the schema of ModelCard. The ModelPackageModelCard schema does not include model_package_details, and model_overview is composed of the model_creator and model_artifact properties. For more information about the model package model card schema, see Model package model card schema. For more information about the model card associated with the model package, see View the Details of a Model Version.

    When you set IncludedData to MetadataOnly in the request, ModelCardStatus is preserved and ModelCardContent is sanitized to include only the following JSON paths, when present in the model card:

    • model_overview.model_id

    • model_overview.model_name

    • intended_uses.risk_rating

    • model_package_details.model_package_group_name

    • model_package_details.model_package_arn

    Because the ModelPackageModelCard schema does not include model_package_details and limits model_overview to model_creator and model_artifact, the sanitized ModelCardContent for a model package typically contains only intended_uses.risk_rating if it was provided when the model card was created. To retrieve the complete ModelCardContent, set IncludedData to AllData or omit the parameter.

    " }, "ModelLifeCycle":{ "shape":"ModelLifeCycle", @@ -27889,6 +27897,13 @@ "type":"boolean", "box":true }, + "IncludedData":{ + "type":"string", + "enum":[ + "AllData", + "MetadataOnly" + ] + }, "InferenceComponentArn":{ "type":"string", "max":2048, @@ -29299,6 +29314,68 @@ "max":256, "min":1 }, + "Job":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

    The name of the job.

    " + }, + "JobArn":{ + "shape":"JobArn", + "documentation":"

    The Amazon Resource Name (ARN) of the job.

    " + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

    The ARN of the IAM role associated with the job.

    " + }, + "JobCategory":{ + "shape":"JobCategory", + "documentation":"

    The category of the job.

    " + }, + "JobConfigSchemaVersion":{ + "shape":"JobSchemaVersion", + "documentation":"

    The schema version used for the job configuration document.

    " + }, + "JobConfigDocument":{ + "shape":"JobConfigDocument", + "documentation":"

    The JSON configuration document for the job.

    " + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job was created.

    " + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job was last modified.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the job ended.

    " + }, + "JobStatus":{ + "shape":"JobStatus", + "documentation":"

    The current status of the job.

    " + }, + "SecondaryStatus":{ + "shape":"JobSecondaryStatus", + "documentation":"

    The detailed secondary status of the job, providing more granular information about the job's progress.

    " + }, + "SecondaryStatusTransitions":{ + "shape":"JobSecondaryStatusTransitions", + "documentation":"

    A list of secondary status transitions for the job, with timestamps and optional status messages.

    " + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

    If the job failed, the reason it failed.

    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    The tags associated with the job.

    " + } + }, + "documentation":"

    Search shape for Job. Mirrors DescribeJobResponse fields. If you update DescribeJobResponse, update this structure as well.

    " + }, "JobArn":{ "type":"string", "max":256, @@ -43163,7 +43240,8 @@ "Project", "HyperParameterTuningJob", "ModelCard", - "PipelineVersion" + "PipelineVersion", + "Job" ] }, "ResponseMIMEType":{ @@ -43795,7 +43873,8 @@ "shape":"ModelCard", "documentation":"

    An Amazon SageMaker Model Card that documents details about a machine learning model.

    " }, - "Model":{"shape":"ModelDashboardModel"} + "Model":{"shape":"ModelDashboardModel"}, + "Job":{"shape":"Job"} }, "documentation":"

    A single resource returned as part of the Search API response.

    " }, diff --git a/awscli/botocore/data/sns/2010-03-31/service-2.json b/awscli/botocore/data/sns/2010-03-31/service-2.json index 4de4742d705a..3ea8b6184006 100644 --- a/awscli/botocore/data/sns/2010-03-31/service-2.json +++ b/awscli/botocore/data/sns/2010-03-31/service-2.json @@ -1219,7 +1219,7 @@ "members":{ "message":{"shape":"string"} }, - "documentation":"

    Indicates that the number of filter polices in your Amazon Web Services account exceeds the limit. To add more filter polices, submit an Amazon SNS Limit Increase case in the Amazon Web ServicesSupport Center.

    ", + "documentation":"

    Indicates that the number of filter polices in your Amazon Web Services account exceeds the limit. To add more filter polices, submit an Amazon SNS Limit Increase case in the Amazon Web Services Support Center.

    ", "error":{ "code":"FilterPolicyLimitExceeded", "httpStatusCode":403, diff --git a/awscli/botocore/data/wickr/2024-02-01/service-2.json b/awscli/botocore/data/wickr/2024-02-01/service-2.json index 076165d84a97..72e95b909b9a 100644 --- a/awscli/botocore/data/wickr/2024-02-01/service-2.json +++ b/awscli/botocore/data/wickr/2024-02-01/service-2.json @@ -1539,6 +1539,47 @@ "min":1, "pattern":"[a-zA-Z0-9-_:]+" }, + "ConsentPopupConfig":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

    Whether the consent popup is enabled. When set to true, the popup is displayed to users on login.

    " + }, + "header":{ + "shape":"ConsentPopupConfigHeaderString", + "documentation":"

    Header text displayed at the top of the consent popup. Maximum 100 characters.

    " + }, + "content":{ + "shape":"ConsentPopupConfigContentString", + "documentation":"

    Body content of the consent popup in Markdown format. Maximum 5000 characters.

    " + }, + "closeButtonLabel":{ + "shape":"ConsentPopupConfigCloseButtonLabelString", + "documentation":"

    Label for the close button on the consent popup. Maximum 20 characters. Defaults to \"Acknowledge\" if not provided.

    " + } + }, + "documentation":"

    Consent popup configuration displayed to users on login.

    " + }, + "ConsentPopupConfigCloseButtonLabelString":{ + "type":"string", + "max":20, + "min":0, + "pattern":"[\\S\\s]*" + }, + "ConsentPopupConfigContentString":{ + "type":"string", + "max":5000, + "min":0, + "pattern":"[\\S\\s]*" + }, + "ConsentPopupConfigHeaderString":{ + "type":"string", + "max":100, + "min":0, + "pattern":"[\\S\\s]*" + }, "CreateBotRequest":{ "type":"structure", "required":[ @@ -3040,6 +3081,10 @@ "enableTrustedDataFormat":{ "shape":"Boolean", "documentation":"

    Configuration for OpenTDF integration at the network level, enforcing ABAC decision making when operating in TDF enabled rooms.

    " + }, + "consentPopup":{ + "shape":"ConsentPopupConfig", + "documentation":"

    Consent popup configuration for the network, displayed to users on login.

    " } }, "documentation":"

    Contains network-level configuration settings that apply to all users and security groups within a Wickr network.

    " @@ -3698,6 +3743,10 @@ "shape":"Integer", "documentation":"

    The duration for which users SSO session remains inactive before automatically logging them out for security. Available in SSO enabled network.

    " }, + "maxNonSsoSessionMinutes":{ + "shape":"SecurityGroupSettingsMaxNonSsoSessionMinutesInteger", + "documentation":"

    Maximum session duration in minutes for non-SSO users. Set to 0 to disable. Valid range is 60 to 525600 (1 hour to 365 days).

    " + }, "federationMode":{ "shape":"Integer", "documentation":"

    The local federation mode controlling how users can communicate with other networks. Values: 0 (none), 1 (federated), 2 (restricted).

    " @@ -3721,6 +3770,12 @@ }, "documentation":"

    Comprehensive configuration settings that define all user capabilities, restrictions, and features for members of a security group. These settings control everything from calling permissions to federation settings to security policies.

    " }, + "SecurityGroupSettingsMaxNonSsoSessionMinutesInteger":{ + "type":"integer", + "box":true, + "max":525600, + "min":0 + }, "SecurityGroupSettingsRequest":{ "type":"structure", "members":{ @@ -3804,10 +3859,10 @@ }, "intensity":{ "shape":"Integer", - "documentation":"

    Prevents Wickr data from being recovered by overwriting deleted Wickr data. Valid Values: Must be one of [0, 20, 60, 100]

    " + "documentation":"

    Controls the rate (MB/minute) at which the shredder function runs on clients. Valid Values: Must be one of [0, 20, 60, 100].

    A higher intensity setting could lead to higher battery usage on mobile devices.

    " } }, - "documentation":"

    Configuration for the message shredder feature, which securely deletes messages and files from devices to prevent data recovery.

    " + "documentation":"

    Configuration for the Wickr shredder feature, which writes random data over free memory and disk space on client devices. You can configure your Wickr shredder intensity using the parameters below.

    Secure Shredder will not write over files that are permanently stored on the device or saved outside of the Wickr client. Wickr Network Administrators are able to disable file downloads within Security Group Settings.

    " }, "SortDirection":{ "type":"string", @@ -4325,5 +4380,5 @@ "member":{"shape":"WickrAwsNetworks"} } }, - "documentation":"

    Welcome to the Amazon Web Services Wickr API Reference.

    The Amazon Web Services Wickr application programming interface (API) is designed for administrators to perform key tasks, such as creating and managing Amazon Web Services Wickr, networks, users, security groups, bots and more. This guide provides detailed information about the Amazon Web Services Wickr API, including operations, types, inputs and outputs, and error codes. You can use an Amazon Web Services SDK, the Amazon Web Services Command Line Interface (Amazon Web Services CLI, or the REST API to make API calls for Amazon Web Services Wickr.

    Using Amazon Web Services SDK

    The SDK clients authenticate your requests by using access keys that you provide. For more information, see Authentication and access using Amazon Web Services SDKs and tools in the Amazon Web Services SDKs and Tools Reference Guide.

    Using Amazon Web Services CLI

    Use your access keys with the Amazon Web Services CLI to make API calls. For more information about setting up the Amazon Web Services CLI, see Getting started with the Amazon Web Services CLI in the Amazon Web Services Command Line Interface User Guide for Version 2.

    Using REST APIs

    If you use REST to make API calls, you must authenticate your request by providing a signature. Amazon Web Services Wickr supports Signature Version 4. For more information, see Amazon Web Services Signature Version 4 for API requests in the Amazon Web Services Identity and Access Management User Guide.

    Access and permissions to the APIs can be controlled by Amazon Web Services Identity and Access Management. The managed policy Amazon Web ServicesWickrFullAccess grants full administrative permission to the Amazon Web Services Wickr service APIs. For more information on restricting access to specific operations, see Identity and access management for Amazon Web Services Wickr in the Amazon Web Services Wickr Administration Guide.

    Types of Errors:

    The Amazon Web Services Wickr APIs provide an HTTP interface. HTTP defines ranges of HTTP Status Codes for different types of error responses.

    1. Client errors are indicated by HTTP Status Code class of 4xx

    2. Service errors are indicated by HTTP Status Code class of 5xx

    In this reference guide, the documentation for each API has an Errors section that includes a brief discussion about HTTP status codes. We recommend looking there as part of your investigation when you get an error.

    " + "documentation":"

    Welcome to the Amazon Web Services Wickr API Reference.

    The Amazon Web Services Wickr application programming interface (API) is designed for administrators to perform key tasks, such as creating and managing Amazon Web Services Wickr, networks, users, security groups, bots and more. This guide provides detailed information about the Amazon Web Services Wickr API, including operations, types, inputs and outputs, and error codes. You can use an Amazon Web Services SDK, the Amazon Web Services Command Line Interface (Amazon Web Services CLI, or the REST API to make API calls for Amazon Web Services Wickr.

    Using Amazon Web Services SDK

    The SDK clients authenticate your requests by using access keys that you provide. For more information, see Authentication and access using Amazon Web Services SDKs and tools in the Amazon Web Services SDKs and Tools Reference Guide.

    Using Amazon Web Services CLI

    Use your access keys with the Amazon Web Services CLI to make API calls. For more information about setting up the Amazon Web Services CLI, see Getting started with the Amazon Web Services CLI in the Amazon Web Services Command Line Interface User Guide for Version 2.

    Using REST APIs

    If you use REST to make API calls, you must authenticate your request by providing a signature. Amazon Web Services Wickr supports Signature Version 4. For more information, see Amazon Web Services Signature Version 4 for API requests in the Amazon Web Services Identity and Access Management User Guide.

    Access and permissions to the APIs can be controlled by Amazon Web Services Identity and Access Management. The managed policy Amazon Web ServicesWickrFullAccess grants full administrative permission to the Amazon Web Services Wickr service APIs. For more information on restricting access to specific operations, see Identity and access management for Amazon Web Services Wickr in the Amazon Web Services Wickr Administration Guide.

    Types of Errors:

    The Amazon Web Services Wickr APIs provide an HTTP interface. HTTP defines ranges of HTTP Status Codes for different types of error responses.

    1. Client errors are indicated by HTTP Status Code class of 4xx

    2. Service errors are indicated by HTTP Status Code class of 5xx

    In this reference guide, the documentation for each API has an Errors section that includes a brief discussion about HTTP status codes. We recommend looking there as part of your investigation when you get an error.

    Regional availability

    The Amazon Web Services Wickr API is available in several Amazon Web Services Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see Amazon Web Services Wickr endpoints and quotas in the Amazon Web Services General Reference Guide.

    Wickr API endpoints are region-specific and include a region code in the format: https://admin.wickr.[regioncode].amazonaws.com. For example, for the US East (N.Virginia) us-east-1, the API endpoint is https://admin.wickr.us-east-1.amazonaws.com.

    " } diff --git a/awscli/botocore/data/workdocs/2016-05-01/service-2.json b/awscli/botocore/data/workdocs/2016-05-01/service-2.json index cd39f3143109..8e211aa9e0d5 100644 --- a/awscli/botocore/data/workdocs/2016-05-01/service-2.json +++ b/awscli/botocore/data/workdocs/2016-05-01/service-2.json @@ -3608,7 +3608,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

    Amazon WorkDocs authentication token. Not required when using Amazon Web Services administrator credentials to access the API.

    ", + "documentation":"

    WorkDocs authentication token. Not required when using Amazon Web Services administrator credentials to access the API.

    ", "location":"header", "locationName":"Authentication" }, diff --git a/awscli/botocore/data/workspaces/2015-04-08/service-2.json b/awscli/botocore/data/workspaces/2015-04-08/service-2.json index 0c972752008b..c742a2045b3c 100644 --- a/awscli/botocore/data/workspaces/2015-04-08/service-2.json +++ b/awscli/botocore/data/workspaces/2015-04-08/service-2.json @@ -156,7 +156,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Creates a client-add-in for Amazon Connect within a directory. You can create only one Amazon Connect client add-in within a directory.

    This client add-in allows WorkSpaces users to seamlessly connect to Amazon Connect.

    " + "documentation":"

    Creates a client-add-in for Connect Customer within a directory. You can create only one Connect Customer client add-in within a directory.

    This client add-in allows WorkSpaces users to seamlessly connect to Connect Customer.

    " }, "CreateConnectionAlias":{ "name":"CreateConnectionAlias", @@ -358,7 +358,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Deletes a client-add-in for Amazon Connect that is configured within a directory.

    " + "documentation":"

    Deletes a client-add-in for Connect Customer that is configured within a directory.

    " }, "DeleteConnectionAlias":{ "name":"DeleteConnectionAlias", @@ -591,7 +591,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Retrieves a list of Amazon Connect client add-ins that have been created.

    " + "documentation":"

    Retrieves a list of Connect Customer client add-ins that have been created.

    " }, "DescribeConnectionAliasPermissions":{ "name":"DescribeConnectionAliasPermissions", @@ -1378,7 +1378,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Updates a Amazon Connect client add-in. Use this action to update the name and endpoint URL of a Amazon Connect client add-in.

    " + "documentation":"

    Updates a Connect Customer client add-in. Use this action to update the name and endpoint URL of a Connect Customer client add-in.

    " }, "UpdateConnectionAliasPermission":{ "name":"UpdateConnectionAliasPermission", @@ -2253,7 +2253,7 @@ "documentation":"

    The endpoint URL of the client add-in.

    " } }, - "documentation":"

    Describes an Amazon Connect client add-in.

    " + "documentation":"

    Describes an Connect Customer client add-in.

    " }, "ConnectClientAddInList":{ "type":"list", @@ -2463,7 +2463,7 @@ }, "URL":{ "shape":"AddInUrl", - "documentation":"

    The endpoint URL of the Amazon Connect client add-in.

    " + "documentation":"

    The endpoint URL of the Connect Customer client add-in.

    " } } }, @@ -6232,7 +6232,7 @@ }, "URL":{ "shape":"AddInUrl", - "documentation":"

    The endpoint URL of the Amazon Connect client add-in.

    " + "documentation":"

    The endpoint URL of the Connect Customer client add-in.

    " } } }, diff --git a/tests/functional/botocore/endpoint-rules/taxsettings/endpoint-tests-1.json b/tests/functional/botocore/endpoint-rules/taxsettings/endpoint-tests-1.json index 3a4709d07c99..35b6c9d96a59 100644 --- a/tests/functional/botocore/endpoint-rules/taxsettings/endpoint-tests-1.json +++ b/tests/functional/botocore/endpoint-rules/taxsettings/endpoint-tests-1.json @@ -202,85 +202,43 @@ } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1" - } - ] - }, - "url": "https://tax-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-gov-west-1" + "signingRegion": "eusc-de-east-1" } ] }, - "url": "https://tax-fips.us-gov-west-1.amazonaws.com" + "url": "https://tax-fips.eusc-de-east-1.amazonaws.eu" } }, "params": { - "Region": "us-gov-west-1", + "Region": "eusc-de-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1" - } - ] - }, - "url": "https://tax.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-gov-west-1" + "signingRegion": "eusc-de-east-1" } ] }, - "url": "https://tax.us-gov-west-1.amazonaws.com" + "url": "https://tax.eusc-de-east-1.amazonaws.eu" } }, "params": { - "Region": "us-gov-west-1", + "Region": "eusc-de-east-1", "UseFIPS": false, "UseDualStack": false } @@ -454,43 +412,85 @@ } }, { - "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "eusc-de-east-1" + "signingRegion": "us-gov-west-1" } ] }, - "url": "https://tax-fips.eusc-de-east-1.amazonaws.eu" + "url": "https://tax-fips.us-gov-west-1.api.aws" } }, "params": { - "Region": "eusc-de-east-1", + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://tax-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "eusc-de-east-1" + "signingRegion": "us-gov-west-1" } ] }, - "url": "https://tax.eusc-de-east-1.amazonaws.eu" + "url": "https://tax.us-gov-west-1.api.aws" } }, "params": { - "Region": "eusc-de-east-1", + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://tax.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", "UseFIPS": false, "UseDualStack": false } From 4ab77ef61837638162ab3a4ae734e80b2dffd6e4 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 4 Jun 2026 18:11:17 +0000 Subject: [PATCH 71/73] Bump version to 2.34.62 --- .changes/2.34.62.json | 92 +++++++++++++++++++ .../api-change-appflow-51688.json | 5 - .../api-change-appintegrations-69315.json | 5 - .../api-change-auditmanager-76714.json | 5 - .../api-change-chimesdkvoice-9801.json | 5 - .../api-change-cloudformation-97707.json | 5 - .../next-release/api-change-config-50735.json | 5 - .../api-change-connectparticipant-14904.json | 5 - .../next-release/api-change-efs-85515.json | 5 - .../next-release/api-change-emr-74256.json | 5 - .../next-release/api-change-glue-14739.json | 5 - .../api-change-guardduty-77086.json | 5 - .../next-release/api-change-ivs-47016.json | 5 - .../next-release/api-change-kendra-58549.json | 5 - .../api-change-sagemaker-22021.json | 5 - .../next-release/api-change-sns-60476.json | 5 - .../next-release/api-change-wickr-82298.json | 5 - .../api-change-workdocs-4542.json | 5 - .../api-change-workspaces-54058.json | 5 - CHANGELOG.rst | 23 +++++ awscli/__init__.py | 2 +- configure | 14 +-- configure.ac | 2 +- doc/source/conf.py | 2 +- 24 files changed, 125 insertions(+), 100 deletions(-) create mode 100644 .changes/2.34.62.json delete mode 100644 .changes/next-release/api-change-appflow-51688.json delete mode 100644 .changes/next-release/api-change-appintegrations-69315.json delete mode 100644 .changes/next-release/api-change-auditmanager-76714.json delete mode 100644 .changes/next-release/api-change-chimesdkvoice-9801.json delete mode 100644 .changes/next-release/api-change-cloudformation-97707.json delete mode 100644 .changes/next-release/api-change-config-50735.json delete mode 100644 .changes/next-release/api-change-connectparticipant-14904.json delete mode 100644 .changes/next-release/api-change-efs-85515.json delete mode 100644 .changes/next-release/api-change-emr-74256.json delete mode 100644 .changes/next-release/api-change-glue-14739.json delete mode 100644 .changes/next-release/api-change-guardduty-77086.json delete mode 100644 .changes/next-release/api-change-ivs-47016.json delete mode 100644 .changes/next-release/api-change-kendra-58549.json delete mode 100644 .changes/next-release/api-change-sagemaker-22021.json delete mode 100644 .changes/next-release/api-change-sns-60476.json delete mode 100644 .changes/next-release/api-change-wickr-82298.json delete mode 100644 .changes/next-release/api-change-workdocs-4542.json delete mode 100644 .changes/next-release/api-change-workspaces-54058.json diff --git a/.changes/2.34.62.json b/.changes/2.34.62.json new file mode 100644 index 000000000000..162fa89607fd --- /dev/null +++ b/.changes/2.34.62.json @@ -0,0 +1,92 @@ +[ + { + "category": "``appflow``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "AWS Glue Interactive Sessions now supports Apache Spark Connect, enabling remote Spark execution over gRPC with minimal client-side dependencies. Adds GetSessionEndpoint and GetDashboardUrl APIs. Modifies CreateSession now accepts SPARK CONNECT session type.", + "type": "api-change" + }, + { + "category": "``kendra``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``efs``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``cloudformation``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``wickr``", + "description": "AWS Wickr now allows network administrators to configure a maximum session duration for non-SSO users in security groups, and display customizable consent popups to users at login for terms of use or compliance acknowledgements.", + "type": "api-change" + }, + { + "category": "``appintegrations``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``auditmanager``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``config``", + "description": "AWS Config now supports internal service-linked rules, allowing AWS service partners to deploy Config rules for customers and use the evaluation results to build enhanced features.", + "type": "api-change" + }, + { + "category": "``sns``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``guardduty``", + "description": "Remove unsupported RDS field for filter", + "type": "api-change" + }, + { + "category": "``connectparticipant``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``ivs``", + "description": "adds UpdateAdConfiguration operation to AWS IVS low-latency APIs", + "type": "api-change" + }, + { + "category": "``chime-sdk-voice``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``workdocs``", + "description": "Adding new BDD representation of endpoint ruleset", + "type": "api-change" + }, + { + "category": "``emr``", + "description": "Added support for Spark Connect interactive sessions on Amazon EMR on EC2 with new APIs - StartSession, GetSession, GetSessionEndpoint, ListSessions, and TerminateSession. Added sessionEnabled field in RunJobFlow and DescribeCluster to enable Spark Connect endpoints on EMR clusters.", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "Adds the IncludedData parameter to DescribeModelCard and DescribeModelPackage. Set it to MetadataOnly to retrieve a model card without decrypt permission on the customer managed AWS KMS key (default AllData returns full content). Adds support for the MTRL Job resource in SageMaker Search.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-appflow-51688.json b/.changes/next-release/api-change-appflow-51688.json deleted file mode 100644 index 44468deb7168..000000000000 --- a/.changes/next-release/api-change-appflow-51688.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``appflow``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-appintegrations-69315.json b/.changes/next-release/api-change-appintegrations-69315.json deleted file mode 100644 index 23d3d652bcd9..000000000000 --- a/.changes/next-release/api-change-appintegrations-69315.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``appintegrations``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-auditmanager-76714.json b/.changes/next-release/api-change-auditmanager-76714.json deleted file mode 100644 index ace93e8013ba..000000000000 --- a/.changes/next-release/api-change-auditmanager-76714.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``auditmanager``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-chimesdkvoice-9801.json b/.changes/next-release/api-change-chimesdkvoice-9801.json deleted file mode 100644 index 522680afec5a..000000000000 --- a/.changes/next-release/api-change-chimesdkvoice-9801.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``chime-sdk-voice``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-cloudformation-97707.json b/.changes/next-release/api-change-cloudformation-97707.json deleted file mode 100644 index 3b975ed9637d..000000000000 --- a/.changes/next-release/api-change-cloudformation-97707.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cloudformation``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-config-50735.json b/.changes/next-release/api-change-config-50735.json deleted file mode 100644 index ca811a64df48..000000000000 --- a/.changes/next-release/api-change-config-50735.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``config``", - "description": "AWS Config now supports internal service-linked rules, allowing AWS service partners to deploy Config rules for customers and use the evaluation results to build enhanced features." -} diff --git a/.changes/next-release/api-change-connectparticipant-14904.json b/.changes/next-release/api-change-connectparticipant-14904.json deleted file mode 100644 index 324c5be3ae87..000000000000 --- a/.changes/next-release/api-change-connectparticipant-14904.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connectparticipant``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-efs-85515.json b/.changes/next-release/api-change-efs-85515.json deleted file mode 100644 index 4f6a14a25cea..000000000000 --- a/.changes/next-release/api-change-efs-85515.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``efs``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-emr-74256.json b/.changes/next-release/api-change-emr-74256.json deleted file mode 100644 index ee3d50522a59..000000000000 --- a/.changes/next-release/api-change-emr-74256.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``emr``", - "description": "Added support for Spark Connect interactive sessions on Amazon EMR on EC2 with new APIs - StartSession, GetSession, GetSessionEndpoint, ListSessions, and TerminateSession. Added sessionEnabled field in RunJobFlow and DescribeCluster to enable Spark Connect endpoints on EMR clusters." -} diff --git a/.changes/next-release/api-change-glue-14739.json b/.changes/next-release/api-change-glue-14739.json deleted file mode 100644 index 2c2ae4e64a7b..000000000000 --- a/.changes/next-release/api-change-glue-14739.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``glue``", - "description": "AWS Glue Interactive Sessions now supports Apache Spark Connect, enabling remote Spark execution over gRPC with minimal client-side dependencies. Adds GetSessionEndpoint and GetDashboardUrl APIs. Modifies CreateSession now accepts SPARK CONNECT session type." -} diff --git a/.changes/next-release/api-change-guardduty-77086.json b/.changes/next-release/api-change-guardduty-77086.json deleted file mode 100644 index 201bd433e936..000000000000 --- a/.changes/next-release/api-change-guardduty-77086.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``guardduty``", - "description": "Remove unsupported RDS field for filter" -} diff --git a/.changes/next-release/api-change-ivs-47016.json b/.changes/next-release/api-change-ivs-47016.json deleted file mode 100644 index 03b762bb8fe8..000000000000 --- a/.changes/next-release/api-change-ivs-47016.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ivs``", - "description": "adds UpdateAdConfiguration operation to AWS IVS low-latency APIs" -} diff --git a/.changes/next-release/api-change-kendra-58549.json b/.changes/next-release/api-change-kendra-58549.json deleted file mode 100644 index 3b6358491ab3..000000000000 --- a/.changes/next-release/api-change-kendra-58549.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``kendra``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-sagemaker-22021.json b/.changes/next-release/api-change-sagemaker-22021.json deleted file mode 100644 index cd0e8e8897bc..000000000000 --- a/.changes/next-release/api-change-sagemaker-22021.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sagemaker``", - "description": "Adds the IncludedData parameter to DescribeModelCard and DescribeModelPackage. Set it to MetadataOnly to retrieve a model card without decrypt permission on the customer managed AWS KMS key (default AllData returns full content). Adds support for the MTRL Job resource in SageMaker Search." -} diff --git a/.changes/next-release/api-change-sns-60476.json b/.changes/next-release/api-change-sns-60476.json deleted file mode 100644 index 4229996f679a..000000000000 --- a/.changes/next-release/api-change-sns-60476.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sns``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-wickr-82298.json b/.changes/next-release/api-change-wickr-82298.json deleted file mode 100644 index b0c03e0cd47c..000000000000 --- a/.changes/next-release/api-change-wickr-82298.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``wickr``", - "description": "AWS Wickr now allows network administrators to configure a maximum session duration for non-SSO users in security groups, and display customizable consent popups to users at login for terms of use or compliance acknowledgements." -} diff --git a/.changes/next-release/api-change-workdocs-4542.json b/.changes/next-release/api-change-workdocs-4542.json deleted file mode 100644 index b9ba1a84d644..000000000000 --- a/.changes/next-release/api-change-workdocs-4542.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``workdocs``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/.changes/next-release/api-change-workspaces-54058.json b/.changes/next-release/api-change-workspaces-54058.json deleted file mode 100644 index 5f61a26f2027..000000000000 --- a/.changes/next-release/api-change-workspaces-54058.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``workspaces``", - "description": "Adding new BDD representation of endpoint ruleset" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e131465349b7..67eb3f5b8f11 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,29 @@ CHANGELOG ========= +2.34.62 +======= + +* api-change:``appflow``: Adding new BDD representation of endpoint ruleset +* api-change:``glue``: AWS Glue Interactive Sessions now supports Apache Spark Connect, enabling remote Spark execution over gRPC with minimal client-side dependencies. Adds GetSessionEndpoint and GetDashboardUrl APIs. Modifies CreateSession now accepts SPARK CONNECT session type. +* api-change:``kendra``: Adding new BDD representation of endpoint ruleset +* api-change:``efs``: Adding new BDD representation of endpoint ruleset +* api-change:``cloudformation``: Adding new BDD representation of endpoint ruleset +* api-change:``workspaces``: Adding new BDD representation of endpoint ruleset +* api-change:``wickr``: AWS Wickr now allows network administrators to configure a maximum session duration for non-SSO users in security groups, and display customizable consent popups to users at login for terms of use or compliance acknowledgements. +* api-change:``appintegrations``: Adding new BDD representation of endpoint ruleset +* api-change:``auditmanager``: Adding new BDD representation of endpoint ruleset +* api-change:``config``: AWS Config now supports internal service-linked rules, allowing AWS service partners to deploy Config rules for customers and use the evaluation results to build enhanced features. +* api-change:``sns``: Adding new BDD representation of endpoint ruleset +* api-change:``guardduty``: Remove unsupported RDS field for filter +* api-change:``connectparticipant``: Adding new BDD representation of endpoint ruleset +* api-change:``ivs``: adds UpdateAdConfiguration operation to AWS IVS low-latency APIs +* api-change:``chime-sdk-voice``: Adding new BDD representation of endpoint ruleset +* api-change:``workdocs``: Adding new BDD representation of endpoint ruleset +* api-change:``emr``: Added support for Spark Connect interactive sessions on Amazon EMR on EC2 with new APIs - StartSession, GetSession, GetSessionEndpoint, ListSessions, and TerminateSession. Added sessionEnabled field in RunJobFlow and DescribeCluster to enable Spark Connect endpoints on EMR clusters. +* api-change:``sagemaker``: Adds the IncludedData parameter to DescribeModelCard and DescribeModelPackage. Set it to MetadataOnly to retrieve a model card without decrypt permission on the customer managed AWS KMS key (default AllData returns full content). Adds support for the MTRL Job resource in SageMaker Search. + + 2.34.61 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 6b9d68a27d71..5333db9c389f 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -20,7 +20,7 @@ import os import sys -__version__ = '2.34.61' +__version__ = '2.34.62' # # Get our data path to be added to botocore's search path diff --git a/configure b/configure index 07c132188964..7ba3ca2b3400 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for awscli 2.34.61. +# Generated by GNU Autoconf 2.71 for awscli 2.34.62. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -607,8 +607,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='awscli' PACKAGE_TARNAME='awscli' -PACKAGE_VERSION='2.34.61' -PACKAGE_STRING='awscli 2.34.61' +PACKAGE_VERSION='2.34.62' +PACKAGE_STRING='awscli 2.34.62' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1255,7 +1255,7 @@ _ACEOF fi if $ac_init_version; then cat <<\_ACEOF -awscli configure 2.34.61 +awscli configure 2.34.62 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by awscli $as_me 2.34.61, which was +It was created by awscli $as_me 2.34.62, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2668,7 +2668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by awscli $as_me 2.34.61, which was +This file was extended by awscli $as_me 2.34.62, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2723,7 +2723,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -awscli config.status 2.34.61 +awscli config.status 2.34.62 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 224500e0589a..f402447a7e36 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_CONFIG_MACRO_DIRS([m4]) -AC_INIT([awscli], [2.34.61]) +AC_INIT([awscli], [2.34.62]) AC_CONFIG_SRCDIR([bin/aws]) AM_PATH_PYTHON([3.8]) diff --git a/doc/source/conf.py b/doc/source/conf.py index 67f0ec270519..bbe64bc537b2 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,7 +66,7 @@ # The short X.Y version. version = '2.0' # The full version, including alpha/beta/rc tags. -release = '2.34.61' +release = '2.34.62' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 2b1374f5e3e11456aacea7f00f0ed8db5d50296e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 16:07:00 -0400 Subject: [PATCH 72/73] [v2] Add security considerations note to cfn package docs (#10381) Add a warning callout to the `aws cloudformation package` reference documentation clarifying that the command treats the supplied template as trusted build input. Paths referenced by template properties such as CodeUri, ContentUri, TemplateURL, and the AWS::Include Location are resolved against the local filesystem and uploaded to S3 using the invoking user's AWS credentials and OS identity, with no constraint to the template's directory. Users should not run the command against templates from untrusted sources. Co-authored-by: Roger Zhang --- .../cloudformation/_package_description.rst | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/awscli/examples/cloudformation/_package_description.rst b/awscli/examples/cloudformation/_package_description.rst index 2eff27560b1c..c09a35863d3e 100644 --- a/awscli/examples/cloudformation/_package_description.rst +++ b/awscli/examples/cloudformation/_package_description.rst @@ -54,3 +54,23 @@ command doesn't upload the artifacts. Use the ``--force-upload flag`` to skip th check and always upload the artifacts. The command uses MD5 checksums to compare files by default. If MD5 is not available in the environment, a SHA256 checksum is used. +.. warning:: + + **Security considerations** + + The ``package`` command treats the supplied CloudFormation template as + trusted build input. The properties listed above (for example, + ``CodeUri``, ``ContentUri``, ``TemplateURL``, and the ``Location`` parameter + for the ``AWS::Include`` transform) cause the CLI to read files from the + local filesystem at the paths the template specifies and upload them to the + S3 bucket you provide, using your own AWS credentials and operating-system + identity. Paths in the template are not constrained to the template's + directory; relative paths that traverse above the template directory (for + example, ``CodeUri: ../src/my-function``) are supported by design to enable + monorepo, shared-fragment, and nested-stack layouts. + + Do not run ``aws cloudformation package`` against templates from sources + you do not trust. A malicious template author can cause arbitrary readable + files on your machine, such as credentials or other sensitive files, to be + uploaded to the configured S3 bucket. + From d9f3ee72fc99b2d2121cb821df4c435e1bb1d95e Mon Sep 17 00:00:00 2001 From: aemous Date: Fri, 5 Jun 2026 15:04:27 -0400 Subject: [PATCH 73/73] Fix lazy_emitter before/after-load-plugins event pairing and update benchmark metric hooks --- awscli/handlers_registry.py | 1 + awscli/lazy_emitter.py | 32 ++++++----- scripts/performance/benchmark_utils.py | 74 +++++++++++++++----------- 3 files changed, 61 insertions(+), 46 deletions(-) diff --git a/awscli/handlers_registry.py b/awscli/handlers_registry.py index fcca245f00f7..ac98fece5c10 100644 --- a/awscli/handlers_registry.py +++ b/awscli/handlers_registry.py @@ -20,6 +20,7 @@ Entry format: (module, fn_name) call fn(event_handlers) """ + from __future__ import annotations import enum diff --git a/awscli/lazy_emitter.py b/awscli/lazy_emitter.py index 2043902c77cd..422ae65f6242 100644 --- a/awscli/lazy_emitter.py +++ b/awscli/lazy_emitter.py @@ -83,6 +83,7 @@ def _apply_main_command_table_ops(self, kwargs): if command_table is None or session is None: return + super()._emit('before-load-plugins.building-command-table.main', {}) for op in self._main_ops: if op[0] == CommandTableOp.RENAME: _, old_name, new_name = op @@ -110,6 +111,7 @@ def _apply_main_command_table_ops(self, kwargs): if entry not in self._initialized: self._initialized.add(entry) self._pending_count -= 1 + super()._emit('after-load-plugins.building-command-table.main', {}) def _ensure_initialized(self, event_name): """Initialize any plugins whose event patterns match event_name.""" @@ -119,20 +121,22 @@ def _ensure_initialized(self, event_name): if candidates is None: candidates = self._init_trie.prefix_search(event_name) self._init_cache[event_name] = candidates - for entry in candidates: - if entry not in self._initialized: - self._initialized.add(entry) - self._pending_count -= 1 - module_path, fn_name = entry - logger.debug( - 'Lazy-initializing plugin %s.%s for event %s', - module_path, - fn_name, - event_name, - ) - mod = importlib.import_module(module_path) - fn = getattr(mod, fn_name) - fn(self) + super()._emit(f'before-load-plugins.{event_name}', {}) + for entry in candidates: + if entry not in self._initialized: + self._initialized.add(entry) + self._pending_count -= 1 + module_path, fn_name = entry + logger.debug( + 'Lazy-initializing plugin %s.%s for event %s', + module_path, + fn_name, + event_name, + ) + mod = importlib.import_module(module_path) + fn = getattr(mod, fn_name) + fn(self) + super()._emit(f'after-load-plugins.{event_name}', {}) def _emit(self, event_name, kwargs, stop_on_response=False): if ( diff --git a/scripts/performance/benchmark_utils.py b/scripts/performance/benchmark_utils.py index 3749f6e7e3fc..814816832f17 100644 --- a/scripts/performance/benchmark_utils.py +++ b/scripts/performance/benchmark_utils.py @@ -4,6 +4,7 @@ import shutil import sys import time +from typing import Optional import psutil @@ -277,18 +278,21 @@ def _run_command_with_metric_hooks(self, cmd, out_file): """ Runs a CLI command and logs CLI-specific metrics to a file. """ - first_client_invocation_time = None - create_client_start_time = None - create_client_end_time = None - plugin_import_start_time = None - plugin_import_end_time = None + first_client_invocation_time: Optional[float] = None + create_client_start_time: Optional[float] = None + create_client_end_time: Optional[float] = None + plugin_import_start_time: Optional[float] = None + plugin_import_depth = 0 + plugin_import_time = 0 start_time = time.time() before_imports = start_time # We import from awscli lazily to ensure import time is measured in # total runtime. - from awscli.botocore.hooks import HierarchicalEmitter from awscli.clidriver import AWSCLIEntryPoint, create_clidriver + from awscli.handlers_registry import MAIN_COMMAND_TABLE_OPS + from awscli.lazy_emitter import LazyInitEmitter + after_imports = time.time() def _log_invocation_time(params, request_signer, model, **kwargs): @@ -307,16 +311,25 @@ def _log_create_client_end(**kwargs): create_client_end_time = time.time() def _log_import_plugins_start(**kwargs): - nonlocal plugin_import_start_time + nonlocal plugin_import_depth, plugin_import_start_time + plugin_import_depth += 1 if plugin_import_start_time is None: plugin_import_start_time = time.time() def _log_import_plugins_end(**kwargs): - nonlocal plugin_import_end_time - if plugin_import_end_time is None: - plugin_import_end_time = time.time() + nonlocal plugin_import_depth, plugin_import_start_time + nonlocal plugin_import_time + plugin_import_depth -= 1 + if ( + plugin_import_depth == 0 + and plugin_import_start_time is not None + ): + plugin_import_time += time.time() - plugin_import_start_time + plugin_import_start_time = None - event_hooks = HierarchicalEmitter() + event_hooks = LazyInitEmitter( + main_command_table_ops=MAIN_COMMAND_TABLE_OPS + ) event_hooks.register_last( 'before-call', _log_invocation_time, @@ -333,12 +346,12 @@ def _log_import_plugins_end(**kwargs): 'benchmarks.log-after-create-client', ) event_hooks.register_last( - 'before-load-plugins', + 'before-load-plugins.*', _log_import_plugins_start, 'benchmarks.log-before-load-plugins', ) event_hooks.register_last( - 'after-load-plugins', + 'after-load-plugins.*', _log_import_plugins_end, 'benchmarks.log-after-load-plugins', ) @@ -348,26 +361,23 @@ def _log_import_plugins_end(**kwargs): end_time = time.time() # write the collected metrics to a file - with open(out_file, 'w') as metrics_f: - metrics_f.write( - json.dumps( - { - 'return_code': rc, - 'start_time': start_time, - 'end_time': end_time, - 'first_client_invocation_time': first_client_invocation_time, - 'load_plugins_time': ( - plugin_import_end_time - plugin_import_start_time - ), - 'static_imports_time': ( - after_imports - before_imports - ), - 'create-client-time': ( - create_client_end_time - create_client_start_time - ) - } - ) + metrics = { + 'return_code': rc, + 'start_time': start_time, + 'end_time': end_time, + 'first_client_invocation_time': first_client_invocation_time, + 'load_plugins_time': plugin_import_time, + 'static_imports_time': after_imports - before_imports, + } + if ( + create_client_start_time is not None + and create_client_end_time is not None + ): + metrics['create-client-time'] = ( + create_client_end_time - create_client_start_time ) + with open(out_file, 'w') as metrics_f: + metrics_f.write(json.dumps(metrics)) def _run_isolated_benchmark( self,