diff --git a/.changes/1.32.102.json b/.changes/1.32.102.json
new file mode 100644
index 000000000000..497a767fdae3
--- /dev/null
+++ b/.changes/1.32.102.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This release adds support to provide guardrail configuration and modify inference parameters that are then used in RetrieveAndGenerate API in Agents for Amazon Bedrock.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint``",
+ "description": "This release adds support for specifying email message headers for Email Templates, Campaigns, Journeys and Send Messages.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53resolver``",
+ "description": "Update the DNS Firewall settings to correct a spelling issue.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm-sap``",
+ "description": "Added support for application-aware start/stop of SAP applications running on EC2 instances, with SSM for SAP",
+ "type": "api-change"
+ },
+ {
+ "category": "``verifiedpermissions``",
+ "description": "Adds policy effect and actions fields to Policy API's.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.103.json b/.changes/1.32.103.json
new file mode 100644
index 000000000000..99caa64f2080
--- /dev/null
+++ b/.changes/1.32.103.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``discovery``",
+ "description": "add v2 smoke tests and smithy smokeTests trait for SDK testing",
+ "type": "api-change"
+ },
+ {
+ "category": "``greengrassv2``",
+ "description": "Mark ComponentVersion in ComponentDeploymentSpecification as required.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Introduced support for G6 instance types on Sagemaker Notebook Instances and on SageMaker Studio for JupyterLab and CodeEditor applications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sso-oidc``",
+ "description": "Updated request parameters for PKCE support.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.104.json b/.changes/1.32.104.json
new file mode 100644
index 000000000000..c0d01b9af359
--- /dev/null
+++ b/.changes/1.32.104.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``events``",
+ "description": "Amazon EventBridge introduces KMS customer-managed key (CMK) encryption support for custom and partner events published on EventBridge Event Bus (including default bus) and UpdateEventBus API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``vpc-lattice``",
+ "description": "This release adds TLS Passthrough support. It also increases max number of target group per rule to 10.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.105.json b/.changes/1.32.105.json
new file mode 100644
index 000000000000..ed70d806d04e
--- /dev/null
+++ b/.changes/1.32.105.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``connect``",
+ "description": "Amazon Connect provides enhanced search capabilities for flows & flow modules on the Connect admin website and programmatically using APIs. You can search for flows and flow modules by name, description, type, status, and tags, to filter and identify a specific flow in your Connect instances.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Updated a few x-id in the http uri traits",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.106.json b/.changes/1.32.106.json
new file mode 100644
index 000000000000..12704461fb3d
--- /dev/null
+++ b/.changes/1.32.106.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Updating Bedrock Knowledge Base Metadata & Filters feature with two new filters listContains and stringContains",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "CodeBuild Reserved Capacity VPC Support",
+ "type": "api-change"
+ },
+ {
+ "category": "``datasync``",
+ "description": "Task executions now display a CANCELLING status when an execution is in the process of being cancelled.",
+ "type": "api-change"
+ },
+ {
+ "category": "``grafana``",
+ "description": "This release adds new ServiceAccount and ServiceAccountToken APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medical-imaging``",
+ "description": "Added support for importing medical imaging data from Amazon S3 buckets across accounts and regions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Documentation-only update for AWS Security Hub",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.107.json b/.changes/1.32.107.json
new file mode 100644
index 000000000000..86f9024a6f56
--- /dev/null
+++ b/.changes/1.32.107.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "This release adds support for waiters to fail on AccessDeniedException when having insufficient permissions",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Adding Contact Flow metrics to the GetMetricDataV2 API",
+ "type": "api-change"
+ },
+ {
+ "category": "``kafka``",
+ "description": "AWS MSK support for Broker Removal.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mwaa``",
+ "description": "Amazon MWAA now supports Airflow web server auto scaling to automatically handle increased demand from REST APIs, Command Line Interface (CLI), or more Airflow User Interface (UI) users. Customers can specify maximum and minimum web server instances during environment creation and update workflow.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "This release adds DescribeKeyRegistration and UpdateKeyRegistration APIs to manage QuickSight Customer Managed Keys (CMK).",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Introduced WorkerAccessConfiguration to SageMaker Workteam. This allows customers to configure resource access for workers in a workteam.",
+ "type": "api-change"
+ },
+ {
+ "category": "``secretsmanager``",
+ "description": "Documentation updates for AWS Secrets Manager",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.108.json b/.changes/1.32.108.json
new file mode 100644
index 000000000000..25b8a8ec9f84
--- /dev/null
+++ b/.changes/1.32.108.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``application-autoscaling``",
+ "description": "add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "Aws CodeBuild now supports 36 hours build timeout",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "This release adds dualstack-without-public-ipv4 IP address type for ALB.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lakeformation``",
+ "description": "Introduces a new API, GetDataLakePrincipal, that returns the identity of the invoking principal",
+ "type": "api-change"
+ },
+ {
+ "category": "``transfer``",
+ "description": "Enable use of CloudFormation traits in Smithy model to improve generated CloudFormation schema from the Smithy API model.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.109.json b/.changes/1.32.109.json
new file mode 100644
index 000000000000..447147c7cf92
--- /dev/null
+++ b/.changes/1.32.109.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "This release adds support for using Guardrails with Bedrock Agents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This release adds support for using Guardrails with Bedrock Agents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``controltower``",
+ "description": "Added ListControlOperations API and filtering support for ListEnabledControls API. Updates also includes added metadata for enabled controls and control operations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``osis``",
+ "description": "Add support for creating an OpenSearch Ingestion pipeline that is attached to a provided VPC. Add information about the destinations of an OpenSearch Ingestion pipeline to the GetPipeline and ListPipelines APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release adds support for EngineLifecycleSupport on DBInstances, DBClusters, and GlobalClusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``secretsmanager``",
+ "description": "add v2 smoke tests and smithy smokeTests trait for SDK testing",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.110.json b/.changes/1.32.110.json
new file mode 100644
index 000000000000..b0ae3518b3a0
--- /dev/null
+++ b/.changes/1.32.110.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``cloudfront``",
+ "description": "Model update; no change to SDK functionality.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add Maintenance window to CreateJob and UpdateJob APIs and JobRun response. Add a new Job Run State for EXPIRED.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lightsail``",
+ "description": "This release adds support for Amazon Lightsail instances to switch between dual-stack or IPv4 only and IPv6-only public IP address types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mailmanager``",
+ "description": "This release includes a new Amazon SES feature called Mail Manager, which is a set of email gateway capabilities designed to help customers strengthen their organization's email infrastructure, simplify email workflow management, and streamline email compliance control.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pi``",
+ "description": "Performance Insights added a new input parameter called AuthorizedActions to support the fine-grained access feature. Performance Insights also restricted the acceptable input characters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation for Db2 license through AWS Marketplace.",
+ "type": "api-change"
+ },
+ {
+ "category": "``storagegateway``",
+ "description": "Added new SMBSecurityStrategy enum named MandatoryEncryptionNoAes128, new mode enforces encryption and disables AES 128-bit algorithums.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.111.json b/.changes/1.32.111.json
new file mode 100644
index 000000000000..cf003dd00422
--- /dev/null
+++ b/.changes/1.32.111.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``chatbot``",
+ "description": "This change adds support for tagging Chatbot configurations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudformation``",
+ "description": "Added DeletionMode FORCE_DELETE_STACK for deleting a stack that is stuck in DELETE_FAILED state due to resource deletion failure.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kms``",
+ "description": "This release includes feature to import customer's asymmetric (RSA, ECC and SM2) and HMAC keys into KMS in China.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This release adds support for enabling or disabling a data source configured as part of Zero-ETL integration with Amazon S3, by setting its status.",
+ "type": "api-change"
+ },
+ {
+ "category": "``wafv2``",
+ "description": "You can now use Security Lake to collect web ACL traffic data.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.112.json b/.changes/1.32.112.json
new file mode 100644
index 000000000000..bc271e879692
--- /dev/null
+++ b/.changes/1.32.112.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``emr-serverless``",
+ "description": "This release adds the capability to run interactive workloads using Apache Livy Endpoint.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opsworks``",
+ "description": "Documentation-only update for OpsWorks Stacks.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.113.json b/.changes/1.32.113.json
new file mode 100644
index 000000000000..cfa389e1f494
--- /dev/null
+++ b/.changes/1.32.113.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``dynamodb``",
+ "description": "Documentation only updates for DynamoDB.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotfleetwise``",
+ "description": "AWS IoT FleetWise now supports listing vehicles with attributes filter, ListVehicles API is updated to support additional attributes filter.",
+ "type": "api-change"
+ },
+ {
+ "category": "``managedblockchain``",
+ "description": "This is a minor documentation update to address the impact of the shut down of the Goerli and Polygon networks.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.114.json b/.changes/1.32.114.json
new file mode 100644
index 000000000000..bd7cd32b2ce4
--- /dev/null
+++ b/.changes/1.32.114.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``dynamodb``",
+ "description": "Doc-only update for DynamoDB. Specified the IAM actions needed to authorize a user to create a table with a resource-based policy.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Providing support to accept BgpAsnExtended attribute",
+ "type": "api-change"
+ },
+ {
+ "category": "``kafka``",
+ "description": "Adds ControllerNodeInfo in ListNodes response to support Raft mode for MSK",
+ "type": "api-change"
+ },
+ {
+ "category": "``swf``",
+ "description": "This release adds new APIs for deleting activity type and workflow type resources.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.115.json b/.changes/1.32.115.json
new file mode 100644
index 000000000000..a66e32cfa7f1
--- /dev/null
+++ b/.changes/1.32.115.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``athena``",
+ "description": "Throwing validation errors on CreateNotebook with Name containing `/`,`:`,`\\`",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports manually creating GitHub webhooks",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "This release includes changes to DescribeContact API's response by including ConnectedToSystemTimestamp, RoutingCriteria, Customer, Campaign, AnsweringMachineDetectionStatus, CustomerVoiceActivity, QualityMetrics, DisconnectDetails, and SegmentAttributes information from a contact in Amazon Connect.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add optional field JobMode to CreateJob and UpdateJob APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Add ROOT type for TargetType model",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.116.json b/.changes/1.32.116.json
new file mode 100644
index 000000000000..6f7787e74ca4
--- /dev/null
+++ b/.changes/1.32.116.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``acm``",
+ "description": "add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "With this release, Knowledge bases for Bedrock adds support for Titan Text Embedding v2.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "This release adds Converse and ConverseStream APIs to Bedrock Runtime",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudtrail``",
+ "description": "CloudTrail Lake returns PartitionKeys in the GetEventDataStore API response. Events are grouped into partitions based on these keys for better query performance. For example, the calendarday key groups events by day, while combining the calendarday key with the hour key groups them by day and hour.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Adding associatedQueueIds as a SearchCriteria and response field to the SearchRoutingProfiles API",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr-serverless``",
+ "description": "The release adds support for spark structured streaming.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation for Aurora Postgres DBname.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adds Model Card information as a new component to Model Package. Autopilot launches algorithm selection for TimeSeries modality to generate AutoML candidates per algorithm.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm start-session``",
+ "description": "Only provide profile name to session-manager-plugin if provided using --profile flag",
+ "type": "bugfix"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.32.117.json b/.changes/1.32.117.json
new file mode 100644
index 000000000000..abbe7aba702d
--- /dev/null
+++ b/.changes/1.32.117.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports Self-hosted GitHub Actions runners for Github Enterprise",
+ "type": "api-change"
+ },
+ {
+ "category": "``codeguru-security``",
+ "description": "This release includes minor model updates and documentation updates.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elasticache``",
+ "description": "Update to attributes of TestFailover and minor revisions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``launch-wizard``",
+ "description": "This release adds support for describing workload deployment specifications, deploying additional workload types, and managing tags for Launch Wizard resources with API operations.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.0.json b/.changes/1.33.0.json
new file mode 100644
index 000000000000..178c89ff57e5
--- /dev/null
+++ b/.changes/1.33.0.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``amplify``",
+ "description": "This doc-only update identifies fields that are specific to Gen 1 and Gen 2 applications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``batch``",
+ "description": "This release adds support for the AWS Batch GetJobQueueSnapshot API operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Adds support for EKS add-ons pod identity associations integration",
+ "type": "api-change"
+ },
+ {
+ "category": "``iottwinmaker``",
+ "description": "Support RESET_VALUE UpdateType for PropertyUpdates to reset property value to default or null",
+ "type": "api-change"
+ },
+ {
+ "category": "logs start-live-tail",
+ "description": "Adds support for starting a live tail streaming session for one or more log groups.",
+ "type": "feature"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.1.json b/.changes/1.33.1.json
new file mode 100644
index 000000000000..2c5fcc1c7b31
--- /dev/null
+++ b/.changes/1.33.1.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``ec2``",
+ "description": "U7i instances with up to 32 TiB of DDR5 memory and 896 vCPUs are now available. C7i-flex instances are launched and are lower-priced variants of the Amazon EC2 C7i instances that offer a baseline level of CPU performance with the ability to scale up to the full compute performance 95% of the time.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pipes``",
+ "description": "This release adds Timestream for LiveAnalytics as a supported target in EventBridge Pipes",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Extend DescribeClusterNode response with private DNS hostname and IP address, and placement information about availability zone and availability zone ID.",
+ "type": "api-change"
+ },
+ {
+ "category": "``taxsettings``",
+ "description": "Initial release of AWS Tax Settings API",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.10.json b/.changes/1.33.10.json
new file mode 100644
index 000000000000..123c80200acf
--- /dev/null
+++ b/.changes/1.33.10.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "Doc-only update that adds name constraints as an allowed extension for ImportCertificateAuthorityCertificate.",
+ "type": "api-change"
+ },
+ {
+ "category": "``batch``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports global and organization GitHub webhooks",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-idp``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ds``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``efs``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "This release introduces a new feature, Usage profiles. Usage profiles allow the AWS Glue admin to create different profiles for various classes of users within the account, enforcing limits and defaults for jobs and sessions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release includes support for creating I-frame only video segments for DASH trick play.",
+ "type": "api-change"
+ },
+ {
+ "category": "``secretsmanager``",
+ "description": "Doc only update for Secrets Manager",
+ "type": "api-change"
+ },
+ {
+ "category": "``waf``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.11.json b/.changes/1.33.11.json
new file mode 100644
index 000000000000..a2c2ddc2d838
--- /dev/null
+++ b/.changes/1.33.11.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``bedrock-runtime``",
+ "description": "This release adds support for using Guardrails with the Converse and ConverseStream APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudtrail``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``config``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "This release adds support to surface async fargate customer errors from async path to customer through describe-fargate-profile API response.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lightsail``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``polly``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rekognition``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Launched a new feature in SageMaker to provide managed MLflow Tracking Servers for customers to track ML experiments. This release also adds a new capability of attaching additional storage to SageMaker HyperPod cluster instances.",
+ "type": "api-change"
+ },
+ {
+ "category": "``shield``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``snowball``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.12.json b/.changes/1.33.12.json
new file mode 100644
index 000000000000..4ca212f92a40
--- /dev/null
+++ b/.changes/1.33.12.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``artifact``",
+ "description": "This release adds an acceptanceType field to the ReportSummary structure (used in the ListReports API response).",
+ "type": "api-change"
+ },
+ {
+ "category": "``athena``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cur``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``directconnect``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elastictranscoder``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This release enables customers to use JSON Web Tokens (JWT) for authentication on their Amazon OpenSearch Service domains.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.13.json b/.changes/1.33.13.json
new file mode 100644
index 000000000000..bb7c0df1ae24
--- /dev/null
+++ b/.changes/1.33.13.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``bedrock-runtime``",
+ "description": "This release adds document support to Converse and ConverseStream APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``codeartifact``",
+ "description": "Add support for the Cargo package format.",
+ "type": "api-change"
+ },
+ {
+ "category": "``compute-optimizer``",
+ "description": "This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for Amazon RDS MySQL and RDS PostgreSQL.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cost-optimization-hub``",
+ "description": "This release enables AWS Cost Optimization Hub to show cost optimization recommendations for Amazon RDS MySQL and RDS PostgreSQL.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dynamodb``",
+ "description": "Doc-only update for DynamoDB. Fixed Important note in 6 Global table APIs - CreateGlobalTable, DescribeGlobalTable, DescribeGlobalTableSettings, ListGlobalTables, UpdateGlobalTable, and UpdateGlobalTableSettings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Fix Glue paginators for Jobs, JobRuns, Triggers, Blueprints and Workflows.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs-realtime``",
+ "description": "IVS Real-Time now offers customers the ability to record individual stage participants to S3.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adds support for model references in Hub service, and adds support for cross-account access of Hubs",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Documentation updates for Security Hub",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.14.json b/.changes/1.33.14.json
new file mode 100644
index 000000000000..13608c1230ff
--- /dev/null
+++ b/.changes/1.33.14.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Increases Converse API's document name length",
+ "type": "api-change"
+ },
+ {
+ "category": "``customer-profiles``",
+ "description": "This release includes changes to ProfileObjectType APIs, adds functionality top set and get capacity for profile object types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Fix EC2 multi-protocol info in models.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Allow enable/disable Q Apps when creating/updating a Q application; Return the Q Apps enablement information when getting a Q application.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm``",
+ "description": "Add sensitive trait to SSM IPAddress property for CloudTrail redaction",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-web``",
+ "description": "Added ability to enable DeepLinking functionality on a Portal via UserSettings as well as added support for IdentityProvider resource tagging.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.15.json b/.changes/1.33.15.json
new file mode 100644
index 000000000000..dc596151dfa1
--- /dev/null
+++ b/.changes/1.33.15.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``autoscaling``",
+ "description": "Doc only update for Auto Scaling's TargetTrackingMetricDataQuery",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release is for the launch of the new u7ib-12tb.224xlarge, R8g, c7gn.metal and mac2-m1ultra.metal instance types",
+ "type": "api-change"
+ },
+ {
+ "category": "``networkmanager``",
+ "description": "This is model changes & documentation update for the Asynchronous Error Reporting feature for AWS Cloud WAN. This feature allows customers to view errors that occur while their resources are being provisioned, enabling customers to fix their resources without needing external support.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-thin-client``",
+ "description": "This release adds the deviceCreationTags field to CreateEnvironment API input, UpdateEnvironment API input and GetEnvironment API output.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.16.json b/.changes/1.33.16.json
new file mode 100644
index 000000000000..ddc52d381f08
--- /dev/null
+++ b/.changes/1.33.16.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``controltower``",
+ "description": "Added ListLandingZoneOperations API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Added support for disabling unmanaged addons during cluster creation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs-realtime``",
+ "description": "IVS Real-Time now offers customers the ability to upload public keys for customer vended participant tokens.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kinesisanalyticsv2``",
+ "description": "This release adds support for new ListApplicationOperations and DescribeApplicationOperation APIs. It adds a new configuration to enable system rollbacks, adds field ApplicationVersionCreateTimestamp for clarity and improves support for pagination for APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This release adds support for enabling or disabling Natural Language Query Processing feature for Amazon OpenSearch Service domains, and provides visibility into the current state of the setup or tear-down.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.17.json b/.changes/1.33.17.json
new file mode 100644
index 000000000000..a2071cef608e
--- /dev/null
+++ b/.changes/1.33.17.json
@@ -0,0 +1,57 @@
+[
+ {
+ "category": "``application-autoscaling``",
+ "description": "Amazon WorkSpaces customers can now use Application Auto Scaling to automatically scale the number of virtual desktops in a WorkSpaces pool.",
+ "type": "api-change"
+ },
+ {
+ "category": "``chime-sdk-media-pipelines``",
+ "description": "Added Amazon Transcribe multi language identification to Chime SDK call analytics. Enabling customers sending single stream audio to generate call recordings using Chime SDK call analytics",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudfront``",
+ "description": "Doc only update for CloudFront that fixes customer-reported issue",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "This release supports the data lineage feature of business data catalog in Amazon DataZone.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elasticache``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mq``",
+ "description": "This release makes the EngineVersion field optional for both broker and configuration and uses the latest available version by default. The AutoMinorVersionUpgrade field is also now optional for broker creation and defaults to 'true'.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qconnect``",
+ "description": "Adds CreateContentAssociation, ListContentAssociations, GetContentAssociation, and DeleteContentAssociation APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Adding support for Repeating Sections, Nested Filters",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation for TAZ export to S3.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Add capability for Admins to customize Studio experience for the user by showing or hiding Apps and MLTools.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added support for WorkSpaces Pools.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.18.json b/.changes/1.33.18.json
new file mode 100644
index 000000000000..b1e0c5319ac6
--- /dev/null
+++ b/.changes/1.33.18.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "Added CCPC_LEVEL_1_OR_HIGHER KeyStorageSecurityStandard and SM2 KeyAlgorithm and SM3WITHSM2 SigningAlgorithm for China regions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudhsmv2``",
+ "description": "Added 3 new APIs to support backup sharing: GetResourcePolicy, PutResourcePolicy, and DeleteResourcePolicy. Added BackupArn to the output of the DescribeBackups API. Added support for BackupArn in the CreateCluster API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "This release supports showing PreferredAgentRouting step via DescribeContact API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr``",
+ "description": "This release provides the support for new allocation strategies i.e. CAPACITY_OPTIMIZED_PRIORITIZED for Spot and PRIORITIZED for On-Demand by taking input of priority value for each instance type for instance fleet clusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Added AttributesToGet parameter to Glue GetDatabases, allowing caller to limit output to include only the database name.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kinesisanalyticsv2``",
+ "description": "Support for Flink 1.19 in Managed Service for Apache Flink",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This release removes support for enabling or disabling Natural Language Query Processing feature for Amazon OpenSearch Service domains.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pi``",
+ "description": "Noting that the filter db.sql.db_id isn't available for RDS for SQL Server DB instances.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added support for Red Hat Enterprise Linux 8 on Amazon WorkSpaces Personal.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.19.json b/.changes/1.33.19.json
new file mode 100644
index 000000000000..f2d23906e7f0
--- /dev/null
+++ b/.changes/1.33.19.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``apigateway``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-identity``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Authentication profiles are Amazon Connect resources (in gated preview) that allow you to configure authentication settings for users in your contact center. This release adds support for new ListAuthenticationProfiles, DescribeAuthenticationProfile and UpdateAuthenticationProfile APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``docdb``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Updates EKS managed node groups to support EC2 Capacity Blocks for ML",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography``",
+ "description": "Added further restrictions on logging of potentially sensitive inputs and outputs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography-data``",
+ "description": "Adding support for dynamic keys for encrypt, decrypt, re-encrypt and translate pin functions. With this change, customers can use one-time TR-31 keys directly in dataplane operations without the need to first import them into the service.",
+ "type": "api-change"
+ },
+ {
+ "category": "``stepfunctions``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``swf``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``wafv2``",
+ "description": "JSON body inspection: Update documentation to clarify that JSON parsing doesn't include full validation.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.2.json b/.changes/1.33.2.json
new file mode 100644
index 000000000000..37f6a1e3f974
--- /dev/null
+++ b/.changes/1.33.2.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``globalaccelerator``",
+ "description": "This release contains a new optional ip-addresses input field for the update accelerator and update custom routing accelerator apis. This input enables consumers to replace IPv4 addresses on existing accelerators with addresses provided in the input.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "AWS Glue now supports native SaaS connectivity: Salesforce connector available now",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Added new params copySource and key to copyObject API for supporting S3 Access Grants plugin. These changes will not change any of the existing S3 API functionality.",
+ "type": "api-change"
+ },
+ {
+ "category": "emr customization",
+ "description": "Update the EC2 service principal when creating the trust policy for EMR default roles to always be ec2.amazonaws.com.",
+ "type": "bugfix"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.20.json b/.changes/1.33.20.json
new file mode 100644
index 000000000000..2d5a97ed612d
--- /dev/null
+++ b/.changes/1.33.20.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``ec2``",
+ "description": "Documentation updates for Elastic Compute Cloud (EC2).",
+ "type": "api-change"
+ },
+ {
+ "category": "``fms``",
+ "description": "Increases Customer API's ManagedServiceData length",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Added response overrides to Head Object requests.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.21.json b/.changes/1.33.21.json
new file mode 100644
index 000000000000..1f9ab9a47f3f
--- /dev/null
+++ b/.changes/1.33.21.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``application-autoscaling``",
+ "description": "Doc only update for Application Auto Scaling that fixes resource name.",
+ "type": "api-change"
+ },
+ {
+ "category": "``directconnect``",
+ "description": "This update includes documentation for support of new native 400 GBps ports for Direct Connect.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Added a new reason under ConstraintViolationException in RegisterDelegatedAdministrator API to prevent registering suspended accounts as delegated administrator of a service.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rekognition``",
+ "description": "This release adds support for tagging projects and datasets with the CreateProject and CreateDataset APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Fix create workspace bundle RootStorage/UserStorage to accept non null values",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.22.json b/.changes/1.33.22.json
new file mode 100644
index 000000000000..05d5e01a9178
--- /dev/null
+++ b/.changes/1.33.22.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``acm``",
+ "description": "Documentation updates, including fixes for xml formatting, broken links, and ListCertificates description.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "This release for Amazon ECR makes change to bring the SDK into sync with the API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography-data``",
+ "description": "Added further restrictions on logging of potentially sensitive inputs and outputs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Add personalization to Q Applications. Customers can enable or disable personalization when creating or updating a Q application with the personalization configuration.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.23.json b/.changes/1.33.23.json
new file mode 100644
index 000000000000..385d82697998
--- /dev/null
+++ b/.changes/1.33.23.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``codedeploy``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``devicefarm``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elasticbeanstalk``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``es``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``firehose``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``gamelift``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qapps``",
+ "description": "This is a general availability (GA) release of Amazon Q Apps, a capability of Amazon Q Business. Q Apps leverages data sources your company has provided to enable users to build, share, and customize apps within your organization.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53resolver``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ses``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.24.json b/.changes/1.33.24.json
new file mode 100644
index 000000000000..35ab99cbfaf5
--- /dev/null
+++ b/.changes/1.33.24.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``datazone``",
+ "description": "This release deprecates dataProductItem field from SearchInventoryResultItem, along with some unused DataProduct shapes",
+ "type": "api-change"
+ },
+ {
+ "category": "``fsx``",
+ "description": "Adds support for FSx for NetApp ONTAP 2nd Generation file systems, and FSx for OpenZFS Single AZ HA file systems.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This release adds support for enabling or disabling Natural Language Query Processing feature for Amazon OpenSearch Service domains, and provides visibility into the current state of the setup or tear-down.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "This release 1/ enables optimization jobs that allows customers to perform Ahead-of-time compilation and quantization. 2/ allows customers to control access to Amazon Q integration in SageMaker Studio. 3/ enables AdditionalModelDataSources for CreateModel action.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.25.json b/.changes/1.33.25.json
new file mode 100644
index 000000000000..432c34ff857b
--- /dev/null
+++ b/.changes/1.33.25.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``batch``",
+ "description": "This feature allows AWS Batch Jobs with EKS container orchestration type to be run as Multi-Node Parallel Jobs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock``",
+ "description": "Add support for contextual grounding check for Guardrails for Amazon Bedrock.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "Introduces new data sources and chunking strategies for Knowledge bases, advanced parsing logic using FMs, session summary generation, and code interpretation (preview) for Claude V3 Sonnet and Haiku models. Also introduces Prompt Flows (preview) to link prompts, foundational models, and resources.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Introduces query decomposition, enhanced Agents integration with Knowledge bases, session summary generation, and code interpretation (preview) for Claude V3 Sonnet and Haiku models. Also introduces Prompt Flows (preview) to link prompts, foundational models, and resources for end-to-end solutions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Add support for contextual grounding check and ApplyGuardrail API for Guardrails for Amazon Bedrock.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Add parameters to enable provisioning IPAM BYOIPv4 space at a Local Zone Network Border Group level",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add recipe step support for recipe node",
+ "type": "api-change"
+ },
+ {
+ "category": "``groundstation``",
+ "description": "Documentation update specifying OEM ephemeris units of measurement",
+ "type": "api-change"
+ },
+ {
+ "category": "``license-manager-linux-subscriptions``",
+ "description": "Add support for third party subscription providers, starting with RHEL subscriptions through Red Hat Subscription Manager (RHSM). Additionally, add support for tagging subscription provider resources, and detect when an instance has more than one Linux subscription and notify the customer.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconnect``",
+ "description": "AWS Elemental MediaConnect introduces the ability to disable outputs. Disabling an output allows you to keep the output attached to the flow, but stop streaming to the output destination. A disabled output does not incur data transfer costs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.26.json b/.changes/1.33.26.json
new file mode 100644
index 000000000000..f0fc3b2a4cc3
--- /dev/null
+++ b/.changes/1.33.26.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "Minor refactoring of C2J model for AWS Private CA",
+ "type": "api-change"
+ },
+ {
+ "category": "``arc-zonal-shift``",
+ "description": "Adds the option to subscribe to get notifications when a zonal autoshift occurs in a region.",
+ "type": "api-change"
+ },
+ {
+ "category": "``globalaccelerator``",
+ "description": "This feature adds exceptions to the Customer API to avoid throwing Internal Service errors",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Vega ally control options and Support for Reviewed Answers in Topics",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.27.json b/.changes/1.33.27.json
new file mode 100644
index 000000000000..fca532be9e20
--- /dev/null
+++ b/.changes/1.33.27.json
@@ -0,0 +1,62 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "Fix broken waiters for the acm-pca client. Waiters broke in version 1.13.144 of the Boto3 SDK.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Amazon Connect expands search API coverage for additional resources. Search for hierarchy groups by name, ID, tag, or other criteria (new endpoint). Search for agent statuses by name, ID, tag, or other criteria (new endpoint). Search for users by their assigned proficiencies (enhanced endpoint)",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Amazon VPC IP Address Manager (IPAM) now supports Bring-Your-Own-IP (BYOIP) for IP addresses registered with any Internet Registry. This feature uses DNS TXT records to validate ownership of a public IP address range.",
+ "type": "api-change"
+ },
+ {
+ "category": "``firehose``",
+ "description": "This release 1) Add configurable buffering hints for Snowflake as destination. 2) Add ReadFromTimestamp for MSK As Source. Firehose will start reading data from MSK Cluster using offset associated with this timestamp. 3) Gated public beta release to add Apache Iceberg tables as destination.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivschat``",
+ "description": "Documentation update for IVS Chat API Reference.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "AWS Elemental MediaLive now supports the SRT protocol via the new SRT Caller input type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation to specify an eventual consistency model for DescribePendingMaintenanceActions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "SageMaker Training supports R5, T3 and R5D instances family. And SageMaker Processing supports G5 and R5D instances family.",
+ "type": "api-change"
+ },
+ {
+ "category": "``secretsmanager``",
+ "description": "Doc only update for Secrets Manager",
+ "type": "api-change"
+ },
+ {
+ "category": "``taxsettings``",
+ "description": "Set default endpoint for aws partition. Requests from all regions in aws partition will be forward to us-east-1 endpoint.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-query``",
+ "description": "Doc-only update for TimestreamQuery. Added guidance about the accepted valid value for the QueryPricingModel parameter.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-thin-client``",
+ "description": "Documentation update for WorkSpaces Thin Client.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.28.json b/.changes/1.33.28.json
new file mode 100644
index 000000000000..5073c0103cda
--- /dev/null
+++ b/.changes/1.33.28.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``datazone``",
+ "description": "This release adds 1/ support of register S3 locations of assets in AWS Lake Formation hybrid access mode for DefaultDataLake blueprint. 2/ support of CRUD operations for Asset Filters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs``",
+ "description": "Documentation update for IVS Low Latency API Reference.",
+ "type": "api-change"
+ },
+ {
+ "category": "``neptune-graph``",
+ "description": "Amazon Neptune Analytics provides new options for customers to start with smaller graphs at a lower cost. CreateGraph, CreaateGraphImportTask, UpdateGraph and StartImportTask APIs will now allow 32 and 64 for `provisioned-memory`",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift-serverless``",
+ "description": "Adds dualstack support for Redshift Serverless workgroup.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.29.json b/.changes/1.33.29.json
new file mode 100644
index 000000000000..e3a1fa4d4ee8
--- /dev/null
+++ b/.changes/1.33.29.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``appsync``",
+ "description": "Adding support for paginators in AppSync list APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanrooms``",
+ "description": "This release adds AWS Entity Resolution integration to associate ID namespaces & ID mapping workflow resources as part of ID namespace association and ID mapping table in AWS Clean Rooms. It also introduces a new ID_MAPPING_TABLE analysis rule to manage the protection on ID mapping table.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanroomsml``",
+ "description": "Adds SQL query as the source of seed audience for audience generation job.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Added PostContactSummary segment type on ListRealTimeContactAnalysisSegmentsV2 API",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect-contact-lens``",
+ "description": "Added PostContactSummary segment type on ListRealTimeContactAnalysisSegments API",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "This release removes the deprecated dataProductItem field from Search API output.",
+ "type": "api-change"
+ },
+ {
+ "category": "``entityresolution``",
+ "description": "Support First Party ID Mapping",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.3.json b/.changes/1.33.3.json
new file mode 100644
index 000000000000..fd366e3d6ea7
--- /dev/null
+++ b/.changes/1.33.3.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``account``",
+ "description": "This release adds 3 new APIs (AcceptPrimaryEmailUpdate, GetPrimaryEmail, and StartPrimaryEmailUpdate) used to centrally manage the root user email address of member accounts within an AWS organization.",
+ "type": "api-change"
+ },
+ {
+ "category": "``firehose``",
+ "description": "Adds integration with Secrets Manager for Redshift, Splunk, HttpEndpoint, and Snowflake destinations",
+ "type": "api-change"
+ },
+ {
+ "category": "``fsx``",
+ "description": "This release adds support to increase metadata performance on FSx for Lustre file systems beyond the default level provisioned when a file system is created. This can be done by specifying MetadataConfiguration during the creation of Persistent_2 file systems or by updating it on demand.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "This release adds support for creating and updating Glue Data Catalog Views.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotwireless``",
+ "description": "Adds support for wireless device to be in Conflict FUOTA Device Status due to a FUOTA Task, so it couldn't be attached to a new one.",
+ "type": "api-change"
+ },
+ {
+ "category": "``location``",
+ "description": "Added two new APIs, VerifyDevicePosition and ForecastGeofenceEvents. Added support for putting larger geofences up to 100,000 vertices with Geobuf fields.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sns``",
+ "description": "Doc-only update for SNS. These changes include customer-reported issues and TXC3 updates.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sqs``",
+ "description": "Doc only updates for SQS. These updates include customer-reported issues and TCX3 modifications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``storagegateway``",
+ "description": "Adds SoftwareUpdatePreferences to DescribeMaintenanceStartTime and UpdateMaintenanceStartTime, a structure which contains AutomaticUpdatePolicy.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.30.json b/.changes/1.33.30.json
new file mode 100644
index 000000000000..b21c0f196406
--- /dev/null
+++ b/.changes/1.33.30.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``cleanrooms``",
+ "description": "Three enhancements to the AWS Clean Rooms: Disallowed Output Columns, Flexible Result Receivers, SQL as a Seed",
+ "type": "api-change"
+ },
+ {
+ "category": "``dynamodb``",
+ "description": "DynamoDB doc only update for July",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotsitewise``",
+ "description": "Adds support for creating SiteWise Edge gateways that run on a Siemens Industrial Edge Device.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediapackagev2``",
+ "description": "This release adds support for Irdeto DRM encryption in DASH manifests.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medical-imaging``",
+ "description": "CopyImageSet API adds copying selected instances between image sets, and overriding inconsistent metadata with a force parameter. UpdateImageSetMetadata API enables reverting to prior versions; updates to Study, Series, and SOP Instance UIDs; and updates to private elements, with a force parameter.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint-sms-voice-v2``",
+ "description": "Update for rebrand to AWS End User Messaging SMS and Voice.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.31.json b/.changes/1.33.31.json
new file mode 100644
index 000000000000..fc8c3beefa06
--- /dev/null
+++ b/.changes/1.33.31.json
@@ -0,0 +1,62 @@
+[
+ {
+ "category": "``application-autoscaling``",
+ "description": "Application Auto Scaling is now more responsive to the changes in demand of your SageMaker Inference endpoints. To get started, create or update a Target Tracking policy based on High Resolution CloudWatch metrics.",
+ "type": "api-change"
+ },
+ {
+ "category": "``application-signals``",
+ "description": "CloudWatch Application Signals now supports application logs correlation with traces and operational health metrics of applications running on EC2 instances. Users can view the most relevant telemetry to troubleshoot application health anomalies such as spikes in latency, errors, and availability.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Provides ServiceUnavailableException error message",
+ "type": "api-change"
+ },
+ {
+ "category": "``codecommit``",
+ "description": "CreateRepository API now throws OperationNotAllowedException when the account has been restricted from creating a repository.",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "Introduces GetEnvironmentCredentials operation to SDK",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "EC2 Fleet now supports using custom identifiers to reference Amazon Machine Images (AMI) in launch requests that are configured to choose from a diversified list of instance types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "API and documentation updates for Amazon ECR, adding support for creating, updating, describing and deleting ECR Repository Creation Template.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "This release adds support for EKS cluster to manage extended support.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "This release adds support for sharing trust stores across accounts and organizations through integration with AWS Resource Access Manager.",
+ "type": "api-change"
+ },
+ {
+ "category": "``network-firewall``",
+ "description": "You can now log events that are related to TLS inspection, in addition to the existing alert and flow logging.",
+ "type": "api-change"
+ },
+ {
+ "category": "``outposts``",
+ "description": "Adding default vCPU information to GetOutpostSupportedInstanceTypes and GetOutpostInstanceTypes responses",
+ "type": "api-change"
+ },
+ {
+ "category": "``stepfunctions``",
+ "description": "This release adds support to customer managed KMS key encryption in AWS Step Functions.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.32.json b/.changes/1.33.32.json
new file mode 100644
index 000000000000..a108a41228c2
--- /dev/null
+++ b/.changes/1.33.32.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``elasticache``",
+ "description": "Renaming full service name as it appears in developer documentation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``memorydb``",
+ "description": "Renaming full service name as it appears in developer documentation.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.33.json b/.changes/1.33.33.json
new file mode 100644
index 000000000000..7a1f455181e1
--- /dev/null
+++ b/.changes/1.33.33.json
@@ -0,0 +1,62 @@
+[
+ {
+ "category": "``appstream``",
+ "description": "Added support for Red Hat Enterprise Linux 8 on Amazon AppStream 2.0",
+ "type": "api-change"
+ },
+ {
+ "category": "``autoscaling``",
+ "description": "Increase the length limit for VPCZoneIdentifier from 2047 to 5000",
+ "type": "api-change"
+ },
+ {
+ "category": "``codepipeline``",
+ "description": "AWS CodePipeline V2 type pipelines now support stage level conditions to enable development teams to safely release changes that meet quality and compliance requirements.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elasticache``",
+ "description": "Doc only update for changes to deletion API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elb``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``events``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lexv2-models``",
+ "description": "This release adds new capabilities to the AMAZON.QnAIntent: Custom prompting, Guardrails integration and ExactResponse support for Bedrock Knowledge Base.",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rolesanywhere``",
+ "description": "IAM RolesAnywhere now supports custom role session name on the CreateSession. This release adds the acceptRoleSessionName option to a profile to control whether a role session name will be accepted in a session request with a given profile.",
+ "type": "api-change"
+ },
+ {
+ "category": "``tnb``",
+ "description": "This release adds Network Service Update, through which customers will be able to update their instantiated networks to a new network package. See the documentation for limitations. The release also enhances the Get network operation API to return parameter overrides used during the operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Removing multi-session as it isn't supported for pools",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Disable usage of mb command with S3 Express directory buckets.",
+ "type": "bugfix"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.34.json b/.changes/1.33.34.json
new file mode 100644
index 000000000000..5b8075bf5739
--- /dev/null
+++ b/.changes/1.33.34.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "API and Documentation for Bedrock Model Copy feature. This feature lets you share and copy a custom model from one region to another or one account to another.",
+ "type": "api-change"
+ },
+ {
+ "category": "``controlcatalog``",
+ "description": "AWS Control Tower provides two new public APIs controlcatalog:ListControls and controlcatalog:GetControl under controlcatalog service namespace, which enable customers to programmatically retrieve control metadata of available controls.",
+ "type": "api-change"
+ },
+ {
+ "category": "``controltower``",
+ "description": "Updated Control Tower service documentation for controlcatalog control ARN support with existing Control Tower public APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``iam``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``memorydb``",
+ "description": "Doc only update for changes to deletion API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release adds support for specifying optional MinACU parameter in CreateDBShardGroup and ModifyDBShardGroup API. DBShardGroup response will contain MinACU if specified.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "This release adds support for Amazon EMR Serverless applications in SageMaker Studio for running data processing jobs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm-quicksetup``",
+ "description": "This release adds API support for the QuickSetup feature of AWS Systems Manager",
+ "type": "api-change"
+ },
+ {
+ "category": "``support``",
+ "description": "Doc only updates to CaseDetails",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.35.json b/.changes/1.33.35.json
new file mode 100644
index 000000000000..232e845ab014
--- /dev/null
+++ b/.changes/1.33.35.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``cloudwatch``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kinesis``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``resiliencehub``",
+ "description": "Customers are presented with the grouping recommendations and can determine if the recommendations are accurate and apply to their case. This feature simplifies onboarding by organizing resources into appropriate AppComponents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``waf-regional``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.36.json b/.changes/1.33.36.json
new file mode 100644
index 000000000000..e639f03e1e0d
--- /dev/null
+++ b/.changes/1.33.36.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``datazone``",
+ "description": "This releases Data Product feature. Data Products allow grouping data assets into cohesive, self-contained units for ease of publishing for data producers, and ease of finding and accessing for data consumers.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "Released two new APIs along with documentation updates. The GetAccountSetting API is used to view the current basic scan type version setting for your registry, while the PutAccountSetting API is used to update the basic scan type version for your registry.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kinesis-video-webrtc-storage``",
+ "description": "Add JoinStorageSessionAsViewer API",
+ "type": "api-change"
+ },
+ {
+ "category": "``pi``",
+ "description": "Added a description for the Dimension db.sql.tokenized_id on the DimensionGroup data type page.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.37.json b/.changes/1.33.37.json
new file mode 100644
index 000000000000..dafb64b9b144
--- /dev/null
+++ b/.changes/1.33.37.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Introduce model invocation output traces for orchestration traces, which contain the model's raw response and usage.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-idp``",
+ "description": "Advanced security feature updates to include password history and log export for Cognito user pools.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cost-optimization-hub``",
+ "description": "This release adds savings percentage support to the ListRecommendationSummaries API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added support for BYOL_GRAPHICS_G4DN_WSP IngestionProcess",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.38.json b/.changes/1.33.38.json
new file mode 100644
index 000000000000..a9ca9e241a9d
--- /dev/null
+++ b/.changes/1.33.38.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``appintegrations``",
+ "description": "Updated CreateDataIntegration and CreateDataIntegrationAssociation API to support bulk data export from Amazon Connect Customer Profiles to the customer S3 bucket.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Introducing AWS Glue Data Quality anomaly detection, a new functionality that uses ML-based solutions to detect data anomalies users have not explicitly defined rules for.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.39.json b/.changes/1.33.39.json
new file mode 100644
index 000000000000..a6cc4b5e12f4
--- /dev/null
+++ b/.changes/1.33.39.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``cognito-idp``",
+ "description": "Added support for threat protection for custom authentication in Amazon Cognito user pools.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "This release fixes a regression in number of access control tags that are allowed to be added to a security profile in Amazon Connect. You can now add up to four access control tags on a single security profile.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Launch of private IPv6 addressing for VPCs and Subnets. VPC IPAM supports the planning and monitoring of private IPv6 usage.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "This release adds support to retrieve the validation status when creating or updating Glue Data Catalog Views. Also added is support for BasicCatalogTarget partition keys.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.4.json b/.changes/1.33.4.json
new file mode 100644
index 000000000000..211f72fb642e
--- /dev/null
+++ b/.changes/1.33.4.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``auditmanager``",
+ "description": "New feature: common controls. When creating custom controls, you can now use pre-grouped AWS data sources based on common compliance themes. Also, the awsServices parameter is deprecated because we now manage services in scope for you. If used, the input is ignored and an empty list is returned.",
+ "type": "api-change"
+ },
+ {
+ "category": "``b2bi``",
+ "description": "Added exceptions to B2Bi List operations and ConflictException to B2Bi StartTransformerJob operation. Also made capabilities field explicitly required when creating a Partnership.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codepipeline``",
+ "description": "CodePipeline now supports overriding S3 Source Object Key during StartPipelineExecution, as part of Source Overrides.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "This release introduces a new optional parameter: InferenceAmiVersion, in ProductionVariant.",
+ "type": "api-change"
+ },
+ {
+ "category": "``verifiedpermissions``",
+ "description": "This release adds OpenIdConnect (OIDC) configuration support for IdentitySources, allowing for external IDPs to be used in authorization requests.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.40.json b/.changes/1.33.40.json
new file mode 100644
index 000000000000..21456a4c20f1
--- /dev/null
+++ b/.changes/1.33.40.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``cognito-idp``",
+ "description": "Fixed a description of AdvancedSecurityAdditionalFlows in Amazon Cognito user pool configuration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "This release supports adding RoutingCriteria via UpdateContactRoutingData public API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm``",
+ "description": "Systems Manager doc-only updates for August 2024.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.41.json b/.changes/1.33.41.json
new file mode 100644
index 000000000000..6bcd6a839c31
--- /dev/null
+++ b/.changes/1.33.41.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``compute-optimizer``",
+ "description": "Doc only update for Compute Optimizer that fixes several customer-reported issues relating to ECS finding classifications",
+ "type": "api-change"
+ },
+ {
+ "category": "``config``",
+ "description": "Documentation update for the OrganizationConfigRuleName regex pattern.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds new capabilities to manage On-Demand Capacity Reservations including the ability to split your reservation, move capacity between reservations, and modify the instance eligibility of your reservation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Added support for new AL2023 GPU AMIs to the supported AMITypes.",
+ "type": "api-change"
+ },
+ {
+ "category": "``groundstation``",
+ "description": "Updating documentation for OEMEphemeris to link to AWS Ground Station User Guide",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "AWS Elemental MediaLive now supports now supports editing the PID values for a Multiplex.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Releasing large data support as part of CreateAutoMLJobV2 in SageMaker Autopilot and CreateDomain API for SageMaker Canvas.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.42.json b/.changes/1.33.42.json
new file mode 100644
index 000000000000..e9d58feca774
--- /dev/null
+++ b/.changes/1.33.42.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``amplify``",
+ "description": "Add a new field \"cacheConfig\" that enables users to configure the CDN cache settings for an App",
+ "type": "api-change"
+ },
+ {
+ "category": "``appstream``",
+ "description": "This release includes following new APIs: CreateThemeForStack, DescribeThemeForStack, UpdateThemeForStack, DeleteThemeForStack to support custom branding programmatically.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fis``",
+ "description": "This release adds support for additional error information on experiment failure. It adds the error code, location, and account id on relevant failures to the GetExperiment and ListExperiment API responses.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add AttributesToGet parameter support for Glue GetTables",
+ "type": "api-change"
+ },
+ {
+ "category": "``neptune-graph``",
+ "description": "Amazon Neptune Analytics provides a new option for customers to load data into a graph using the RDF (Resource Description Framework) NTRIPLES format. When loading NTRIPLES files, use the value `convertToIri` for the `blankNodeHandling` parameter.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.43.json b/.changes/1.33.43.json
new file mode 100644
index 000000000000..1ecba0d08a40
--- /dev/null
+++ b/.changes/1.33.43.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports using Secrets Manager to store git credentials and using multiple source credentials in a single project.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.44.json b/.changes/1.33.44.json
new file mode 100644
index 000000000000..03313bbe4a51
--- /dev/null
+++ b/.changes/1.33.44.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``docdb``",
+ "description": "This release adds Global Cluster Failover capability which enables you to change your global cluster's primary AWS region, the region that serves writes, during a regional outage. Performing a failover action preserves your Global Cluster setup.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release introduces a new ContainerDefinition configuration to support the customer-managed keys for ECS container restart feature.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iam``",
+ "description": "Make the LastUsedDate field in the GetAccessKeyLastUsed response optional. This may break customers who only call the API for access keys with a valid LastUsedDate. This fixes a deserialization issue for access keys without a LastUsedDate, because the field was marked as required but could be null.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Amazon Simple Storage Service / Features : Adds support for pagination in the S3 ListBuckets API.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.5.json b/.changes/1.33.5.json
new file mode 100644
index 000000000000..5e768982a854
--- /dev/null
+++ b/.changes/1.33.5.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``application-signals``",
+ "description": "This is the initial SDK release for Amazon CloudWatch Application Signals. Amazon CloudWatch Application Signals provides curated application performance monitoring for developers to monitor and troubleshoot application health using pre-built dashboards and Service Level Objectives.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release introduces a new cluster configuration to support the customer-managed keys for ECS managed storage encryption.",
+ "type": "api-change"
+ },
+ {
+ "category": "``imagebuilder``",
+ "description": "This release updates the regex pattern for Image Builder ARNs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.6.json b/.changes/1.33.6.json
new file mode 100644
index 000000000000..0144a29417a7
--- /dev/null
+++ b/.changes/1.33.6.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``accessanalyzer``",
+ "description": "IAM Access Analyzer now provides policy recommendations to help resolve unused permissions for IAM roles and users. Additionally, IAM Access Analyzer now extends its custom policy checks to detect when IAM policies grant public access or access to critical resources ahead of deployments.",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Added API support for GuardDuty Malware Protection for S3.",
+ "type": "api-change"
+ },
+ {
+ "category": "``networkmanager``",
+ "description": "This is model changes & documentation update for Service Insertion feature for AWS Cloud WAN. This feature allows insertion of AWS/3rd party security services on Cloud WAN. This allows to steer inter/intra segment traffic via security appliances and provide visibility to the route updates.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pca-connector-scep``",
+ "description": "Connector for SCEP allows you to use a managed, cloud CA to enroll mobile devices and networking gear. SCEP is a widely-adopted protocol used by mobile device management (MDM) solutions for enrolling mobile devices. With the connector, you can use AWS Private CA with popular MDM solutions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Introduced Scope and AuthenticationRequestExtraParams to SageMaker Workforce OIDC configuration; this allows customers to modify these options for their private Workforce IdP integration. Model Registry Cross-account model package groups are discoverable.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.7.json b/.changes/1.33.7.json
new file mode 100644
index 000000000000..0867baca8b24
--- /dev/null
+++ b/.changes/1.33.7.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``apptest``",
+ "description": "AWS Mainframe Modernization Application Testing is an AWS Mainframe Modernization service feature that automates functional equivalence testing for mainframe application modernization and migration to AWS, and regression testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Tagging support for Traffic Mirroring FilterRule resource",
+ "type": "api-change"
+ },
+ {
+ "category": "``osis``",
+ "description": "SDK changes for self-managed vpc endpoint to OpenSearch ingestion pipelines.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift``",
+ "description": "Updates to remove DC1 and DS2 node types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``secretsmanager``",
+ "description": "Introducing RotationToken parameter for PutSecretValue API",
+ "type": "api-change"
+ },
+ {
+ "category": "``securitylake``",
+ "description": "This release updates request validation regex to account for non-commercial aws partitions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "This release adds support for Amazon EventBridge as an email sending events destination.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.8.json b/.changes/1.33.8.json
new file mode 100644
index 000000000000..f2f6b12bad9e
--- /dev/null
+++ b/.changes/1.33.8.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``cloudhsmv2``",
+ "description": "Added support for hsm type hsm2m.medium. Added supported for creating a cluster in FIPS or NON_FIPS mode.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "This release adds support for configuration of evaluation method for composite rules in Glue Data Quality rulesets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotwireless``",
+ "description": "Add RoamingDeviceSNR and RoamingDeviceRSSI to Customer Metrics.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kms``",
+ "description": "This feature allows customers to use their keys stored in KMS to derive a shared secret which can then be used to establish a secured channel for communication, provide proof of possession, or establish trust with other parties.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediapackagev2``",
+ "description": "This release adds support for CMAF ingest (DASH-IF live media ingest protocol interface 1)",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.33.9.json b/.changes/1.33.9.json
new file mode 100644
index 000000000000..bf1b45b7bc3c
--- /dev/null
+++ b/.changes/1.33.9.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``datazone``",
+ "description": "This release introduces a new default service blueprint for custom environment creation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Documentation updates for Amazon EC2.",
+ "type": "api-change"
+ },
+ {
+ "category": "``macie2``",
+ "description": "This release adds support for managing the status of automated sensitive data discovery for individual accounts in an organization, and determining whether individual S3 buckets are included in the scope of the analyses.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds the ability to search for historical job records within the management console using a search box and/or via the SDK/CLI with partial string matching search on input file name.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53domains``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.0.json b/.changes/1.34.0.json
new file mode 100644
index 000000000000..cb4a18d67474
--- /dev/null
+++ b/.changes/1.34.0.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``batch``",
+ "description": "Improvements of integration between AWS Batch and EC2.",
+ "type": "api-change"
+ },
+ {
+ "category": "``inspector2``",
+ "description": "Update the correct format of key and values for resource tags",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Amazon QuickSight launches Customer Managed Key (CMK) encryption for Data Source metadata",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Introduce Endpoint and EndpointConfig Arns in sagemaker:ListPipelineExecutionSteps API response",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "Marking use case description field of account details as deprecated.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codeartifact``",
+ "description": "Update login command error message.",
+ "type": "enhancement"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.1.json b/.changes/1.34.1.json
new file mode 100644
index 000000000000..445c1a3aeba4
--- /dev/null
+++ b/.changes/1.34.1.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Amazon Bedrock Batch Inference/ Model Invocation is a feature which allows customers to asynchronously run inference on a large set of records/files stored in S3.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports creating fleets with macOS platform for running builds.",
+ "type": "api-change"
+ },
+ {
+ "category": "``deadline``",
+ "description": "This release adds additional search fields and provides sorting by multiple fields.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Release Lambda FunctionRecursiveConfig, enabling customers to turn recursive loop detection on or off on individual functions. This release adds two new APIs, GetFunctionRecursionConfig and PutFunctionRecursionConfig.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm-sap``",
+ "description": "Add new attributes to the outputs of GetApplication and GetDatabase APIs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.10.json b/.changes/1.34.10.json
new file mode 100644
index 000000000000..5a70eb323e98
--- /dev/null
+++ b/.changes/1.34.10.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``backup``",
+ "description": "The latest update introduces two new attributes, VaultType and VaultState, to the DescribeBackupVault and ListBackupVaults APIs. The VaultState attribute reflects the current status of the vault, while the VaultType attribute indicates the specific category of the vault.",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "Amazon DataZone now adds new governance capabilities of Domain Units for organization within your Data Domains, and Authorization Policies for tighter controls.",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "This release introduces a new optional parameter: Entity, in PutLogEvents request",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift-data``",
+ "description": "The release include the new Redshift DataAPI feature for session use, customer execute query with --session-keep-alive-seconds parameter and can submit follow-up queries to same sessions with returned`session-id`",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.11.json b/.changes/1.34.11.json
new file mode 100644
index 000000000000..f51f352bd7f3
--- /dev/null
+++ b/.changes/1.34.11.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``connect``",
+ "description": "Release ReplicaConfiguration as part of DescribeInstance",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "Add support to let data publisher specify a subset of the data asset that a subscriber will have access to based on the asset filters provided, when accepting a subscription request.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "This release adds support for configuring TCP idle timeout on NLB and GWLB listeners.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconnect``",
+ "description": "AWS Elemental MediaConnect introduces thumbnails for Flow source monitoring. Thumbnails provide still image previews of the live content feeding your MediaConnect Flow allowing you to easily verify that your source is operating as expected.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "Added MinQP as a Rate Control option for H264 and H265 encodes.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Amazon SageMaker now supports automatic mounting of a user's home folder in the Amazon Elastic File System (EFS) associated with the SageMaker Studio domain to their Studio Spaces to enable users to share data between their own private spaces.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-influxdb``",
+ "description": "Timestream for InfluxDB now supports compute scaling and deployment type conversion. This release adds the DbInstanceType and DeploymentType parameters to the UpdateDbInstance API.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.12.json b/.changes/1.34.12.json
new file mode 100644
index 000000000000..5cba34828bf2
--- /dev/null
+++ b/.changes/1.34.12.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``appsync``",
+ "description": "Adds new logging levels (INFO and DEBUG) for additional log output control",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "Add support for user metadata inside PromptVariant.",
+ "type": "api-change"
+ },
+ {
+ "category": "``finspace``",
+ "description": "Updates Finspace documentation for smaller instances.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fis``",
+ "description": "This release adds safety levers, a new mechanism to stop all running experiments and prevent new experiments from starting.",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Update to support new APIs for delivery of logs from AWS services.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3control``",
+ "description": "Amazon Simple Storage Service /S3 Access Grants / Features : This release launches new Access Grants API - ListCallerAccessGrants.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.13.json b/.changes/1.34.13.json
new file mode 100644
index 000000000000..ab4e0c5d5c0d
--- /dev/null
+++ b/.changes/1.34.13.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``application-signals``",
+ "description": "Amazon CloudWatch Application Signals now supports creating Service Level Objectives using a new calculation type. Users can now create SLOs which are configured with request-based SLIs to help meet their specific business requirements.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codepipeline``",
+ "description": "Updates to add recent notes to APIs and to replace example S3 bucket names globally.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Amazon Connect Custom Vocabulary now supports Catalan (Spain), Danish (Denmark), Dutch (Netherlands), Finnish (Finland), Indonesian (Indonesia), Malay (Malaysia), Norwegian Bokmal (Norway), Polish (Poland), Swedish (Sweden), and Tagalog/Filipino (Philippines).",
+ "type": "api-change"
+ },
+ {
+ "category": "``gamelift``",
+ "description": "Amazon GameLift provides additional events for tracking the fleet creation process.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kinesisanalyticsv2``",
+ "description": "Support for Flink 1.20 in Managed Service for Apache Flink",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Amazon SageMaker now supports idle shutdown of JupyterLab and CodeEditor applications on SageMaker Studio.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.14.json b/.changes/1.34.14.json
new file mode 100644
index 000000000000..500f5a6ec5bb
--- /dev/null
+++ b/.changes/1.34.14.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``qapps``",
+ "description": "Adds UpdateLibraryItemMetadata api to change status of app for admin verification feature and returns isVerified field in any api returning the app or library item.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.15.json b/.changes/1.34.15.json
new file mode 100644
index 000000000000..b6a59055f0d9
--- /dev/null
+++ b/.changes/1.34.15.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``dynamodb``",
+ "description": "Doc-only update for DynamoDB. Added information about async behavior for TagResource and UntagResource APIs and updated the description of ResourceInUseException.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "Add paginators for the ELBv2 DescribeListenerCertificates and DescribeRules APIs. Fix broken waiter for the ELBv2 DescribeLoadBalancers API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs-realtime``",
+ "description": "IVS Real-Time now offers customers the ability to broadcast to Stages using RTMP(S).",
+ "type": "api-change"
+ },
+ {
+ "category": "``kafka``",
+ "description": "Amazon MSK Replicator can now replicate data to identically named topics between MSK clusters within the same AWS Region or across different AWS Regions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Amazon Sagemaker supports orchestrating SageMaker HyperPod clusters with Amazon EKS",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker-runtime``",
+ "description": "AWS SageMaker Runtime feature: Add sticky routing to support stateful inference models.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.16.json b/.changes/1.34.16.json
new file mode 100644
index 000000000000..469de838a27f
--- /dev/null
+++ b/.changes/1.34.16.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``chime-sdk-voice``",
+ "description": "Documentation-only update that clarifies the ValidateE911Address action of the Amazon Chime SDK Voice APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-identity``",
+ "description": "This release adds sensitive trait to some required shapes.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pipes``",
+ "description": "This release adds support for customer managed KMS keys in Amazon EventBridge Pipe",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Documentation update for Security Hub",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.17.json b/.changes/1.34.17.json
new file mode 100644
index 000000000000..654201bd16f6
--- /dev/null
+++ b/.changes/1.34.17.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Amazon Bedrock Knowledge Bases now supports using inference profiles to increase throughput and improve resilience.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Amazon Bedrock Knowledge Bases now supports using inference profiles to increase throughput and improve resilience.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "Added KMS_DSSE to EncryptionType",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Add support for new statistic types in GetFindingsStatistics.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lexv2-models``",
+ "description": "Support new Polly voice engines in VoiceSettings: long-form and generative",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "Adds AV1 Codec support, SRT ouputs, and MediaLive Anywhere support.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.18.json b/.changes/1.34.18.json
new file mode 100644
index 000000000000..ee801b19b93f
--- /dev/null
+++ b/.changes/1.34.18.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``cognito-idp``",
+ "description": "Added email MFA option to user pools with advanced security features.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "Correct incorrectly mapped error in ELBv2 waiters",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr``",
+ "description": "Update APIs to allow modification of ODCR options, allocation strategy, and InstanceTypeConfigs on running InstanceFleet clusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "AWS Glue is introducing two new optimizers for Apache Iceberg tables: snapshot retention and orphan file deletion. Customers can enable these optimizers and customize their configurations to perform daily maintenance tasks on their Iceberg tables based on their specific requirements.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release includes support for dynamic video overlay workflows, including picture-in-picture and squeezeback",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release adds support for the os-upgrade pending maintenance action for Amazon Aurora DB clusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``storagegateway``",
+ "description": "The S3 File Gateway now supports DSSE-KMS encryption. A new parameter EncryptionType is added to these APIs: CreateSmbFileShare, CreateNfsFileShare, UpdateSmbFileShare, UpdateNfsFileShare, DescribeSmbFileShares, DescribeNfsFileShares. Also, in favor of EncryptionType, KmsEncrypted is deprecated.",
+ "type": "api-change"
+ },
+ {
+ "category": "``synthetics``",
+ "description": "This release introduces two features. The first is tag replication, which allows for the propagation of canary tags onto Synthetics related resources, such as Lambda functions. The second is a limit increase in canary name length, which has now been increased from 21 to 255 characters.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.19.json b/.changes/1.34.19.json
new file mode 100644
index 000000000000..30c7713c5b32
--- /dev/null
+++ b/.changes/1.34.19.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``amplify``",
+ "description": "Doc only update to Amplify to explain platform setting for Next.js 14 SSG only applications",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs``",
+ "description": "Updates to all tags descriptions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivschat``",
+ "description": "Updates to all tags descriptions.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.2.json b/.changes/1.34.2.json
new file mode 100644
index 000000000000..d61655d0d72e
--- /dev/null
+++ b/.changes/1.34.2.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``ecs``",
+ "description": "Documentation only release to address various tickets",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearchserverless``",
+ "description": "Added FailureCode and FailureMessage to BatchGetCollectionResponse for BatchGetVPCEResponse for non-Active Collection and VPCE.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Amazon Simple Storage Service / Features : Add support for conditional writes for PutObject and CompleteMultipartUpload APIs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.20.json b/.changes/1.34.20.json
new file mode 100644
index 000000000000..ad11cc51f9f9
--- /dev/null
+++ b/.changes/1.34.20.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "This feature adds cross account s3 bucket and VPC support to ModelInvocation jobs. To use a cross account bucket, pass in the accountId of the bucket to s3BucketOwner in the ModelInvocationJobInputDataConfig or ModelInvocationJobOutputDataConfig.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot``",
+ "description": "This release adds additional enhancements to AWS IoT Device Management Software Package Catalog and Jobs. It also adds SBOM support in Software Package Version.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "Removing the ON_PREMISE enum from the input settings field.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Doc only update for AWS Organizations that fixes several customer-reported issues",
+ "type": "api-change"
+ },
+ {
+ "category": "``pca-connector-scep``",
+ "description": "This is a general availability (GA) release of Connector for SCEP, a feature of AWS Private CA. Connector for SCEP links your SCEP-enabled and mobile device management systems to AWS Private CA for digital signature installation and certificate management.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Launching Global Cluster tagging.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.21.json b/.changes/1.34.21.json
new file mode 100644
index 000000000000..53907cc5739c
--- /dev/null
+++ b/.changes/1.34.21.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "GitLab Enhancements - Add support for Self-Hosted GitLab runners in CodeBuild. Add group webhooks",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "The `DescribeImageScanning` API now includes `fixAvailable`, `exploitAvailable`, and `fixedInVersion` fields to provide more detailed information about the availability of fixes, exploits, and fixed versions for identified image vulnerabilities.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This is a documentation only release to address various tickets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Support for JSON resource-based policies and block public access",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation with configuration information about the BYOL model for RDS for Db2.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm``",
+ "description": "Support for additional levels of cross-account, cross-Region organizational units in Automation. Various documentation updates.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.22.json b/.changes/1.34.22.json
new file mode 100644
index 000000000000..938a1835e817
--- /dev/null
+++ b/.changes/1.34.22.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``ce``",
+ "description": "This release extends the GetReservationPurchaseRecommendation API to support recommendations for Amazon DynamoDB reservations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ds``",
+ "description": "Added new APIs for enabling, disabling, and describing access to the AWS Directory Service Data API",
+ "type": "api-change"
+ },
+ {
+ "category": "``ds-data``",
+ "description": "Added new AWS Directory Service Data API, enabling you to manage data stored in AWS Directory Service directories. This includes APIs for creating, reading, updating, and deleting directory users, groups, and group memberships.",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Add `launchType` and `sourceIPs` fields to GuardDuty findings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mailmanager``",
+ "description": "Introduce a new RuleSet condition evaluation, where customers can set up a StringExpression with a MimeHeader condition. This condition will perform the necessary validation based on the X-header provided by customers.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation with information upgrading snapshots with unsupported engine versions for RDS for MySQL and RDS for PostgreSQL.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Added SSE-KMS support for directory buckets.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.23.json b/.changes/1.34.23.json
new file mode 100644
index 000000000000..089432ac9cbc
--- /dev/null
+++ b/.changes/1.34.23.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``codeconnections``",
+ "description": "This release adds the PullRequestComment field to CreateSyncConfiguration API input, UpdateSyncConfiguration API input, GetSyncConfiguration API output and ListSyncConfiguration API output",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "This change is for releasing TestConnection api SDK model",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Tagging support for Lambda event source mapping, and code signing configuration resources.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release provides support for additional DRM configurations per SPEKE Version 2.0.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "Adds Bandwidth Reduction Filtering for HD AVC and HEVC encodes, multiplex container settings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "QuickSight: 1. Add new API - ListFoldersForResource. 2. Commit mode adds visibility configuration of Apply button on multi-select controls for authors.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Introduced support for G6e instance types on SageMaker Studio for JupyterLab and CodeEditor applications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-web``",
+ "description": "WorkSpaces Secure Browser now enables Administrators to view and manage end-user browsing sessions via Session Management APIs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.24.json b/.changes/1.34.24.json
new file mode 100644
index 000000000000..ea8d84927015
--- /dev/null
+++ b/.changes/1.34.24.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``dynamodb``",
+ "description": "Generate account endpoint for DynamoDB requests when the account ID is available",
+ "type": "api-change"
+ },
+ {
+ "category": "``neptune``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Amazon SageMaker now supports using manifest files to specify the location of uncompressed model artifacts within Model Packages",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker-metrics``",
+ "description": "This release introduces support for the SageMaker Metrics BatchGetMetrics API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Releasing new ErrorCodes for SysPrep failures during ImageImport and CreateImage process",
+ "type": "api-change"
+ },
+ {
+ "category": "paginator",
+ "description": "Add warning when a non-positive value is provided for the max-items pagination parameter.",
+ "type": "enhancement"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.25.json b/.changes/1.34.25.json
new file mode 100644
index 000000000000..26891b23a5a7
--- /dev/null
+++ b/.changes/1.34.25.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``apigateway``",
+ "description": "Documentation updates for Amazon API Gateway",
+ "type": "api-change"
+ },
+ {
+ "category": "``athena``",
+ "description": "List/Get/Update/Delete/CreateDataCatalog now integrate with AWS Glue connections. Users can create a Glue connection through Athena or use a Glue connection to define their Athena federated parameters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "Amazon Bedrock Prompt Flows and Prompt Management now supports using inference profiles to increase throughput and improve resilience.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Amazon EC2 G6e instances powered by NVIDIA L40S Tensor Core GPUs are the most cost-efficient GPU instances for deploying generative AI models and the highest performance GPU instances for spatial computing workloads.",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr-serverless``",
+ "description": "This release adds support for job concurrency and queuing configuration at Application level.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Added AthenaProperties parameter to Glue Connections, allowing Athena to store service specific properties on Glue Connections.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Support ComputeRedundancy parameter in ModifyDBShardGroup API. Add DBShardGroupArn in DBShardGroup API response. Remove InvalidMaxAcuFault from CreateDBShardGroup and ModifyDBShardGroup API. Both API will throw InvalidParameterValueException for invalid ACU configuration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``resource-explorer-2``",
+ "description": "AWS Resource Explorer released ListResources feature which allows customers to list all indexed AWS resources within a view.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.26.json b/.changes/1.34.26.json
new file mode 100644
index 000000000000..7a847d1b276d
--- /dev/null
+++ b/.changes/1.34.26.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Add support for Cross Region Inference in Bedrock Model Evaluations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``budgets``",
+ "description": "Releasing minor partitional endpoint updates",
+ "type": "api-change"
+ },
+ {
+ "category": "``kinesis``",
+ "description": "This release includes support to add tags when creating a stream",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint-sms-voice-v2``",
+ "description": "AWS End User Messaging SMS-Voice V2 has added support for resource policies. Use the three new APIs to create, view, edit, and delete resource policies.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adding `HiddenInstanceTypes` and `HiddenSageMakerImageVersionAliases` attribute to SageMaker API",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.27.json b/.changes/1.34.27.json
new file mode 100644
index 000000000000..49b22905de81
--- /dev/null
+++ b/.changes/1.34.27.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``cloudtrail``",
+ "description": "Doc-only update for CloudTrail network activity events release (in preview)",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Updates to documentation for the transit gateway security group referencing feature.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fsx``",
+ "description": "Doc-only update to address Lustre S3 hard-coded names.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.28.json b/.changes/1.34.28.json
new file mode 100644
index 000000000000..5b9026c80bb3
--- /dev/null
+++ b/.changes/1.34.28.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``chatbot``",
+ "description": "Return State and StateReason fields for Chatbot Channel Configurations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Reverting Lambda resource-based policy and block public access APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Add support for policy operations on the CHATBOT_POLICY policy type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pcs``",
+ "description": "AWS PCS API documentation - Edited the description of the iamInstanceProfileArn parameter of the CreateComputeNodeGroup and UpdateComputeNodeGroup actions; edited the description of the SlurmCustomSetting data type to list the supported parameters for clusters and compute node groups.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds-data``",
+ "description": "Documentation update for RDS Data API to reflect support for Aurora MySQL Serverless v2 and Provisioned DB clusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adding `TagPropagation` attribute to Sagemaker API",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.29.json b/.changes/1.34.29.json
new file mode 100644
index 000000000000..1a94c8937e3c
--- /dev/null
+++ b/.changes/1.34.29.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``customer-profiles``",
+ "description": "Introduces optional RoleArn parameter for PutIntegration request and includes RoleArn in the response of PutIntegration, GetIntegration and ListIntegrations",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Adding personalization in QuickSight data stories. Admins can enable or disable personalization through QuickSight settings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Documentation updates for AWS Security Hub",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "This release adds support for engagement tracking over Https using custom domains.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.3.json b/.changes/1.34.3.json
new file mode 100644
index 000000000000..ab0c3ed3a803
--- /dev/null
+++ b/.changes/1.34.3.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``ec2``",
+ "description": "DescribeInstanceStatus now returns health information on EBS volumes attached to Nitro instances",
+ "type": "api-change"
+ },
+ {
+ "category": "``entityresolution``",
+ "description": "Increase the mapping attributes in Schema to 35.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add optional field JobRunQueuingEnabled to CreateJob and UpdateJob APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Release FilterCriteria encryption for Lambda EventSourceMapping, enabling customers to encrypt their filter criteria using a customer-owned KMS key.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Security Hub documentation and definition updates",
+ "type": "api-change"
+ },
+ {
+ "category": "``ses``",
+ "description": "Enable email receiving customers to provide SES with access to their S3 buckets via an IAM role for \"Deliver to S3 Action\"",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.30.json b/.changes/1.34.30.json
new file mode 100644
index 000000000000..eed962933e7a
--- /dev/null
+++ b/.changes/1.34.30.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Add support for custom models via provisioned throughput for Bedrock Model Evaluation",
+ "type": "api-change"
+ },
+ {
+ "category": "``clouddirectory``",
+ "description": "Add examples for API operations in model.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Amazon Connect introduces StartOutboundChatContact API allowing customers to initiate outbound chat contacts",
+ "type": "api-change"
+ },
+ {
+ "category": "``pricing``",
+ "description": "Add examples for API operations in model.",
+ "type": "api-change"
+ },
+ {
+ "category": "``resource-groups``",
+ "description": "This update includes new APIs to support application groups and to allow users to manage resource tag-sync tasks in applications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``supplychain``",
+ "description": "Release DataLakeDataset, DataIntegrationFlow and ResourceTagging APIs for AWS Supply Chain",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-influxdb``",
+ "description": "Timestream for InfluxDB now supports port configuration and additional customer-modifiable InfluxDB v2 parameters. This release adds Port to the CreateDbInstance and UpdateDbInstance API, and additional InfluxDB v2 parameters to the CreateDbParameterGroup API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``verifiedpermissions``",
+ "description": "Add examples for API operations in model.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.31.json b/.changes/1.34.31.json
new file mode 100644
index 000000000000..2525d56f5bd3
--- /dev/null
+++ b/.changes/1.34.31.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "This release adds support to stop an ongoing ingestion job using the StopIngestionJob API in Agents for Amazon Bedrock.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codeartifact``",
+ "description": "Add support for the dual stack endpoints.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release provides additional support for enabling Aurora Limitless Database DB clusters.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.32.json b/.changes/1.34.32.json
new file mode 100644
index 000000000000..393c404ad69e
--- /dev/null
+++ b/.changes/1.34.32.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``appstream``",
+ "description": "Added support for Automatic Time Zone Redirection on Amazon AppStream 2.0",
+ "type": "api-change"
+ },
+ {
+ "category": "``b2bi``",
+ "description": "Added and updated APIs to support outbound EDI transformations",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Added raw model response and usage metrics to PreProcessing and PostProcessing Trace",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Added new fields to Amazon Bedrock Guardrails trace",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotdeviceadvisor``",
+ "description": "Add clientToken attribute and implement idempotency for CreateSuiteDefinition.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs-realtime``",
+ "description": "Adds new Stage Health EventErrorCodes applicable to RTMP(S) broadcasts. Bug Fix: Enforces that EncoderConfiguration Video height and width must be even-number values.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "This release introduces a header representing the minimum object size limit for Lifecycle transitions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "releasing builtinlcc to public",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "WSP is being rebranded to become DCV.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.33.json b/.changes/1.34.33.json
new file mode 100644
index 000000000000..8eddc8abe88a
--- /dev/null
+++ b/.changes/1.34.33.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``codepipeline``",
+ "description": "AWS CodePipeline introduces Commands action that enables you to easily run shell commands as part of your pipeline execution.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Public GetMetricDataV2 Grouping increase from 3 to 4",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release includes a new API for modifying instance cpu-options after launch.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot``",
+ "description": "This release adds support for Custom Authentication with X.509 Client Certificates, support for Custom Client Certificate validation, and support for selecting application protocol and authentication type without requiring TLS ALPN for customer's AWS IoT Domain Configurations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``marketplace-reporting``",
+ "description": "The AWS Marketplace Reporting service introduces the GetBuyerDashboard API. This API returns a dashboard that provides visibility into your organization's AWS Marketplace agreements and associated spend across the AWS accounts in your organization.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediapackagev2``",
+ "description": "Added support for ClipStartTime on the FilterConfiguration object on OriginEndpoint manifest settings objects. Added support for EXT-X-START tags on produced HLS child playlists.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "QuickSight: Add support for exporting and importing folders in AssetBundle APIs",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.4.json b/.changes/1.34.4.json
new file mode 100644
index 000000000000..92bc4cf3c7d2
--- /dev/null
+++ b/.changes/1.34.4.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``autoscaling``",
+ "description": "Amazon EC2 Auto Scaling now provides EBS health check to manage EC2 instance replacement",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock``",
+ "description": "Amazon Bedrock Evaluation BatchDeleteEvaluationJob API allows customers to delete evaluation jobs under terminated evaluation job statuses - Stopped, Failed, or Completed. Customers can submit a batch of 25 evaluation jobs to be deleted at once.",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr-containers``",
+ "description": "Correct endpoint for FIPS is configured for US Gov Regions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``inspector2``",
+ "description": "Add enums for Agentless scan statuses and EC2 enablement error states",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Explicit query for authors and dashboard viewing sharing for embedded users",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53``",
+ "description": "Amazon Route 53 now supports the Asia Pacific (Malaysia) Region (ap-southeast-5) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.5.json b/.changes/1.34.5.json
new file mode 100644
index 000000000000..eb7dbc9063f4
--- /dev/null
+++ b/.changes/1.34.5.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Releasing the support for Action User Confirmation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Releasing the support for Action User Confirmation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "Added support for the MAC_ARM environment type for CodeBuild fleets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Releasing minor partitional endpoint updates.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Amazon QBusiness: Enable support for SAML and OIDC federation through AWS IAM Identity Provider integration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``supplychain``",
+ "description": "Update API documentation to clarify the event SLA as well as the data model expectations",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.6.json b/.changes/1.34.6.json
new file mode 100644
index 000000000000..9f3c3d3791eb
--- /dev/null
+++ b/.changes/1.34.6.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``iotsitewise``",
+ "description": "AWS IoT SiteWise now supports versioning for asset models. It enables users to retrieve active version of their asset model and perform asset model writes with optimistic lock.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "This release adds support for creating and managing directories that use AWS IAM Identity Center as user identity source. Such directories can be used to create non-Active Directory domain joined WorkSpaces Personal.Updated RegisterWorkspaceDirectory and DescribeWorkspaceDirectories APIs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.7.json b/.changes/1.34.7.json
new file mode 100644
index 000000000000..2286f048a1b7
--- /dev/null
+++ b/.changes/1.34.7.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Amazon Bedrock SDK updates for Inference Profile.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Amazon Bedrock SDK updates for Inference Profile.",
+ "type": "api-change"
+ },
+ {
+ "category": "``chatbot``",
+ "description": "Update documentation to be consistent with the API docs",
+ "type": "api-change"
+ },
+ {
+ "category": "``omics``",
+ "description": "Adds data provenance to import jobs from read sets and references",
+ "type": "api-change"
+ },
+ {
+ "category": "``polly``",
+ "description": "Amazon Polly adds 2 new voices: Jitka (cs-CZ) and Sabrina (de-CH).",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.8.json b/.changes/1.34.8.json
new file mode 100644
index 000000000000..dc1fa3a8e2ab
--- /dev/null
+++ b/.changes/1.34.8.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``appconfig``",
+ "description": "This release adds support for deletion protection, which is a safety guardrail to prevent the unintentional deletion of a recently used AWS AppConfig Configuration Profile or Environment. This also includes a change to increase the maximum length of the Name parameter in UpdateConfigurationProfile.",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "Update regex to include dot character to be consistent with IAM role creation in the authorized principal field for create and update subscription target.",
+ "type": "api-change"
+ },
+ {
+ "category": "``devicefarm``",
+ "description": "This release removed support for Calabash, UI Automation, Built-in Explorer, remote access record, remote access replay, and web performance profile framework in ScheduleRun API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Amazon VPC IP Address Manager (IPAM) now allows customers to provision IPv4 CIDR blocks and allocate Elastic IP Addresses directly from IPAM pools with public IPv4 space",
+ "type": "api-change"
+ },
+ {
+ "category": "``internetmonitor``",
+ "description": "Adds new querying types to show overall traffic suggestion information for monitors",
+ "type": "api-change"
+ },
+ {
+ "category": "``pcs``",
+ "description": "Introducing AWS Parallel Computing Service (AWS PCS), a new service makes it easy to setup and manage high performance computing (HPC) clusters, and build scientific and engineering models at virtually any scale on AWS.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Documentation-only update that clarifies the StartWorkspaces and StopWorkspaces actions, and a few other minor edits.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.34.9.json b/.changes/1.34.9.json
new file mode 100644
index 000000000000..465fa7380599
--- /dev/null
+++ b/.changes/1.34.9.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Lifting the maximum length on Bedrock KnowledgeBase RetrievalFilter array",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Add support for imported-model in invokeModel and InvokeModelWithResponseStream.",
+ "type": "api-change"
+ },
+ {
+ "category": "``personalize``",
+ "description": "This releases ability to update automatic training scheduler for customer solutions",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Increased Character Limit for Dataset Calculation Field expressions",
+ "type": "api-change"
+ },
+ {
+ "category": "``stepfunctions``",
+ "description": "This release adds support for static analysis to ValidateStateMachineDefinition API, which can now return optional WARNING diagnostics for semantic errors on the definition of an Amazon States Language (ASL) state machine.",
+ "type": "api-change"
+ },
+ {
+ "category": "``wafv2``",
+ "description": "The minimum request rate for a rate-based rule is now 10. Before this, it was 100.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.0.json b/.changes/1.35.0.json
new file mode 100644
index 000000000000..7d44da228401
--- /dev/null
+++ b/.changes/1.35.0.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``ec2``",
+ "description": "Documentation updates for Amazon EC2.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot-data``",
+ "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.",
+ "type": "api-change"
+ },
+ {
+ "category": "s3",
+ "description": "Adds ``--checksum-mode`` and ``--checksum-algorithm`` parameters to high-level ``s3`` commands.",
+ "type": "feature"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.1.json b/.changes/1.35.1.json
new file mode 100644
index 000000000000..a21f8e18cac0
--- /dev/null
+++ b/.changes/1.35.1.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``deadline``",
+ "description": "Add support for using the template from a previous job during job creation and listing parameter definitions for a job.",
+ "type": "api-change"
+ },
+ {
+ "category": "``marketplace-reporting``",
+ "description": "Documentation-only update for AWS Marketplace Reporting API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qconnect``",
+ "description": "This release adds support for the following capabilities: Configuration of the Gen AI system via AIAgent and AIPrompts. Integration support for Bedrock Knowledge Base.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift``",
+ "description": "Add validation pattern to S3KeyPrefix on the EnableLogging API",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.10.json b/.changes/1.35.10.json
new file mode 100644
index 000000000000..e81481e2b296
--- /dev/null
+++ b/.changes/1.35.10.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``athena``",
+ "description": "Removing FEDERATED from Create/List/Delete/GetDataCatalog API",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock``",
+ "description": "Adding converse support to CMI API's",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Added converse support for custom imported models",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "Adding the following project member designations: PROJECT_CATALOG_VIEWER, PROJECT_CATALOG_CONSUMER and PROJECT_CATALOG_STEWARD in the CreateProjectMembership API and PROJECT_CATALOG_STEWARD designation in the AddPolicyGrant API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "RequestSpotInstances and RequestSpotFleet feature release.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.11.json b/.changes/1.35.11.json
new file mode 100644
index 000000000000..d7d172253221
--- /dev/null
+++ b/.changes/1.35.11.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``application-insights``",
+ "description": "This feature enables customers to specify SNS Topic ARN. CloudWatch Application Insights (CWAI) will utilize this ARN to send problem notifications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``autoscaling``",
+ "description": "Adds support for removing the PlacementGroup setting on an Auto Scaling Group through the UpdateAutoScalingGroup API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Knowledge Bases for Amazon Bedrock now supports custom prompts and model parameters in the orchestrationConfiguration of the RetrieveAndGenerate API. The modelArn field accepts Custom Models and Imported Models ARNs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Added support for tagging in StartReplicationTaskAssessmentRun API and introduced IsLatestTaskAssessmentRun and ResultStatistic fields for enhanced tracking and assessment result statistics.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Amazon EC2 now allows you to create network interfaces with just the EFA driver and no ENA driver by specifying the network interface type as efa-only.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "This release adds support for Amazon Application Recovery Controller (ARC) zonal shift and zonal autoshift with EKS that enhances the resiliency of multi-AZ cluster environments",
+ "type": "api-change"
+ },
+ {
+ "category": "``fms``",
+ "description": "Update AWS WAF policy - add the option to retrofit existing web ACLs instead of creating all new web ACLs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography-data``",
+ "description": "Adding new API to generate authenticated scripts for EMV pin change use cases.",
+ "type": "api-change"
+ },
+ {
+ "category": "``wafv2``",
+ "description": "Add a property to WebACL to indicate whether it's been retrofitted by Firewall Manager.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.12.json b/.changes/1.35.12.json
new file mode 100644
index 000000000000..4266ceb370bd
--- /dev/null
+++ b/.changes/1.35.12.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Updating invoke regex to support imported models for converse API",
+ "type": "api-change"
+ },
+ {
+ "category": "``imagebuilder``",
+ "description": "Add macOS platform and instance placement options",
+ "type": "api-change"
+ },
+ {
+ "category": "``m2``",
+ "description": "Add AuthSecretsManagerArn optional parameter to batch job APIs, expand batch parameter limits, and introduce clientToken constraints.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Global clusters now expose the Endpoint attribute as one of its fields. It is a Read/Write endpoint for the global cluster which resolves to the Global Cluster writer instance.",
+ "type": "api-change"
+ },
+ {
+ "category": "``repostspace``",
+ "description": "Adds the BatchAddRole and BatchRemoveRole APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-query``",
+ "description": "This release adds support for Query Insights, a feature that provides details of query execution, enabling users to identify areas for improvement to optimize their queries, resulting in improved query performance and lower query costs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.13.json b/.changes/1.35.13.json
new file mode 100644
index 000000000000..a4eff790a41b
--- /dev/null
+++ b/.changes/1.35.13.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Doc updates for supporting converse",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Amazon Connect Service Feature: Add support to start screen sharing for a web calling contact.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Amazon EC2 X8g, C8g and M8g instances are powered by AWS Graviton4 processors. X8g provide the lowest cost per GiB of memory among Graviton4 instances. C8g provide the best price performance for compute-intensive workloads. M8g provide the best price performance in for general purpose workloads.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mwaa``",
+ "description": "Introducing InvokeRestApi which allows users to invoke the Apache Airflow REST API on the webserver with the specified inputs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography``",
+ "description": "Add support for ECC P-256 and P-384 Keys.",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography-data``",
+ "description": "Add ECDH support on PIN operations.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.14.json b/.changes/1.35.14.json
new file mode 100644
index 000000000000..3c60b1225964
--- /dev/null
+++ b/.changes/1.35.14.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``appconfig``",
+ "description": "This release improves deployment safety by granting customers the ability to REVERT completed deployments, to the last known good state.In the StopDeployment API revert case the status of a COMPLETE deployment will be REVERTED. AppConfig only allows a revert within 72 hours of deployment completion.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release includes a new API to describe some details of the Amazon Machine Images (AMIs) that were used to launch EC2 instances, even if those AMIs are no longer available for use.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release adds support for EBS volumes attached to Amazon ECS Windows tasks running on EC2 instances.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pcs``",
+ "description": "Documentation update: added the default value of the Slurm configuration parameter scaleDownIdleTimeInSeconds to its description.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Add a new field in chat response. This field can be used to support nested schemas in array fields",
+ "type": "api-change"
+ },
+ {
+ "category": "shorthand",
+ "description": "Improve performance when parsing invalid shorthand syntax.",
+ "type": "bugfix"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.15.json b/.changes/1.35.15.json
new file mode 100644
index 000000000000..e57b9a2eb758
--- /dev/null
+++ b/.changes/1.35.15.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Add support of new model types for Bedrock Agents, Adding inference profile support for Flows and Prompt Management, Adding new field to configure additional inference configurations for Flows and Prompt Management",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports automatically retrying failed builds",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Add TagsError field in Lambda GetFunctionResponse. The TagsError field contains details related to errors retrieving tags.",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Adding inferred token name for dynamic tokens in Anomalies.",
+ "type": "api-change"
+ },
+ {
+ "category": "``supplychain``",
+ "description": "API doc updates, and also support showing error message on a failed instance",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.16.json b/.changes/1.35.16.json
new file mode 100644
index 000000000000..65fda3365348
--- /dev/null
+++ b/.changes/1.35.16.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``mediapackagev2``",
+ "description": "MediaPackage V2 Live to VOD Harvester is a MediaPackage V2 feature, which is used to export content from an origin endpoint to a S3 bucket.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "Adds support for provisioning dedicated coordinator nodes. Coordinator nodes can be specified using the new NodeOptions parameter in ClusterConfig.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release adds support for Enhanced Monitoring and Performance Insights when restoring Aurora Limitless Database DB clusters. It also adds support for the os-upgrade pending maintenance action.",
+ "type": "api-change"
+ },
+ {
+ "category": "``storagegateway``",
+ "description": "Documentation update: Amazon FSx File Gateway will no longer be available to new customers.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.17.json b/.changes/1.35.17.json
new file mode 100644
index 000000000000..2a2ef4e1a663
--- /dev/null
+++ b/.changes/1.35.17.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Update Application Inference Profile",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Update Application Inference Profile",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanrooms``",
+ "description": "This release adds the option for customers to configure analytics engine when creating a collaboration, and introduces the new SPARK analytics engine type in addition to maintaining the legacy CLEAN_ROOMS_SQL engine type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotfleetwise``",
+ "description": "Updated BatchCreateVehicle and BatchUpdateVehicle APIs: LimitExceededException has been added and the maximum number of vehicles in a batch has been set to 10 explicitly",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Added support for new optional baseline parameter in the UpdateAnomaly API. For UpdateAnomaly requests with baseline set to True, The anomaly behavior is then treated as baseline behavior. However, more severe occurrences of this behavior will still be reported as anomalies.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift-data``",
+ "description": "Adding a new API GetStatementResultV2 that supports CSV formatted results from ExecuteStatement and BatchExecuteStatement calls.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adding `notebook-al2-v3` as allowed value to SageMaker NotebookInstance PlatformIdentifier attribute",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.18.json b/.changes/1.35.18.json
new file mode 100644
index 000000000000..6b685c5fcd83
--- /dev/null
+++ b/.changes/1.35.18.json
@@ -0,0 +1,87 @@
+[
+ {
+ "category": "``appsync``",
+ "description": "This release adds support for AppSync Event APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Updated the public documentation for the UserIdentityInfo object to accurately reflect the character limits for the FirstName and LastName fields, which were previously listed as 1-100 characters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``datasync``",
+ "description": "AWS DataSync now supports Enhanced mode tasks. This task mode supports transfer of virtually unlimited numbers of objects with enhanced metrics, more detailed logs, and higher performance than Basic mode. This mode currently supports transfers between Amazon S3 locations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds two new capabilities to VPC Security Groups: Security Group VPC Associations and Shared Security Groups.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release supports service deployments and service revisions which provide a comprehensive view of your Amazon ECS service history.",
+ "type": "api-change"
+ },
+ {
+ "category": "``geo-maps``",
+ "description": "Release of Amazon Location Maps API. Maps enables you to build digital maps that showcase your locations, visualize your data, and unlock insights to drive your business",
+ "type": "api-change"
+ },
+ {
+ "category": "``geo-places``",
+ "description": "Release of Amazon Location Places API. Places enables you to quickly search, display, and filter places, businesses, and locations based on proximity, category, and name",
+ "type": "api-change"
+ },
+ {
+ "category": "``geo-routes``",
+ "description": "Release of Amazon Location Routes API. Routes enables you to plan efficient routes and streamline deliveries by leveraging real-time traffic, vehicle restrictions, and turn-by-turn directions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``keyspaces``",
+ "description": "Adds support for interacting with user-defined types (UDTs) through the following new operations: Create-Type, Delete-Type, List-Types, Get-Type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``network-firewall``",
+ "description": "AWS Network Firewall now supports configuring TCP idle timeout",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This release introduces the new OpenSearch user interface (Dashboards), a new web-based application that can be associated with multiple data sources across OpenSearch managed clusters, serverless collections, and Amazon S3, so that users can gain a comprehensive insights in an unified interface.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearchserverless``",
+ "description": "Neo Integration via IAM Identity Center (IdC)",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift``",
+ "description": "This release launches S3 event integrations to create and manage integrations from an Amazon S3 source into an Amazon Redshift database.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift-serverless``",
+ "description": "Adds and updates API members for the Redshift Serverless AI-driven scaling and optimization feature using the price-performance target setting.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53``",
+ "description": "This release adds support for TLSA, SSHFP, SVCB, and HTTPS record types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Added support for Model Registry Staging construct. Users can define series of stages that models can progress through for model workflows and lifecycle. This simplifies tracking and managing models as they transition through development, testing, and production stages.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workmail``",
+ "description": "This release adds support for Multi-Factor Authentication (MFA) and Personal Access Tokens through integration with AWS IAM Identity Center.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.19.json b/.changes/1.35.19.json
new file mode 100644
index 000000000000..bbb193551a72
--- /dev/null
+++ b/.changes/1.35.19.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``amp``",
+ "description": "Added support for UpdateScraper API, to enable updating collector configuration in-place",
+ "type": "api-change"
+ },
+ {
+ "category": "``autoscaling``",
+ "description": "Adds bake time for Auto Scaling group Instance Refresh",
+ "type": "api-change"
+ },
+ {
+ "category": "``batch``",
+ "description": "Add `podNamespace` to `EksAttemptDetail` and `containerID` to `EksAttemptContainerDetail`.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "Add UDP support for AWS PrivateLink and dual-stack Network Load Balancers",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add schedule support for AWS Glue column statistics",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "SageMaker HyperPod adds scale-down at instance level via BatchDeleteClusterNodes API and group level via UpdateCluster API. SageMaker Training exposes secondary job status in TrainingJobSummary from ListTrainingJobs API. SageMaker now supports G6, G6e, P5e instances for HyperPod and Training.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "This release enables customers to provide the email template content in the SESv2 SendEmail and SendBulkEmail APIs instead of the name or the ARN of a stored email template.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.2.json b/.changes/1.35.2.json
new file mode 100644
index 000000000000..672f7eec55d2
--- /dev/null
+++ b/.changes/1.35.2.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``elasticache``",
+ "description": "AWS ElastiCache SDK now supports using APIs with newly launched Valkey engine. Please refer to updated AWS ElastiCache public documentation for detailed information on API usage.",
+ "type": "api-change"
+ },
+ {
+ "category": "``memorydb``",
+ "description": "Amazon MemoryDB SDK now supports all APIs for newly launched Valkey engine. Please refer to the updated Amazon MemoryDB public documentation for detailed information on API usage.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Adds logic to gracefully handle invalid timestamps returned in the Expires header.",
+ "type": "enhancement"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.20.json b/.changes/1.35.20.json
new file mode 100644
index 000000000000..a9a810894b06
--- /dev/null
+++ b/.changes/1.35.20.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Amazon Bedrock Knowledge Bases now supports using application inference profiles to increase throughput and improve resilience.",
+ "type": "api-change"
+ },
+ {
+ "category": "``docdb-elastic``",
+ "description": "Amazon DocumentDB Elastic Clusters adds support for pending maintenance actions feature with APIs GetPendingMaintenanceAction, ListPendingMaintenanceActions and ApplyPendingMaintenanceAction",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "This release introduces an improvement in PutLogEvents",
+ "type": "api-change"
+ },
+ {
+ "category": "``taxsettings``",
+ "description": "Add support for supplemental tax registrations via these new APIs: PutSupplementalTaxRegistration, ListSupplementalTaxRegistrations, and DeleteSupplementalTaxRegistration.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.21.json b/.changes/1.35.21.json
new file mode 100644
index 000000000000..8fa134dc0871
--- /dev/null
+++ b/.changes/1.35.21.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now adds additional compute types for reserved capacity fleet.",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "GuardDuty RDS Protection expands support for Amazon Aurora PostgreSQL Limitless Databases.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lakeformation``",
+ "description": "API changes for new named tag expressions feature.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qapps``",
+ "description": "Introduces category apis in AmazonQApps. Web experience users use Categories to tag and filter library items.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3control``",
+ "description": "Fix ListStorageLensConfigurations and ListStorageLensGroups deserialization for Smithy SDKs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``verifiedpermissions``",
+ "description": "Adding BatchGetPolicy API which supports the retrieval of multiple policies across multiple policy stores within a single request.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.22.json b/.changes/1.35.22.json
new file mode 100644
index 000000000000..55b680dad2a3
--- /dev/null
+++ b/.changes/1.35.22.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``autoscaling``",
+ "description": "Auto Scaling groups now support the ability to strictly balance instances across Availability Zones by configuring the AvailabilityZoneDistribution parameter. If balanced-only is configured for a group, launches will always be attempted in the under scaled Availability Zone even if it is unhealthy.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "Add prompt support for chat template configuration and agent generative AI resource. Add support for configuring an optional guardrail in Prompt and Knowledge Base nodes in Prompt Flows. Add API to validate flow definition",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Add Prompt management support to Bedrock runtime APIs: Converse, ConverseStream, InvokeModel, InvokeModelWithStreamingResponse",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanrooms``",
+ "description": "This release introduces support for Custom Models in AWS Clean Rooms ML.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanroomsml``",
+ "description": "This release introduces support for Custom Models in AWS Clean Rooms ML.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Add Client Credentials based OAuth support for Snowflake and Starburst",
+ "type": "api-change"
+ },
+ {
+ "category": "``resource-explorer-2``",
+ "description": "Add GetManagedView, ListManagedViews APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``synthetics``",
+ "description": "Add support to toggle if a canary will automatically delete provisioned canary resources such as Lambda functions and layers when a canary is deleted. This behavior can be controlled via the new ProvisionedResourceCleanup property exposed in the CreateCanary and UpdateCanary APIs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.23.json b/.changes/1.35.23.json
new file mode 100644
index 000000000000..b6060207d0bb
--- /dev/null
+++ b/.changes/1.35.23.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``batch``",
+ "description": "This feature allows override LaunchTemplates to be specified in an AWS Batch Compute Environment.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This release adds trace functionality to Bedrock Prompt Flows",
+ "type": "api-change"
+ },
+ {
+ "category": "``chime-sdk-media-pipelines``",
+ "description": "Added support for Media Capture Pipeline and Media Concatenation Pipeline for customer managed server side encryption. Now Media Capture Pipeline can use IAM sink role to get access to KMS key and encrypt/decrypt recorded artifacts. KMS key ID can also be supplied with encryption context.",
+ "type": "api-change"
+ },
+ {
+ "category": "``controlcatalog``",
+ "description": "AWS Control Catalog GetControl public API returns additional data in output, including Implementation and Parameters",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Adds new error code `Ec2InstanceTypeDoesNotExist` for Amazon EKS managed node groups",
+ "type": "api-change"
+ },
+ {
+ "category": "``firehose``",
+ "description": "Amazon Data Firehose / Features : Adds support for a new DeliveryStreamType, DatabaseAsSource. DatabaseAsSource hoses allow customers to stream CDC events from their RDS and Amazon EC2 hosted databases, running MySQL and PostgreSQL database engines, to Iceberg Table destinations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "This release adds support for using AWS KMS customer managed keys to encrypt AWS Lambda .zip deployment packages.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint-sms-voice-v2``",
+ "description": "Added the RequiresAuthenticationTimestamp field to the RegistrationVersionStatusHistory data type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Adds S3 path option to pass group member list for PutGroup API.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.24.json b/.changes/1.35.24.json
new file mode 100644
index 000000000000..e89e0359049e
--- /dev/null
+++ b/.changes/1.35.24.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``cloudfront``",
+ "description": "No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged.",
+ "type": "api-change"
+ },
+ {
+ "category": "``inspector2``",
+ "description": "Adds support for filePath filter.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Add Python 3.13 (python3.13) support to AWS Lambda",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "Adds Support for new AssociatePackages and DissociatePackages API in Amazon OpenSearch Service that allows association and dissociation operations to be carried out on multiple packages at the same time.",
+ "type": "api-change"
+ },
+ {
+ "category": "``outposts``",
+ "description": "This release updates StartCapacityTask to allow an active Outpost to be modified. It also adds a new API to list all running EC2 instances on the Outpost.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.3.json b/.changes/1.35.3.json
new file mode 100644
index 000000000000..041b8caf7976
--- /dev/null
+++ b/.changes/1.35.3.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``codepipeline``",
+ "description": "AWS CodePipeline introduces a Compute category",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.4.json b/.changes/1.35.4.json
new file mode 100644
index 000000000000..06247d72fee0
--- /dev/null
+++ b/.changes/1.35.4.json
@@ -0,0 +1,57 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "Documentation updates for AWS Private CA.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Introduces DescribeDataMigrations, CreateDataMigration, ModifyDataMigration, DeleteDataMigration, StartDataMigration, StopDataMigration operations to SDK. Provides FailedDependencyFault error message.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds support for assigning the billing of shared Amazon EC2 On-Demand Capacity Reservations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This is a documentation only release that updates to documentation to let customers know that Amazon Elastic Inference is no longer available.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elastic-inference``",
+ "description": "Elastic Inference - Documentation update to add service shutdown notice.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotfleetwise``",
+ "description": "Refine campaign related API validations",
+ "type": "api-change"
+ },
+ {
+ "category": "``neptune-graph``",
+ "description": "Support for 16 m-NCU graphs available through account allowlisting",
+ "type": "api-change"
+ },
+ {
+ "category": "``outposts``",
+ "description": "Adding new \"DELIVERED\" enum value for Outposts Order status",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53resolver``",
+ "description": "Route 53 Resolver Forwarding Rules can now include a server name indication (SNI) in the target address for rules that use the DNS-over-HTTPS (DoH) protocol. When a DoH-enabled Outbound Resolver Endpoint forwards a request to a DoH server, it will provide the SNI in the TLS handshake.",
+ "type": "api-change"
+ },
+ {
+ "category": "``socialmessaging``",
+ "description": "This release for AWS End User Messaging includes a public SDK, providing a suite of APIs that enable sending WhatsApp messages to end users.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-influxdb``",
+ "description": "This release updates our regex based validation rules in regards to valid DbInstance and DbParameterGroup name.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.5.json b/.changes/1.35.5.json
new file mode 100644
index 000000000000..22b588d5a46d
--- /dev/null
+++ b/.changes/1.35.5.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``appflow``",
+ "description": "Doc only updates for clarification around OAuth2GrantType for Salesforce.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "Add zonal_shift.config.enabled attribute. Add new AdministrativeOverride construct in the describe-target-health API response to include information about the override status applied to a target.",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr``",
+ "description": "This release provides new parameter \"Context\" in instance fleet clusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Added a new field for network connection details.",
+ "type": "api-change"
+ },
+ {
+ "category": "``robomaker``",
+ "description": "Documentation update: added support notices to each API action.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.6.json b/.changes/1.35.6.json
new file mode 100644
index 000000000000..5bcd920b80d9
--- /dev/null
+++ b/.changes/1.35.6.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``codepipeline``",
+ "description": "AWS CodePipeline V2 type pipelines now support automatically retrying failed stages and skipping stage for failed entry conditions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mailmanager``",
+ "description": "Mail Manager support for viewing and exporting metadata of archived messages.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securitylake``",
+ "description": "This release updates request validation regex for resource ARNs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``supplychain``",
+ "description": "This release adds AWS Supply Chain instance management functionality. Specifically adding CreateInstance, DeleteInstance, GetInstance, ListInstances, and UpdateInstance APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``transfer``",
+ "description": "This release enables customers using SFTP connectors to query the transfer status of their files to meet their monitoring needs as well as orchestrate post transfer actions.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.7.json b/.changes/1.35.7.json
new file mode 100644
index 000000000000..63505bbc274d
--- /dev/null
+++ b/.changes/1.35.7.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``amplify``",
+ "description": "Added sourceUrlType field to StartDeployment request",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudformation``",
+ "description": "Documentation update for AWS CloudFormation API Reference.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "Enable proxy for reserved capacity fleet.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs``",
+ "description": "On a channel that you own, you can now replace an ongoing stream with a new stream by streaming up with the priority parameter appended to the stream key.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Amazon Q Business now supports embedding the Amazon Q Business web experience on third-party websites.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift``",
+ "description": "This release launches the CreateIntegration, DeleteIntegration, DescribeIntegrations and ModifyIntegration APIs to create and manage Amazon Redshift Zero-ETL Integrations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``resiliencehub``",
+ "description": "AWS Resilience Hub now integrates with the myApplications platform, enabling customers to easily assess the resilience of applications defined in myApplications. The new Resiliency widget provides visibility into application resilience and actionable recommendations for improvement.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "This release adds support for email maximum delivery seconds that allows senders to control the time within which their emails are attempted for delivery.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.8.json b/.changes/1.35.8.json
new file mode 100644
index 000000000000..4e3bc4f046f7
--- /dev/null
+++ b/.changes/1.35.8.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``s3``",
+ "description": "Add support for the new optional bucket-region and prefix query parameters in the ListBuckets API. For ListBuckets requests that express pagination, Amazon S3 will now return both the bucket names and associated AWS regions in the response.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.35.9.json b/.changes/1.35.9.json
new file mode 100644
index 000000000000..dd363221a2f7
--- /dev/null
+++ b/.changes/1.35.9.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Removing support for topK property in PromptModelInferenceConfiguration object, Making PromptTemplateConfiguration property as required, Limiting the maximum PromptVariant to 1",
+ "type": "api-change"
+ },
+ {
+ "category": "``dataexchange``",
+ "description": "This release adds Data Grant support, through which customers can programmatically create data grants to share with other AWS accounts and accept data grants from other AWS accounts.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This is an Amazon ECS documentation only update to address tickets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint-sms-voice-v2``",
+ "description": "Added the registrations status of REQUIRES_AUTHENTICATION",
+ "type": "api-change"
+ },
+ {
+ "category": "``pipes``",
+ "description": "This release adds validation to require specifying a SecurityGroup and Subnets in the Vpc object under PipesSourceSelfManagedKafkaParameters. It also adds support for iso-e, iso-f, and other non-commercial partitions in ARN parameters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Add StartDashboardSnapshotJobSchedule API. RestoreAnalysis now supports restoring analysis to folders.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation for TAZ IAM support",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Updated the DomainName pattern for Active Directory",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.0.json b/.changes/1.36.0.json
new file mode 100644
index 000000000000..658ef9b3cc7e
--- /dev/null
+++ b/.changes/1.36.0.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild now supports non-containerized Linux and Windows builds on Reserved Capacity.",
+ "type": "api-change"
+ },
+ {
+ "category": "``controltower``",
+ "description": "Added ResetEnabledControl API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fis``",
+ "description": "This release adds support for generating experiment reports with the experiment report configuration",
+ "type": "api-change"
+ },
+ {
+ "category": "``gamelift``",
+ "description": "Amazon GameLift releases container fleets support for general availability. Deploy Linux-based containerized game server software for hosting on Amazon GameLift.",
+ "type": "api-change"
+ },
+ {
+ "category": "``payment-cryptography``",
+ "description": "Updated ListAliases API with KeyArn filter.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation for Amazon RDS Extended Support for Amazon Aurora MySQL.",
+ "type": "api-change"
+ },
+ {
+ "category": "shorthand",
+ "description": "Adds support to shorthand syntax for loading parameters from files via the ``@=`` assignment operator.",
+ "type": "feature"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.1.json b/.changes/1.36.1.json
new file mode 100644
index 000000000000..9b70a99abcbc
--- /dev/null
+++ b/.changes/1.36.1.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``accessanalyzer``",
+ "description": "This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators.",
+ "type": "api-change"
+ },
+ {
+ "category": "``application-signals``",
+ "description": "Amazon CloudWatch Application Signals now supports creating Service Level Objectives with burn rates. Users can now create or update SLOs with burn rate configurations to meet their specific business requirements.",
+ "type": "api-change"
+ },
+ {
+ "category": "``b2bi``",
+ "description": "This release adds a GenerateMapping API to allow generation of JSONata or XSLT transformer code based on input and output samples.",
+ "type": "api-change"
+ },
+ {
+ "category": "``billing``",
+ "description": "Today, AWS announces the general availability of ListBillingViews API in the AWS SDKs, to enable AWS Billing Conductor (ABC) users to create proforma Cost and Usage Reports (CUR) programmatically.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudtrail``",
+ "description": "This release adds a new API GenerateQuery that generates a query from a natural language prompt about the event data in your event data store. This operation uses generative artificial intelligence (generative AI) to produce a ready-to-use SQL query from the prompt.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dynamodb``",
+ "description": "This release includes supports the new WarmThroughput feature for DynamoDB. You can now provide an optional WarmThroughput attribute for CreateTable or UpdateTable APIs to pre-warm your table or global secondary index. You can also use DescribeTable to see the latest WarmThroughput value.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds the source AMI details in DescribeImages API",
+ "type": "api-change"
+ },
+ {
+ "category": "``internetmonitor``",
+ "description": "Add new query type Routing_Suggestions regarding querying interface",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds support for ARN inputs in the Kantar credentials secrets name field and the MSPR field to the manifests for PlayReady DRM protected outputs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Add support for policy operations on the Resource Control Polices.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.10.json b/.changes/1.36.10.json
new file mode 100644
index 000000000000..28000710a77e
--- /dev/null
+++ b/.changes/1.36.10.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``directconnect``",
+ "description": "Update DescribeDirectConnectGatewayAssociations API to return associated core network information if a Direct Connect gateway is attached to a Cloud WAN core network.",
+ "type": "api-change"
+ },
+ {
+ "category": "``networkmanager``",
+ "description": "This release adds native Direct Connect integration on Cloud WAN enabling customers to directly attach their Direct Connect gateways to Cloud WAN without the need for an intermediate Transit Gateway.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Amazon Simple Storage Service / Features: Add support for ETag based conditional writes in PutObject and CompleteMultiPartUpload APIs to prevent unintended object modifications.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.11.json b/.changes/1.36.11.json
new file mode 100644
index 000000000000..020c56230736
--- /dev/null
+++ b/.changes/1.36.11.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Custom Orchestration API release for AWSBedrockAgents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Custom Orchestration and Streaming configurations API release for AWSBedrockAgents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Enables access to ValueMap and ValueInteger types for SegmentAttributes and fixes deserialization bug for DescribeContactFlow in AmazonConnect Public API",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Adds support for Time-based Copy for EBS Snapshots and Cross Region PrivateLink. Time-based Copy ensures that EBS Snapshots are copied within and across AWS Regions in a specified timeframe. Cross Region PrivateLink enables customers to connect to VPC endpoint services hosted in other AWS Regions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qapps``",
+ "description": "Private sharing, file upload and data collection feature support for Q Apps",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.12.json b/.changes/1.36.12.json
new file mode 100644
index 000000000000..528a12728534
--- /dev/null
+++ b/.changes/1.36.12.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Add support for specifying embeddingDataType, either FLOAT32 or BINARY",
+ "type": "api-change"
+ },
+ {
+ "category": "``config``",
+ "description": "AWS Config adds support for service-linked recorders, a new type of Config recorder managed by AWS services to record specific subsets of resource configuration data and functioning independently from customer managed AWS Config recorders.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fsx``",
+ "description": "This release adds EFA support to increase FSx for Lustre file systems' throughput performance to a single client instance. This can be done by specifying EfaEnabled=true at the time of creation of Persistent_2 file systems.",
+ "type": "api-change"
+ },
+ {
+ "category": "``observabilityadmin``",
+ "description": "Amazon CloudWatch Observability Admin adds the ability to audit telemetry configuration for AWS resources in customers AWS Accounts and Organizations. The release introduces new APIs to turn on/off the new experience, which supports discovering supported AWS resources and their state of telemetry.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.13.json b/.changes/1.36.13.json
new file mode 100644
index 000000000000..f9293ba5d512
--- /dev/null
+++ b/.changes/1.36.13.json
@@ -0,0 +1,152 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Add support for Knowledge Base Evaluations & LLM as a judge",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "This release introduces APIs to upload documents directly into a Knowledge Base",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This release introduces a new Rerank API to leverage reranking models (with integration into Knowledge Bases); APIs to upload documents directly into Knowledge Base; RetrieveAndGenerateStream API for streaming response; Guardrails on Retrieve API; and ability to automatically generate filters",
+ "type": "api-change"
+ },
+ {
+ "category": "``chime-sdk-voice``",
+ "description": "This release adds supports for enterprises to integrate Amazon Connect with other voice systems. It supports directly transferring voice calls and metadata without using the public telephone network. It also supports real-time and post-call analytics.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanrooms``",
+ "description": "This release allows customers and their partners to easily collaborate with data stored in Snowflake and Amazon Athena, without having to move or share their underlying data among collaborators.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Adds support for WhatsApp Business messaging, IVR call recording, enabling Contact Lens for existing on-premise contact centers and telephony platforms, and enabling telephony and IVR migration to Amazon Connect independent of their contact center agents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connectcampaignsv2``",
+ "description": "Amazon Connect Outbound Campaigns V2 / Features : Adds support for Event-Triggered Campaigns.",
+ "type": "api-change"
+ },
+ {
+ "category": "``customer-profiles``",
+ "description": "This release introduces Event Trigger APIs as part of Amazon Connect Customer Profiles service.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Adds support for declarative policies that allow you to enforce desired configuration across an AWS organization through configuring account attributes. Adds support for Allowed AMIs that allows you to limit the use of AMIs in AWS accounts. Adds support for connectivity over non-HTTP protocols.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release adds support for Container Insights with Enhanced Observability for Amazon ECS.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Added support for Auto Mode Clusters, Hybrid Nodes, and specifying computeTypes in the DescribeAddonVersions API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``events``",
+ "description": "Call private APIs by configuring Connections with VPC connectivity through PrivateLink and VPC Lattice",
+ "type": "api-change"
+ },
+ {
+ "category": "``fsx``",
+ "description": "FSx API changes to support the public launch of the Amazon FSx Intelligent Tiering for OpenZFS storage class.",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Add new Multi Domain Correlation findings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``imagebuilder``",
+ "description": "Added support for EC2 Image Builder's integration with AWS Marketplace for Marketplace components.",
+ "type": "api-change"
+ },
+ {
+ "category": "``invoicing``",
+ "description": "AWS Invoice Configuration allows you to receive separate AWS invoices based on your organizational needs. You can use the AWS SDKs to manage Invoice Units and programmatically fetch the information of the invoice receiver.",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Adds PutIntegration, GetIntegration, ListIntegrations and DeleteIntegration APIs. Adds QueryLanguage support to StartQuery, GetQueryResults, DescribeQueries, DescribeQueryDefinitions, and PutQueryDefinition APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``memorydb``",
+ "description": "Amazon MemoryDB SDK now supports all APIs for Multi-Region. Please refer to the updated Amazon MemoryDB public documentation for detailed information on API usage.",
+ "type": "api-change"
+ },
+ {
+ "category": "``networkflowmonitor``",
+ "description": "This release adds documentation for a new feature in Amazon CloudWatch called Network Flow Monitor. You can use Network Flow Monitor to get near real-time metrics, including retransmissions and data transferred, for your actual workloads.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearch``",
+ "description": "This feature introduces support for CRUDL APIs, enabling the creation and management of Connected data sources.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Add support for policy operations on the DECLARATIVE_POLICY_EC2 policy type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Amazon Q Business now supports capabilities to extract insights and answer questions from visual elements embedded within documents, a browser extension for Google Chrome, Mozilla Firefox, and Microsoft Edge, and attachments across conversations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qconnect``",
+ "description": "This release adds following capabilities: Configuring safeguards via AIGuardrails for Q in Connect inferencing, and APIs to support Q&A self-service use cases",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Amazon RDS supports CloudWatch Database Insights. You can use the SDK to create, modify, and describe the DatabaseInsightsMode for your DB instances and clusters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Amazon S3 introduces support for AWS Dedicated Local Zones",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3control``",
+ "description": "Amazon S3 introduces support for AWS Dedicated Local Zones",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Add new Multi Domain Correlation findings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``security-ir``",
+ "description": "AWS Security Incident Response is a purpose-built security incident solution designed to help customers prepare for, respond to, and recover from security incidents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``transfer``",
+ "description": "AWS Transfer Family now offers Web apps that enables simple and secure access to data stored in Amazon S3.",
+ "type": "api-change"
+ },
+ {
+ "category": "``vpc-lattice``",
+ "description": "Lattice APIs that allow sharing and access of VPC resources across accounts.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.14.json b/.changes/1.36.14.json
new file mode 100644
index 000000000000..8cc093c5fcc5
--- /dev/null
+++ b/.changes/1.36.14.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Add an API parameter that allows customers to set performance configuration for invoking a model.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3control``",
+ "description": "It allows customers to pass CRC64NVME as a header in S3 Batch Operations copy requests",
+ "type": "api-change"
+ },
+ {
+ "category": "``socialmessaging``",
+ "description": "Added support for passing role arn corresponding to the supported event destination",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.15.json b/.changes/1.36.15.json
new file mode 100644
index 000000000000..8403e5d0976a
--- /dev/null
+++ b/.changes/1.36.15.json
@@ -0,0 +1,92 @@
+[
+ {
+ "category": "``athena``",
+ "description": "Add FEDERATED type to CreateDataCatalog. This creates Athena Data Catalog, AWS Lambda connector, and AWS Glue connection. Create/DeleteDataCatalog returns DataCatalog. Add Status, ConnectionType, and Error to DataCatalog and DataCatalogSummary. Add DeleteCatalogOnly to delete Athena Catalog only.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock``",
+ "description": "Tagging support for Async Invoke resources. Added support for Distillation in CreateModelCustomizationJob API. Support for videoDataDeliveryEnabled flag in invocation logging.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "Releasing SDK for Multi-Agent Collaboration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Releasing SDK for multi agent collaboration",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Added support for Async Invoke Operations Start, List and Get. Support for invocation logs with `requestMetadata` field in Converse, ConverseStream, Invoke and InvokeStream. Video content blocks in Converse/ConverseStream accept raw bytes or S3 URI.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudwatch``",
+ "description": "Support for configuring AiOps investigation as alarm action",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "Adds support for Connections, ProjectProfiles, and JobRuns APIs. Supports the new Lineage feature at GA. Adjusts optionality of a parameter for DataSource and SubscriptionTarget APIs which may adjust types in some clients.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dsql``",
+ "description": "Add new API operations for Amazon Aurora DSQL. Amazon Aurora DSQL is a serverless, distributed SQL database with virtually unlimited scale, highest availability, and zero infrastructure management.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dynamodb``",
+ "description": "This change adds support for global tables with multi-Region strong consistency (in preview). The UpdateTable API now supports a new attribute MultiRegionConsistency to set consistency when creating global tables. The DescribeTable output now optionally includes the MultiRegionConsistency attribute.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "This release includes(1)Zero-ETL integration to ingest data from 3P SaaS and DynamoDB to Redshift/Redlake (2)new properties on Connections to enable reuse; new connection APIs for retrieve/preview metadata (3)support of CRUD operations for Multi-catalog (4)support of automatic statistics collections",
+ "type": "api-change"
+ },
+ {
+ "category": "``lakeformation``",
+ "description": "This release added two new LakeFormation Permissions (CREATE_CATALOG, SUPER_USER) and added Id field for CatalogResource. It also added new conditon and expression field.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qapps``",
+ "description": "Add support for 11 new plugins as action cards to help automate repetitive tasks and improve productivity.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Amazon Q Business now supports customization options for your web experience, 11 new Plugins, and QuickSight support. Amazon Q index allows software providers to enrich their native generative AI experiences with their customer's enterprise knowledge and user context spanning multiple applications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "This release includes API needed to support for Unstructured Data in Q in QuickSight Q&A (IDC).",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift``",
+ "description": "Adds support for Amazon Redshift RegisterNamespace and DeregisterNamespace APIs to share data to AWS Glue Data Catalog.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift-serverless``",
+ "description": "Adds support for the ListManagedWorkgroups API to get an overview of existing managed workgroups.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Amazon S3 Metadata stores object metadata in read-only, fully managed Apache Iceberg metadata tables that you can query. You can create metadata table configurations for S3 general purpose buckets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3tables``",
+ "description": "Amazon S3 Tables deliver the first cloud object store with built-in open table format support, and the easiest way to store tabular data at scale.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.16.json b/.changes/1.36.16.json
new file mode 100644
index 000000000000..9d5a3c902a07
--- /dev/null
+++ b/.changes/1.36.16.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``bedrock``",
+ "description": "Introduced two APIs ListPromptRouters and GetPromptRouter for Intelligent Prompt Router feature. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This release introduces the ability to generate SQL using natural language, through a new GenerateQuery API (with native integration into Knowledge Bases); ability to ingest and retrieve images through Bedrock Data Automation; and ability to create a Knowledge Base backed by Kendra GenAI Index.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-data-automation``",
+ "description": "Release Bedrock Data Automation SDK",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-data-automation-runtime``",
+ "description": "Release Bedrock Data Automation Runtime SDK",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Added support for Intelligent Prompt Router in Invoke, InvokeStream, Converse and ConverseStream. Add support for Bedrock Guardrails image content filter. New Bedrock Marketplace feature enabling a wider range of bedrock compatible models with self-hosted capability.",
+ "type": "api-change"
+ },
+ {
+ "category": "``kendra``",
+ "description": "This release adds GenAI Index in Amazon Kendra for Retrieval Augmented Generation (RAG) and intelligent search. With the Kendra GenAI Index, customers get high retrieval accuracy powered by the latest information retrieval technologies and semantic models.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Amazon SageMaker HyperPod launched task governance to help customers maximize accelerator utilization for model development and flexible training plans to meet training timelines and budget while reducing weeks of training time. AI apps from AWS partner is now available in SageMaker.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.17.json b/.changes/1.36.17.json
new file mode 100644
index 000000000000..1f5e70543cd7
--- /dev/null
+++ b/.changes/1.36.17.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``partnercentral-selling``",
+ "description": "Introducing the preview of new partner central selling APIs designed to transform how AWS partners collaborate and co-sell with multiple partners. This enables multiple partners to seamlessly engage and jointly pursue customer opportunities, fostering a new era of collaborative selling.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "This release removes the deprecated UserId and UserGroups fields from SearchRelevantContent api's request parameters.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.18.json b/.changes/1.36.18.json
new file mode 100644
index 000000000000..364f8c259c66
--- /dev/null
+++ b/.changes/1.36.18.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``appsync``",
+ "description": "Provides description of new Amazon Bedrock runtime datasource.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-idp``",
+ "description": "Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release includes a new API for modifying instance network-performance-options after launch.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This is a documentation only update to address various tickets for Amazon ECS.",
+ "type": "api-change"
+ },
+ {
+ "category": "``keyspaces``",
+ "description": "Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "H265 outputs now support disabling the deblocking filter.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added text to clarify case-sensitivity",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.19.json b/.changes/1.36.19.json
new file mode 100644
index 000000000000..a923cbfc3413
--- /dev/null
+++ b/.changes/1.36.19.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``application-autoscaling``",
+ "description": "Doc only update for AAS Predictive Scaling policy configuration API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bcm-pricing-calculator``",
+ "description": "Updated condition key inference from Workload Estimate, Bill Scenario, and Bill Estimate resources. Updated documentation links.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Add support for Push Notifications for Amazon Connect chat. With Push Notifications enabled an alert could be sent to customers about new messages even when they aren't actively using the mobile application.",
+ "type": "api-change"
+ },
+ {
+ "category": "``finspace``",
+ "description": "Update KxCommandLineArgument value parameter regex to allow for spaces and semicolons",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs-realtime``",
+ "description": "IVS Real-Time now offers customers the ability to customize thumbnails recording mode and interval for both Individual Participant Recording (IPR) and Server-Side Compositions (SSC).",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "Introduces support for creating DEED (Deterministic Easy-DKIM) identities.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.2.json b/.changes/1.36.2.json
new file mode 100644
index 000000000000..987df1336ecf
--- /dev/null
+++ b/.changes/1.36.2.json
@@ -0,0 +1,67 @@
+[
+ {
+ "category": "``accessanalyzer``",
+ "description": "Expand analyzer configuration capabilities for unused access analyzers. Unused access analyzer configurations now support the ability to exclude accounts and resource tags from analysis providing more granular control over the scope of analysis.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudcontrol``",
+ "description": "Added support for CloudFormation Hooks with Cloud Control API. The GetResourceRequestStatus API response now includes an optional HooksProgressEvent and HooksRequestToken parameter for Hooks Invocation Progress as part of resource operation with Cloud Control.",
+ "type": "api-change"
+ },
+ {
+ "category": "``deadline``",
+ "description": "Adds support for select GPU accelerated instance types when creating new service-managed fleets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iam``",
+ "description": "This release includes support for five new APIs and changes to existing APIs that give AWS Organizations customers the ability to use temporary root credentials, targeted to member accounts in the organization.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotwireless``",
+ "description": "New FuotaTask resource type to enable logging for your FUOTA tasks. A ParticipatingGatewaysforMulticast parameter to choose the list of gateways to receive the multicast downlink message and the transmission interval between them. Descriptor field which will be sent to devices during FUOTA transfer.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ivs``",
+ "description": "IVS now offers customers the ability to stream multitrack video to Channels.",
+ "type": "api-change"
+ },
+ {
+ "category": "``license-manager-user-subscriptions``",
+ "description": "New and updated API operations to support License Included User-based Subscription of Microsoft Remote Desktop Services (RDS).",
+ "type": "api-change"
+ },
+ {
+ "category": "``partnercentral-selling``",
+ "description": "Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "This release adds APIs for Custom Permissions management in QuickSight, and APIs to support QuickSight Branding.",
+ "type": "api-change"
+ },
+ {
+ "category": "``redshift``",
+ "description": "Adds support for Amazon Redshift S3AccessGrants",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "This release updates the ListBuckets API Reference documentation in support of the new 10,000 general purpose bucket default quota on all AWS accounts. To increase your bucket quota from 10,000 to up to 1 million buckets, simply request a quota increase via Service Quotas.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Add support for Neuron instance types [ trn1/trn1n/inf2 ] on SageMaker Notebook Instances Platform.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sts``",
+ "description": "This release introduces the new API 'AssumeRoot', which returns short-term credentials that you can use to perform privileged tasks.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.20.json b/.changes/1.36.20.json
new file mode 100644
index 000000000000..309912d52732
--- /dev/null
+++ b/.changes/1.36.20.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``artifact``",
+ "description": "Add support for listing active customer agreements for the calling AWS Account.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudtrail``",
+ "description": "Doc-only updates for CloudTrail.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-idp``",
+ "description": "Updated descriptions for some API operations and parameters, corrected some errors in Cognito user pools",
+ "type": "api-change"
+ },
+ {
+ "category": "``controlcatalog``",
+ "description": "Minor documentation updates to the content of ImplementationDetails object part of the Control Catalog GetControl API",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr-serverless``",
+ "description": "This release adds support for accessing system profile logs in Lake Formation-enabled jobs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mgh``",
+ "description": "API and documentation updates for AWS MigrationHub related to adding support for listing migration task updates and associating, disassociating and listing source resources",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "Introduces support for multi-region endpoint.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-influxdb``",
+ "description": "Adds networkType parameter to CreateDbInstance API which allows IPv6 support to the InfluxDB endpoint",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.21.json b/.changes/1.36.21.json
new file mode 100644
index 000000000000..39bc4239bbbc
--- /dev/null
+++ b/.changes/1.36.21.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``connect``",
+ "description": "Configure holidays and other overrides to hours of operation in advance. During contact handling, Amazon Connect automatically checks for overrides and provides customers with an appropriate flow path. After an override period passes call center automatically reverts to standard hours of operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Add parameters to support for kerberos authentication. Add parameter for disabling the Unicode source filter with PostgreSQL settings. Add parameter to use large integer value with Kinesis/Kafka settings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "To support customer-managed encryption in Data Quality to allow customers encrypt data with their own KMS key, we will add a DataQualityEncryption field to the SecurityConfiguration API where customers can provide their KMS keys.",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Improved descriptions for certain APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53domains``",
+ "description": "This release includes the following API updates: added the enumeration type RESTORE_DOMAIN to the OperationType; constrained the Price attribute to non-negative values; updated the LangCode to allow 2 or 3 alphabetical characters.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.22.json b/.changes/1.36.22.json
new file mode 100644
index 000000000000..1e068976db97
--- /dev/null
+++ b/.changes/1.36.22.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``cloudhsmv2``",
+ "description": "Add support for Dual-Stack hsm2m.medium clusters. The customers will now be able to create hsm2m.medium clusters having both IPv4 and IPv6 connection capabilities by specifying a new param called NetworkType=DUALSTACK during cluster creation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds GroupId to the response for DeleteSecurityGroup.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Add NodeRepairConfig in CreateNodegroupRequest and UpdateNodegroupConfigRequest",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Limit PutIntegration IntegrationName and ListIntegrations IntegrationNamePrefix parameters to 50 characters",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconnect``",
+ "description": "AWS Elemental MediaConnect Gateway now supports Source Specific Multicast (SSM) for ingress bridges. This enables you to specify a source IP address in addition to a multicast IP when creating or updating an ingress bridge source.",
+ "type": "api-change"
+ },
+ {
+ "category": "``networkmanager``",
+ "description": "There was a sentence fragment in UpdateDirectConnectGatewayAttachment that was causing customer confusion as to whether it's an incomplete sentence or if it was a typo. Removed the fragment.",
+ "type": "api-change"
+ },
+ {
+ "category": "``servicediscovery``",
+ "description": "AWS Cloud Map now supports service-level attributes, allowing you to associate custom metadata directly with services. These attributes can be retrieved, updated, and deleted using the new GetServiceAttributes, UpdateServiceAttributes, and DeleteServiceAttributes API calls.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.23.json b/.changes/1.36.23.json
new file mode 100644
index 000000000000..4361c9732a39
--- /dev/null
+++ b/.changes/1.36.23.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``cloud9``",
+ "description": "Added information about Ubuntu 18.04 will be removed from the available imageIds for Cloud9 because Ubuntu 18.04 has ended standard support on May 31, 2023.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dlm``",
+ "description": "This release adds support for Local Zones in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds support for EBS local snapshots in AWS Dedicated Local Zones, which allows you to store snapshots of EBS volumes locally in Dedicated Local Zones.",
+ "type": "api-change"
+ },
+ {
+ "category": "``greengrassv2``",
+ "description": "Add support for runtime in GetCoreDevice and ListCoreDevices APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "AWS Elemental MediaLive adds three new features: MediaPackage v2 endpoint support for live stream delivery, KLV metadata passthrough in CMAF Ingest output groups, and Metadata Name Modifier in CMAF Ingest output groups for customizing metadata track names in output streams.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release adds support for the \"MYSQL_CACHING_SHA2_PASSWORD\" enum value for RDS Proxy ClientPasswordAuthType.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.24.json b/.changes/1.36.24.json
new file mode 100644
index 000000000000..45fb0379d44a
--- /dev/null
+++ b/.changes/1.36.24.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``account``",
+ "description": "Update endpoint configuration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``backup``",
+ "description": "Add Support for Backup Indexing",
+ "type": "api-change"
+ },
+ {
+ "category": "``backupsearch``",
+ "description": "Add support for searching backups",
+ "type": "api-change"
+ },
+ {
+ "category": "``batch``",
+ "description": "This feature allows AWS Batch on Amazon EKS to support configuration of Pod Annotations, overriding Namespace on which the Batch job's Pod runs on, and allows Subpath and Persistent Volume claim to be set for AWS Batch on Amazon EKS jobs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cleanroomsml``",
+ "description": "Add support for SQL compute configuration for StartAudienceGenerationJob API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudfront``",
+ "description": "Adds support for OriginReadTimeout and OriginKeepaliveTimeout to create CloudFront Distributions with VPC Origins.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codepipeline``",
+ "description": "AWS CodePipeline V2 type pipelines now support Managed Compute Rule.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "Added support for enableFaultInjection task definition parameter which can be used to enable Fault Injection feature on ECS tasks.",
+ "type": "api-change"
+ },
+ {
+ "category": "``m2``",
+ "description": "This release adds support for AWS Mainframe Modernization(M2) Service to allow specifying network type(ipv4, dual) for the environment instances. For dual network type, m2 environment applications will serve both IPv4 and IPv6 requests, whereas for ipv4 it will serve only IPv4 requests.",
+ "type": "api-change"
+ },
+ {
+ "category": "``synthetics``",
+ "description": "Add support to toggle outbound IPv6 traffic on canaries connected to dualstack subnets. This behavior can be controlled via the new Ipv6AllowedForDualStack parameter of the VpcConfig input object in CreateCanary and UpdateCanary APIs.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.25.json b/.changes/1.36.25.json
new file mode 100644
index 000000000000..8caed448506a
--- /dev/null
+++ b/.changes/1.36.25.json
@@ -0,0 +1,52 @@
+[
+ {
+ "category": "``amplify``",
+ "description": "Added WAF Configuration to Amplify Apps",
+ "type": "api-change"
+ },
+ {
+ "category": "``budgets``",
+ "description": "Releasing minor partition endpoint updates",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "This release adds support for the UpdateParticipantAuthentication API used for customer authentication within Amazon Connect chats.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connectparticipant``",
+ "description": "This release adds support for the GetAuthenticationUrl and CancelParticipantAuthentication APIs used for customer authentication within Amazon Connect chats. There are also minor updates to the GetAttachment API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``datasync``",
+ "description": "AWS DataSync introduces the ability to update attributes for in-cloud locations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot``",
+ "description": "Release connectivity status query API which is a dedicated high throughput(TPS) API to query a specific device's most recent connectivity state and metadata.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mwaa``",
+ "description": "Added support for Apache Airflow version 2.10.3 to MWAA.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Add support for PerformanceConfiguration attribute to Dataset entity. Allow PerformanceConfiguration specification in CreateDataset and UpdateDataset APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``resiliencehub``",
+ "description": "AWS Resilience Hub now automatically detects already configured CloudWatch alarms and FIS experiments as part of the assessment process and returns the discovered resources in the corresponding list API responses. It also allows you to include or exclude test recommendations for an AppComponent.",
+ "type": "api-change"
+ },
+ {
+ "category": "``transfer``",
+ "description": "Added AS2 agreement configurations to control filename preservation and message signing enforcement. Added AS2 connector configuration to preserve content type from S3 objects.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.26.json b/.changes/1.36.26.json
new file mode 100644
index 000000000000..2021a6c778c8
--- /dev/null
+++ b/.changes/1.36.26.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``appstream``",
+ "description": "Added support for Rocky Linux 8 on Amazon AppStream 2.0",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds support for inserting timecode tracks into MP4 container outputs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "MediaLive is releasing ListVersions api",
+ "type": "api-change"
+ },
+ {
+ "category": "``qconnect``",
+ "description": "Amazon Q in Connect enables agents to ask Q for assistance in multiple languages and Q will provide answers and recommended step-by-step guides in those languages. Qs default language is English (United States) and you can switch this by setting the locale configuration on the AI Agent.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm-sap``",
+ "description": "AWS Systems Manager for SAP added support for registration and discovery of distributed ABAP applications",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added AWS Global Accelerator (AGA) support for WorkSpaces Personal.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.27.json b/.changes/1.36.27.json
new file mode 100644
index 000000000000..d5659e162e80
--- /dev/null
+++ b/.changes/1.36.27.json
@@ -0,0 +1,62 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Support for custom user agent and max web pages crawled for web connector. Support app only credentials for SharePoint connector. Increase agents memory duration limit to 365 days. Support to specify max number of session summaries to include in agent invocation context.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "bedrock agents now supports long term memory and performance configs. Invokeflow supports performance configs. RetrieveAndGenerate performance configs",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-data-automation``",
+ "description": "Documentation update for Amazon Bedrock Data Automation",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-data-automation-runtime``",
+ "description": "Documentation update for Amazon Bedrock Data Automation Runtime",
+ "type": "api-change"
+ },
+ {
+ "category": "``billing``",
+ "description": "Added new API's for defining and fetching Billing Views.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ce``",
+ "description": "Support for retrieving cost, usage, and forecast for billing view.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "This release supports adding NotAttributeCondition and Range to the RoutingCriteria object.",
+ "type": "api-change"
+ },
+ {
+ "category": "``docdb``",
+ "description": "Support AWS Secret Manager managed password for AWS DocumentDB instance-based cluster.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "This release expands the catalog of upgrade insight checks",
+ "type": "api-change"
+ },
+ {
+ "category": "``macie2``",
+ "description": "This release adds support for identifying S3 general purpose buckets that exceed the Amazon Macie quota for preventative control monitoring.",
+ "type": "api-change"
+ },
+ {
+ "category": "``outposts``",
+ "description": "Add CS8365C as a supported power connector for Outpost sites.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "This release adds support for c6i, m6i and r6i instance on SageMaker Hyperpod and trn1 instances in batch",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.28.json b/.changes/1.36.28.json
new file mode 100644
index 000000000000..c3153f7f8aff
--- /dev/null
+++ b/.changes/1.36.28.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``ecr``",
+ "description": "Documentation update for ECR GetAccountSetting and PutAccountSetting APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr-public``",
+ "description": "Add support for Dualstack endpoints",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "This release adds support for DescribeClusterVersions API that provides important information about Kubernetes versions along with end of support dates",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Add IncludeRoot parameters to GetCatalogs API to return root catalog.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.29.json b/.changes/1.36.29.json
new file mode 100644
index 000000000000..99ad69fa9b70
--- /dev/null
+++ b/.changes/1.36.29.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``bcm-pricing-calculator``",
+ "description": "Added ConflictException to DeleteBillEstimate.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "Add support for Dualstack Endpoints",
+ "type": "api-change"
+ },
+ {
+ "category": "``network-firewall``",
+ "description": "Dual-stack endpoints are now supported.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securityhub``",
+ "description": "Documentation updates for AWS Security Hub",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.3.json b/.changes/1.36.3.json
new file mode 100644
index 000000000000..148fc5a18c47
--- /dev/null
+++ b/.changes/1.36.3.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``partnercentral-selling``",
+ "description": "Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.30.json b/.changes/1.36.30.json
new file mode 100644
index 000000000000..5de6390c0f0f
--- /dev/null
+++ b/.changes/1.36.30.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation to correct various descriptions.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.31.json b/.changes/1.36.31.json
new file mode 100644
index 000000000000..2b2057ebd861
--- /dev/null
+++ b/.changes/1.36.31.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``ecr``",
+ "description": "Restoring custom endpoint functionality for ECR",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr-public``",
+ "description": "Restoring custom endpoint functionality for ECR Public",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.32.json b/.changes/1.36.32.json
new file mode 100644
index 000000000000..c4af0e67dfc0
--- /dev/null
+++ b/.changes/1.36.32.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``appsync``",
+ "description": "Modify UpdateGraphQLAPI operation and flag authenticationType as required.",
+ "type": "api-change"
+ },
+ {
+ "category": "``gamelift``",
+ "description": "Amazon GameLift releases a new game session shutdown feature. Use the Amazon GameLift console or AWS CLI to terminate an in-progress game session that's entered a bad state or is no longer needed.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconnect``",
+ "description": "AWS Elemental MediaConnect now supports Content Quality Analysis for enhanced source stream monitoring. This enables you to track specific audio and video metrics in transport stream source flows, ensuring your content meets quality standards.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds support for the AVC3 codec and fixes an alignment issue with Japanese vertical captions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``organizations``",
+ "description": "Added ALL_FEATURES_MIGRATION_ORGANIZATION_SIZE_LIMIT_EXCEEDED to ConstraintViolationException for the EnableAllFeatures operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adding ETag information with Model Artifacts for Model Registry",
+ "type": "api-change"
+ },
+ {
+ "category": "``sqs``",
+ "description": "In-flight message typo fix from 20k to 120k.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.33.json b/.changes/1.36.33.json
new file mode 100644
index 000000000000..51e9cc532bd9
--- /dev/null
+++ b/.changes/1.36.33.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``ecs``",
+ "description": "Adding SDK reference examples for Amazon ECS operations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53domains``",
+ "description": "Doc only update for Route 53 Domains that fixes several customer-reported issues",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "This change is only for updating the model regexp of CopySource which is not for validation but only for documentation and user guide change.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.34.json b/.changes/1.36.34.json
new file mode 100644
index 000000000000..9cf6cd8cf0b0
--- /dev/null
+++ b/.changes/1.36.34.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``iotsecuretunneling``",
+ "description": "Adds dualstack endpoint support for IoT Secure Tunneling",
+ "type": "api-change"
+ },
+ {
+ "category": "``supplychain``",
+ "description": "Allow vanity DNS domain when creating a new ASC instance",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.35.json b/.changes/1.36.35.json
new file mode 100644
index 000000000000..824d663c08db
--- /dev/null
+++ b/.changes/1.36.35.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``cloudhsmv2``",
+ "description": "Adds support to ModifyCluster for modifying a Cluster's Hsm Type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dynamodb``",
+ "description": "This release makes Amazon DynamoDB point-in-time-recovery (PITR) to be configurable. You can set PITR recovery period for each table individually to between 1 and 35 days.",
+ "type": "api-change"
+ },
+ {
+ "category": "``imagebuilder``",
+ "description": "This release adds support for importing images from ISO disk files. Added new ImportDiskImage API operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3 ls``",
+ "description": "Expose low-level ``ListBuckets` parameters ``Prefix`` and ``BucketRegion`` to high-level ``s3 ls`` command as ``--bucket-name-prefix`` and ``--bucket-region``.",
+ "type": "enhancement"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.36.json b/.changes/1.36.36.json
new file mode 100644
index 000000000000..689a15015b8d
--- /dev/null
+++ b/.changes/1.36.36.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``rds``",
+ "description": "Updates Amazon RDS documentation to clarify the RestoreDBClusterToPointInTime description.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53``",
+ "description": "Amazon Route 53 now supports the Asia Pacific (Thailand) Region (ap-southeast-7) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adds support for IPv6 for SageMaker HyperPod cluster nodes.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.37.json b/.changes/1.36.37.json
new file mode 100644
index 000000000000..776885cb0a99
--- /dev/null
+++ b/.changes/1.36.37.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "AWS CodeBuild Now Supports BuildBatch in Reserved Capacity and Lambda",
+ "type": "api-change"
+ },
+ {
+ "category": "``compute-optimizer``",
+ "description": "This release expands AWS Compute Optimizer rightsizing recommendation support for Amazon EC2 Auto Scaling groups to include those with scaling policies and multiple instance types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fms``",
+ "description": "AWS Firewall Manager now lets you combine multiple resource tags using the logical AND operator or the logical OR operator.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.38.json b/.changes/1.36.38.json
new file mode 100644
index 000000000000..db30622d861a
--- /dev/null
+++ b/.changes/1.36.38.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``redshift``",
+ "description": "Additions to the PubliclyAccessible and Encrypted parameters clarifying what the defaults are.",
+ "type": "api-change"
+ },
+ {
+ "category": "``securitylake``",
+ "description": "Doc only update for ServiceName that fixes several customer-reported issues",
+ "type": "api-change"
+ },
+ {
+ "category": "``sts``",
+ "description": "Fixed typos in the descriptions.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.39.json b/.changes/1.36.39.json
new file mode 100644
index 000000000000..d5042c05fe8c
--- /dev/null
+++ b/.changes/1.36.39.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``artifact``",
+ "description": "Support resolving regional API calls to partition's leader region endpoint.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock``",
+ "description": "With this release, Bedrock Evaluation will now support latency-optimized inference for foundation models.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Add support for DisconnectOnSessionTimeout flag in CreateClientVpnEndpoint and ModifyClientVpnEndpoint requests and DescribeClientVpnEndpoints responses",
+ "type": "api-change"
+ },
+ {
+ "category": "``kafkaconnect``",
+ "description": "Support updating connector configuration via UpdateConnector API. Release Operations API to monitor the status of the connector operation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``transcribe``",
+ "description": "This update provides tagging support for Transcribe's Call Analytics Jobs and Call Analytics Categories.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.4.json b/.changes/1.36.4.json
new file mode 100644
index 000000000000..70b58aaa73c2
--- /dev/null
+++ b/.changes/1.36.4.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``cloudwatch``",
+ "description": "Adds support for adding related Entity information to metrics ingested through PutMetricData.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connectcampaignsv2``",
+ "description": "Added Amazon Connect Outbound Campaigns V2 SDK.",
+ "type": "api-change"
+ },
+ {
+ "category": "``datasync``",
+ "description": "Doc-only updates and enhancements related to creating DataSync tasks and describing task executions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Remove non-functional enum variants for FleetCapacityReservationUsageStrategy",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot``",
+ "description": "This release allows AWS IoT Core users to enrich MQTT messages with propagating attributes, to associate a thing to a connection, and to enable Online Certificate Status Protocol (OCSP) stapling for TLS X.509 server certificates through private endpoints.",
+ "type": "api-change"
+ },
+ {
+ "category": "``outposts``",
+ "description": "You can now purchase AWS Outposts rack or server capacity for a 5-year term with one of the following payment options: All Upfront, Partial Upfront, and No Upfront.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pinpoint-sms-voice-v2``",
+ "description": "Use rule overrides to always allow or always block messages to specific phone numbers. Use message feedback to monitor if a customer interacts with your message.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53resolver``",
+ "description": "Route 53 Resolver DNS Firewall Advanced Rules allows you to monitor and block suspicious DNS traffic based on anomalies detected in the queries, such as DNS tunneling and Domain Generation Algorithms (DGAs).",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.40.json b/.changes/1.36.40.json
new file mode 100644
index 000000000000..b791ac137e72
--- /dev/null
+++ b/.changes/1.36.40.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``gamelift``",
+ "description": "Amazon GameLift releases a new game session placement feature: PriorityConfigurationOverride. You can now override how a game session queue prioritizes placement locations for a single StartGameSessionPlacement request.",
+ "type": "api-change"
+ },
+ {
+ "category": "``route53``",
+ "description": "Amazon Route 53 now supports the Mexico (Central) Region (mx-central-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.5.json b/.changes/1.36.5.json
new file mode 100644
index 000000000000..1a997f87ccac
--- /dev/null
+++ b/.changes/1.36.5.json
@@ -0,0 +1,57 @@
+[
+ {
+ "category": "``appconfig``",
+ "description": "AWS AppConfig has added a new extension action point, AT_DEPLOYMENT_TICK, to support third-party monitors to trigger an automatic rollback during a deployment.",
+ "type": "api-change"
+ },
+ {
+ "category": "``autoscaling``",
+ "description": "Amazon EC2 Auto Scaling now supports Amazon Application Recovery Controller (ARC) zonal shift and zonal autoshift to help you quickly recover an impaired application from failures in an Availability Zone (AZ).",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudformation``",
+ "description": "This release adds a new API, ListHookResults, that allows retrieving CloudFormation Hooks invocation results for hooks invoked during a create change set operation or Cloud Control API operation",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Adds CreateContactFlowVersion and ListContactFlowVersions APIs to create and view the versions of a contact flow.",
+ "type": "api-change"
+ },
+ {
+ "category": "``customer-profiles``",
+ "description": "This release introduces Segmentation APIs and new Calculated Attribute Event Filters as part of Amazon Connect Customer Profiles service.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Adding request and response elements for managed resources.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release adds support for adding VPC Lattice configurations in ECS CreateService/UpdateService APIs. The configuration allows for associating VPC Lattice target groups with ECS Services.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotsitewise``",
+ "description": "The release introduces a generative AI Assistant in AWS IoT SiteWise. It includes: 1) InvokeAssistant API - Invoke the Assistant to get alarm summaries and ask questions. 2) Dataset APIs - Manage knowledge base configuration for the Assistant. 3) Portal APIs enhancement - Manage AI-aware dashboards.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qconnect``",
+ "description": "This release introduces MessageTemplate as a resource in Amazon Q in Connect, along with APIs to create, read, search, update, and delete MessageTemplate resources.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Add support for the automatic pause/resume feature of Aurora Serverless v2.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds-data``",
+ "description": "Add support for the automatic pause/resume feature of Aurora Serverless v2.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.6.json b/.changes/1.36.6.json
new file mode 100644
index 000000000000..eeec8dccb826
--- /dev/null
+++ b/.changes/1.36.6.json
@@ -0,0 +1,47 @@
+[
+ {
+ "category": "``b2bi``",
+ "description": "Add new X12 transactions sets and versions",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release adds VPC Block Public Access (VPC BPA), a new declarative control which blocks resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release introduces support for configuring the version consistency feature for individual containers defined within a task definition. The configuration allows to specify whether ECS should resolve the container image tag specified in the container definition to an image digest.",
+ "type": "api-change"
+ },
+ {
+ "category": "``efs``",
+ "description": "Add support for the new parameters in EFS replication APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "AWS Glue Data Catalog now enhances managed table optimizations of Apache Iceberg tables that can be accessed only from a specific Amazon Virtual Private Cloud (VPC) environment.",
+ "type": "api-change"
+ },
+ {
+ "category": "``keyspaces``",
+ "description": "Amazon Keyspaces Multi-Region Replication: Adds support to add new regions to multi and single-region keyspaces.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mwaa``",
+ "description": "Amazon MWAA now supports a new environment class, mw1.micro, ideal for workloads requiring fewer resources than mw1.small. This class supports a single instance of each Airflow component: Scheduler, Worker, and Webserver.",
+ "type": "api-change"
+ },
+ {
+ "category": "``taxsettings``",
+ "description": "Release Tax Inheritance APIs, Tax Exemption APIs, and functionality update for some existing Tax Registration APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Releasing new ErrorCodes for Image Validation failure during CreateWorkspaceImage process",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.7.json b/.changes/1.36.7.json
new file mode 100644
index 000000000000..855bee29fc28
--- /dev/null
+++ b/.changes/1.36.7.json
@@ -0,0 +1,102 @@
+[
+ {
+ "category": "``autoscaling``",
+ "description": "With this release, customers can prioritize launching instances into ODCRs using targets from ASGs or Launch Templates. Customers can express their baseline instances' CPU-performance in attribute-based Instance Requirements configuration by referencing an instance family that meets their needs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Releasing new Prompt Optimization to enhance your prompts for improved performance",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudfront``",
+ "description": "Add support for gRPC, VPC origins, and Anycast IP Lists. Allow LoggingConfig IncludeCookies to be set regardless of whether the LoggingConfig is enabled.",
+ "type": "api-change"
+ },
+ {
+ "category": "``compute-optimizer``",
+ "description": "This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for Amazon Aurora database instances. It also enables Compute Optimizer to identify idle Amazon EC2 instances, Amazon EBS volumes, Amazon ECS services running on Fargate, and Amazon RDS databases.",
+ "type": "api-change"
+ },
+ {
+ "category": "``controltower``",
+ "description": "Adds support for child enabled baselines which allow you to see the enabled baseline status for individual accounts.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cost-optimization-hub``",
+ "description": "This release adds action type \"Delete\" to the GetRecommendation, ListRecommendations and ListRecommendationSummaries APIs to support new EBS and ECS recommendations with action type \"Delete\".",
+ "type": "api-change"
+ },
+ {
+ "category": "``datazone``",
+ "description": "This release supports Metadata Enforcement Rule feature for Create Subscription Request action.",
+ "type": "api-change"
+ },
+ {
+ "category": "``discovery``",
+ "description": "Add support to import data from commercially available discovery tools without file manipulation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "With this release, customers can express their desire to launch instances only in an ODCR or ODCR group rather than OnDemand capacity. Customers can express their baseline instances' CPU-performance in attribute-based Instance Requirements configuration by referencing an instance family.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This release adds support for the Availability Zone rebalancing feature on Amazon ECS.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "This release adds support for configuring Load balancer Capacity Unit reservations",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Add Node 22.x (node22.x) support to AWS Lambda",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds the ability to reconfigure concurrent job settings for existing queues and create queues with custom concurrent job settings.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediapackagev2``",
+ "description": "MediaPackage v2 now supports the Media Quality Confidence Score (MQCS) published from MediaLive. Customers can control input switching based on the MQCS and publishing HTTP Headers for the MQCS via the API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``omics``",
+ "description": "Enabling call caching feature that allows customers to reuse previously computed results from a set of completed tasks in a new workflow run.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rbin``",
+ "description": "This release adds support for exclusion tags for Recycle Bin, which allows you to identify resources that are to be excluded, or ignored, by a Region-level retention rule.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "This release adds support for scale storage on the DB instance using a Blue/Green Deployment.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-query``",
+ "description": "This release adds support for Provisioning Timestream Compute Units (TCUs), a new feature that allows provisioning dedicated compute resources for your queries, providing predictable and cost-effective query performance.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added support for Rocky Linux 8 on Amazon WorkSpaces Personal.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-web``",
+ "description": "Added data protection settings with support for inline data redaction.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.8.json b/.changes/1.36.8.json
new file mode 100644
index 000000000000..fb331f935765
--- /dev/null
+++ b/.changes/1.36.8.json
@@ -0,0 +1,112 @@
+[
+ {
+ "category": "``apigateway``",
+ "description": "Added support for custom domain names for private APIs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``application-autoscaling``",
+ "description": "Application Auto Scaling now supports Predictive Scaling to proactively increase the desired capacity ahead of predicted demand, ensuring improved availability and responsiveness for customers' applications. This feature is currently only made available for Amazon ECS Service scalable targets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``appsync``",
+ "description": "Add support for the Amazon Bedrock Runtime.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ce``",
+ "description": "This release introduces three new APIs that enable you to estimate the cost, coverage, and utilization impact of Savings Plans you plan to purchase. The three APIs are StartCommitmentPurchaseAnalysis, GetCommitmentPurchaseAnalysis, and ListCommitmentPurchaseAnalyses.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudfront``",
+ "description": "Adds support for Origin Selection between EMPv2 origins based on media quality score.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudtrail``",
+ "description": "This release introduces new APIs for creating and managing CloudTrail Lake dashboards. It also adds support for resource-based policies on CloudTrail EventDataStore and Dashboard resource.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Adds support for requesting future-dated Capacity Reservations with a minimum commitment duration, enabling IPAM for organizational units within AWS Organizations, reserving EC2 Capacity Blocks that start in 30 minutes, and extending the end date of existing Capacity Blocks.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elasticache``",
+ "description": "Added support to modify the engine type for existing ElastiCache Users and User Groups. Customers can now modify the engine type from redis to valkey.",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "This feature adds support for enabling zonal shift on cross-zone enabled Application Load Balancer, as well as modifying HTTP request and response headers.",
+ "type": "api-change"
+ },
+ {
+ "category": "``health``",
+ "description": "Adds metadata property to an AffectedEntity.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot``",
+ "description": "General Availability (GA) release of AWS IoT Device Management - Commands, to trigger light-weight remote actions on targeted devices",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotfleetwise``",
+ "description": "AWS IoT FleetWise now includes campaign parameters to store and forward data, configure MQTT topic as a data destination, and collect diagnostic trouble code data. It includes APIs for network agnostic data collection using custom decoding interfaces, and monitoring the last known state of vehicles.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot-jobs-data``",
+ "description": "General Availability (GA) release of AWS IoT Device Management - Commands, to trigger light-weight remote actions on targeted devices",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Adds support for metrics for event source mappings for AWS Lambda",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Adds \"Create field indexes to improve query performance and reduce scan volume\" and \"Transform logs during ingestion\". Updates documentation for \"PutLogEvents with Entity\".",
+ "type": "api-change"
+ },
+ {
+ "category": "``notifications``",
+ "description": "This release adds support for AWS User Notifications. You can now configure and view notifications from AWS services in a central location using the AWS SDK.",
+ "type": "api-change"
+ },
+ {
+ "category": "``notificationscontacts``",
+ "description": "This release adds support for AWS User Notifications Contacts. You can now configure and view email contacts for AWS User Notifications using the AWS SDK.",
+ "type": "api-change"
+ },
+ {
+ "category": "``resiliencehub``",
+ "description": "AWS Resilience Hub's new summary view visually represents applications' resilience through charts, enabling efficient resilience management. It provides a consolidated view of the app portfolio's resilience state and allows data export for custom stakeholder reporting.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Add support for conditional deletes for the S3 DeleteObject and DeleteObjects APIs. Add support for write offset bytes option used to append to objects with the S3 PutObject API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm``",
+ "description": "Added support for providing high-level overviews of managed nodes and previewing the potential impact of a runbook execution.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm-quicksetup``",
+ "description": "Add methods that retrieve details about deployed configurations: ListConfigurations, GetConfiguration",
+ "type": "api-change"
+ },
+ {
+ "category": "``xray``",
+ "description": "AWS X-Ray introduces Transaction Search APIs, enabling span ingestion into CloudWatch Logs for high-scale trace data indexing. These APIs support span-level queries, trace graph generation, and metric correlation for deeper application insights.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.36.9.json b/.changes/1.36.9.json
new file mode 100644
index 000000000000..2053793705e5
--- /dev/null
+++ b/.changes/1.36.9.json
@@ -0,0 +1,107 @@
+[
+ {
+ "category": "``autoscaling``",
+ "description": "Now, Amazon EC2 Auto Scaling customers can enable target tracking policies to take quicker scaling decisions, enhancing their application performance and EC2 utilization. To get started, specify target tracking to monitor a metric that is available on Amazon CloudWatch at seconds-level interval.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bcm-pricing-calculator``",
+ "description": "Initial release of the AWS Billing and Cost Management Pricing Calculator API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "InvokeInlineAgent API release to help invoke runtime agents without any dependency on preconfigured agents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ce``",
+ "description": "This release adds the Impact field(contains Contribution field) to the GetAnomalies API response under RootCause",
+ "type": "api-change"
+ },
+ {
+ "category": "``chatbot``",
+ "description": "Adds support for programmatic management of custom actions and aliases which can be associated with channel configurations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codepipeline``",
+ "description": "AWS CodePipeline V2 type pipelines now support ECRBuildAndPublish and InspectorScan actions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-idp``",
+ "description": "Add support for users to sign up and sign in without passwords, using email and SMS OTPs and Passkeys. Add support for Passkeys based on WebAuthn. Add support for enhanced branding customization for hosted authentication pages with Amazon Cognito Managed Login. Add feature tiers with new pricing.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Amazon Connect Service Feature: Add APIs for Amazon Connect Email Channel",
+ "type": "api-change"
+ },
+ {
+ "category": "``elbv2``",
+ "description": "This release adds support for advertising trusted CA certificate names in associated trust stores.",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr``",
+ "description": "Advanced Scaling in Amazon EMR Managed Scaling",
+ "type": "api-change"
+ },
+ {
+ "category": "``inspector2``",
+ "description": "Extend inspector2 service model to include ServiceQuotaExceededException.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lambda``",
+ "description": "Add ProvisionedPollerConfig to Lambda event-source-mapping API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mailmanager``",
+ "description": "Added new \"DeliverToQBusiness\" rule action to MailManager RulesSet for ingesting email data into Amazon Q Business customer applications",
+ "type": "api-change"
+ },
+ {
+ "category": "``neptune-graph``",
+ "description": "Add 4 new APIs to support new Export features, allowing Parquet and CSV formats. Add new arguments in Import APIs to support Parquet import. Add a new query \"neptune.read\" to run algorithms without loading data into database",
+ "type": "api-change"
+ },
+ {
+ "category": "``omics``",
+ "description": "This release adds support for resource policy based cross account S3 access to sequence store read sets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "This release includes: Update APIs to support Image, Layer Map, font customization, and Plugin Visual. Add Identity center related information in ListNamsespace API. Update API for restrictedFolder support in topics and add API for SearchTopics, Describe/Update DashboardsQA Configration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "This release adds APIs for new features for SageMaker endpoint to scale down to zero instances, native support for multi-adapter inference, and endpoint scaling improvements.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ses``",
+ "description": "This release adds support for starting email contacts in your Amazon Connect instance as an email receiving action.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sns``",
+ "description": "ArchivePolicy attribute added to Archive and Replay feature",
+ "type": "api-change"
+ },
+ {
+ "category": "``stepfunctions``",
+ "description": "Add support for variables and JSONata in TestState, GetExecutionHistory, DescribeStateMachine, and DescribeStateMachineForExecution",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "While integrating WSP-DCV rebrand, a few mentions were erroneously renamed from WSP to DCV. This release reverts those mentions back to WSP.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.0.json b/.changes/1.37.0.json
new file mode 100644
index 000000000000..e585c5c9293e
--- /dev/null
+++ b/.changes/1.37.0.json
@@ -0,0 +1,62 @@
+[
+ {
+ "category": "``apigateway``",
+ "description": "Documentation updates for Amazon API Gateway",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Now supports streaming for inline agents.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-identity``",
+ "description": "corrects the dual-stack endpoint configuration",
+ "type": "api-change"
+ },
+ {
+ "category": "``partnercentral-selling``",
+ "description": "Add Tagging support for ResourceSnapshotJob resources",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "This change enhances integrity protections for new SDK requests to S3. S3 SDKs now support the CRC64NVME checksum algorithm, full object checksums for multipart S3 objects, and new default integrity protections for S3 requests.",
+ "type": "api-change"
+ },
+ {
+ "category": "``security-ir``",
+ "description": "Increase minimum length of Threat Actor IP 'userAgent' to 1.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "This release introduces a new recommendation in Virtual Deliverability Manager Advisor, which detects elevated complaint rates for customer sending identities.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces``",
+ "description": "Added GeneralPurpose.4xlarge & GeneralPurpose.8xlarge ComputeTypes.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-thin-client``",
+ "description": "Mark type in MaintenanceWindow as required.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "The S3 client attempts to validate response checksums for all S3 API operations that support checksums. However, if the SDK has not implemented the specified checksum algorithm then this validation is skipped. Checksum validation behavior can be configured using the ``when_supported`` and ``when_required`` options - in code using the ``response_checksum_validation`` parameter for ``botocore.config.Config``, in the shared AWS config file using ``response_checksum_validation``, or as an env variable using ``AWS_RESPONSE_CHECKSUM_VALIDATION``.",
+ "type": "feature"
+ },
+ {
+ "category": "``s3``",
+ "description": "Added support for the CRC64NVME checksum algorithm in the S3 client through the optional AWS CRT (``awscrt``) dependency.",
+ "type": "feature"
+ },
+ {
+ "category": "``s3``",
+ "description": "S3 client behavior is updated to always calculate a CRC32 checksum by default for operations that support it (such as PutObject or UploadPart), or require it (such as DeleteObjects). Checksum behavior can be configured using ``when_supported`` and ``when_required`` options - in code using the ``request_checksum_calculation`` parameter for ``botocore.config.Config``, in the shared AWS config file using ``request_checksum_calculation``, or as an env variable using ``AWS_REQUEST_CHECKSUM_CALCULATION``. Note: Botocore will no longer automatically compute and populate the Content-MD5 header.",
+ "type": "feature"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.1.json b/.changes/1.37.1.json
new file mode 100644
index 000000000000..2e77650de0f0
--- /dev/null
+++ b/.changes/1.37.1.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``ecs``",
+ "description": "The release addresses Amazon ECS documentation tickets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Added support for ml.trn1.32xlarge instance type in Reserved Capacity Offering",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.10.json b/.changes/1.37.10.json
new file mode 100644
index 000000000000..c8ecdf706555
--- /dev/null
+++ b/.changes/1.37.10.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``appstream``",
+ "description": "Add support for managing admin consent requirement on selected domains for OneDrive Storage Connectors in AppStream2.0.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Add a 'reason' field to InternalServerException",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "Temporarily updating dualstack endpoint support",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr-public``",
+ "description": "Temporarily updating dualstack endpoint support",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediatailor``",
+ "description": "Adds options for configuring how MediaTailor conditions ads before inserting them into the content stream. Based on the new settings, MediaTailor will either transcode ads to match the content stream as it has in the past, or it will insert ads without first transcoding them.",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Added APIs to manage QBusiness user subscriptions",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3tables``",
+ "description": "You can now use the CreateTable API operation to create tables with schemas by adding an optional metadata argument.",
+ "type": "api-change"
+ },
+ {
+ "category": "``verifiedpermissions``",
+ "description": "Adds Cedar JSON format support for entities and context data in authorization requests",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.11.json b/.changes/1.37.11.json
new file mode 100644
index 000000000000..40166a6a5c04
--- /dev/null
+++ b/.changes/1.37.11.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``amp``",
+ "description": "Add support for sending metrics to cross account and CMCK AMP workspaces through RoleConfiguration on Create/Update Scraper.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This change is to deprecate the existing citation field under RetrieveAndGenerateStream API response in lieu of GeneratedResponsePart and RetrievedReferences",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "Added support for CodeBuild self-hosted Buildkite runner builds",
+ "type": "api-change"
+ },
+ {
+ "category": "``geo-routes``",
+ "description": "The OptimizeWaypoints API now supports 50 waypoints per request (20 with constraints like AccessHours or AppointmentTime). It adds waypoint clustering via Clustering and ClusteringIndex for better optimization. Also, total distance validation is removed for greater flexibility.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "Updates to Aurora MySQL and Aurora PostgreSQL API pages with instance log type in the create and modify DB Cluster.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "This release introduces a new valid value in InstanceType parameter: p5en.48xlarge, in ProductionVariant.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.12.json b/.changes/1.37.12.json
new file mode 100644
index 000000000000..2cb82857eefb
--- /dev/null
+++ b/.changes/1.37.12.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``mediatailor``",
+ "description": "Add support for CloudWatch Vended Logs which allows for delivery of customer logs to CloudWatch Logs, S3, or Firehose.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.13.json b/.changes/1.37.13.json
new file mode 100644
index 000000000000..b021503cc9c3
--- /dev/null
+++ b/.changes/1.37.13.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``datasync``",
+ "description": "Doc-only update to provide more information on using Kerberos authentication with SMB locations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Introduces TargetDataSettings with the TablePreparationMode option available for data migrations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iam``",
+ "description": "This release adds support for accepting encrypted SAML assertions. Customers can now configure their identity provider to encrypt the SAML assertions it sends to IAM.",
+ "type": "api-change"
+ },
+ {
+ "category": "``neptune-graph``",
+ "description": "Added argument to `list-export` to filter by graph ID",
+ "type": "api-change"
+ },
+ {
+ "category": "``qbusiness``",
+ "description": "Adds functionality to enable/disable a new Q Business Chat orchestration feature. If enabled, Q Business can orchestrate over datasources and plugins without the need for customers to select specific chat modes.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "IPv6 support for Hyperpod clusters",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.14.json b/.changes/1.37.14.json
new file mode 100644
index 000000000000..2b14e6c30cfc
--- /dev/null
+++ b/.changes/1.37.14.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``rds``",
+ "description": "Documentation updates to clarify the description for the parameter AllocatedStorage for the DB cluster data type, the description for the parameter DeleteAutomatedBackups for the DeleteDBCluster API operation, and removing an outdated note for the CreateDBParameterGroup API operation.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.15.json b/.changes/1.37.15.json
new file mode 100644
index 000000000000..073945b45f6c
--- /dev/null
+++ b/.changes/1.37.15.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``cloudformation``",
+ "description": "We added 5 new stack refactoring APIs: CreateStackRefactor, ExecuteStackRefactor, ListStackRefactors, DescribeStackRefactor, ListStackRefactorActions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connectcases``",
+ "description": "This release adds the ability to conditionally require fields on a template. Check public documentation for more information.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cost-optimization-hub``",
+ "description": "This release enables AWS Cost Optimization Hub to show cost optimization recommendations for Amazon Auto Scaling Groups, including those with single and mixed instance types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Updated list of the valid AWS Region values for the LocationConstraint parameter for general purpose buckets.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.16.json b/.changes/1.37.16.json
new file mode 100644
index 000000000000..68ff1d3c6f60
--- /dev/null
+++ b/.changes/1.37.16.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``ecr``",
+ "description": "Adds support to handle the new basic scanning daily quota.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Introduce versionStatus field to take place of status field in EKS DescribeClusterVersions API",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds support for Animated GIF output, forced chroma sample positioning metadata, and Extensible Wave Container format",
+ "type": "api-change"
+ },
+ {
+ "category": "``pi``",
+ "description": "Adds documentation for dimension groups and dimensions to analyze locks for Database Insights.",
+ "type": "api-change"
+ },
+ {
+ "category": "``transcribe``",
+ "description": "This release adds support for the Clinical Note Template Customization feature for the AWS HealthScribe APIs within Amazon Transcribe.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.17.json b/.changes/1.37.17.json
new file mode 100644
index 000000000000..825530a91c69
--- /dev/null
+++ b/.changes/1.37.17.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``apigatewayv2``",
+ "description": "Documentation updates for Amazon API Gateway",
+ "type": "api-change"
+ },
+ {
+ "category": "``cloudfront``",
+ "description": "Doc-only update that adds defaults for CloudFront VpcOriginEndpointConfig values.",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Updated the CreateContact API documentation to indicate that it only applies to EMAIL contacts.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "New vendors for DMS Data Providers: DB2 LUW and DB2 for z/OS",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.18.json b/.changes/1.37.18.json
new file mode 100644
index 000000000000..ad88392d62cb
--- /dev/null
+++ b/.changes/1.37.18.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``acm-pca``",
+ "description": "Private Certificate Authority service now supports Partitioned CRL as a revocation configuration option.",
+ "type": "api-change"
+ },
+ {
+ "category": "``appsync``",
+ "description": "Add support for operation level caching",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Adding support for the new fullSnapshotSizeInBytes field in the response of the EC2 EBS DescribeSnapshots API. This field represents the size of all the blocks that were written to the source volume at the time the snapshot was created.",
+ "type": "api-change"
+ },
+ {
+ "category": "``pi``",
+ "description": "Documentation only update for RDS Performance Insights dimensions for execution plans and locking analysis.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.19.json b/.changes/1.37.19.json
new file mode 100644
index 000000000000..4350b41b4d67
--- /dev/null
+++ b/.changes/1.37.19.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``b2bi``",
+ "description": "Allow spaces in the following fields in the Partnership resource: ISA 06 - Sender ID, ISA 08 - Receiver ID, GS 02 - Application Sender Code, GS 03 - Application Receiver Code",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "This releases adds the additionalModelRequestFields field to the CreateAgent and UpdateAgent operations. Use additionalModelRequestFields to specify additional inference parameters for a model beyond the base inference parameters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "This releases adds the additionalModelRequestFields field to the InvokeInlineAgent operation. Use additionalModelRequestFields to specify additional inference parameters for a model beyond the base inference parameters.",
+ "type": "api-change"
+ },
+ {
+ "category": "``codebuild``",
+ "description": "Add note for the RUNNER_BUILDKITE_BUILD buildType.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fsx``",
+ "description": "Support for in-place Lustre version upgrades",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "Adds a RequestId parameter to all MediaLive Workflow Monitor create operations. The RequestId parameter allows idempotent operations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``opensearchserverless``",
+ "description": "Custom OpenSearchServerless Entity ID for SAML Config.",
+ "type": "api-change"
+ },
+ {
+ "category": "``polly``",
+ "description": "Added support for the new voice - Jasmine (en-SG). Jasmine is available as a Neural voice only.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.2.json b/.changes/1.37.2.json
new file mode 100644
index 000000000000..b39c72d4d2f8
--- /dev/null
+++ b/.changes/1.37.2.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock-runtime``",
+ "description": "Allow hyphens in tool name for Converse and ConverseStream APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``detective``",
+ "description": "Doc only update for Detective documentation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "Release u7i-6tb.112xlarge, u7i-8tb.112xlarge, u7inh-32tb.480xlarge, p5e.48xlarge, p5en.48xlarge, f2.12xlarge, f2.48xlarge, trn2.48xlarge instance types.",
+ "type": "api-change"
+ },
+ {
+ "category": "``notifications``",
+ "description": "Added support for Managed Notifications, integration with AWS Organization and added aggregation summaries for Aggregate Notifications",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Correction of docs for \"Added support for ml.trn1.32xlarge instance type in Reserved Capacity Offering\"",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.20.json b/.changes/1.37.20.json
new file mode 100644
index 000000000000..0c44a9fa248a
--- /dev/null
+++ b/.changes/1.37.20.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``accessanalyzer``",
+ "description": "This release introduces the getFindingsStatistics API, enabling users to retrieve aggregated finding statistics for IAM Access Analyzer's external access and unused access analysis features. Updated service API and documentation.",
+ "type": "api-change"
+ },
+ {
+ "category": "``acm-pca``",
+ "description": "Private Certificate Authority (PCA) documentation updates",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This is a documentation only release to support migrating Amazon ECS service ARNs to the long ARN format.",
+ "type": "api-change"
+ },
+ {
+ "category": "``fis``",
+ "description": "Adds auto-pagination for the following operations: ListActions, ListExperimentTemplates, ListTargetAccountConfigurations, ListExperiments, ListExperimentResolvedTargets, ListTargetResourceTypes. Reduces length constraints of prefixes for logConfiguration and experimentReportConfiguration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adds additional values to the InferenceAmiVersion parameter in the ProductionVariant data type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``storagegateway``",
+ "description": "This release adds support for generating cache reports on S3 File Gateways for files that fail to upload.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.21.json b/.changes/1.37.21.json
new file mode 100644
index 000000000000..a7948e24d32b
--- /dev/null
+++ b/.changes/1.37.21.json
@@ -0,0 +1,37 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "Added test suite names to test case metadata",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Release Notes: 1) Analytics API enhancements: Added new ListAnalyticsDataLakeDataSets API. 2) Onboarding API Idempotency: Adds ClientToken to instance creation and management APIs to support idempotency.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Introduces premigration assessment feature to DMS Serverless API for start-replication and describe-replications",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds-data``",
+ "description": "Add support for Stop DB feature.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Added support for Content-Range header in HeadObject response.",
+ "type": "api-change"
+ },
+ {
+ "category": "``wafv2``",
+ "description": "The WAFv2 API now supports configuring data protection in webACLs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-thin-client``",
+ "description": "Update Environment and Device name field definitions",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.22.json b/.changes/1.37.22.json
new file mode 100644
index 000000000000..12c343b42f07
--- /dev/null
+++ b/.changes/1.37.22.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``amplify``",
+ "description": "Add ComputeRoleArn to CreateApp, UpdateApp, CreateBranch, and UpdateBranch, allowing caller to specify a role to be assumed by Amplify Hosting for server-side rendered applications.",
+ "type": "api-change"
+ },
+ {
+ "category": "``dms``",
+ "description": "Support replicationConfigArn in DMS DescribeApplicableIndividualAssessments API.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-influxdb``",
+ "description": "This release introduces APIs to manage DbClusters and adds support for read replicas",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.23.json b/.changes/1.37.23.json
new file mode 100644
index 000000000000..e561fd3d18d6
--- /dev/null
+++ b/.changes/1.37.23.json
@@ -0,0 +1,17 @@
+[
+ {
+ "category": "``batch``",
+ "description": "This documentation-only update corrects some typos.",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr-containers``",
+ "description": "EMR on EKS StartJobRun Api will be supporting the configuration of log storage in AWS by using \"managedLogs\" under \"MonitoringConfiguration\".",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "Adds support for creating CloudWatchAlarmTemplates for AWS Elemental MediaTailor Playback Configuration resources.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.24.json b/.changes/1.37.24.json
new file mode 100644
index 000000000000..2c9dbde574bf
--- /dev/null
+++ b/.changes/1.37.24.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``codepipeline``",
+ "description": "Add environment variables to codepipeline action declaration.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecs``",
+ "description": "This is a documentation only release for Amazon ECS that supports the CPU task limit increase.",
+ "type": "api-change"
+ },
+ {
+ "category": "``lightsail``",
+ "description": "Documentation updates for Amazon Lightsail.",
+ "type": "api-change"
+ },
+ {
+ "category": "``location``",
+ "description": "Adds support for larger property maps for tracking and geofence positions changes. It increases the maximum number of items from 3 to 4, and the maximum value length from 40 to 150.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mailmanager``",
+ "description": "This release adds additional metadata fields in Mail Manager archive searches to show email source and details about emails that were archived when being sent with SES.",
+ "type": "api-change"
+ },
+ {
+ "category": "``network-firewall``",
+ "description": "This release introduces Network Firewall's Automated Domain List feature. New APIs include UpdateFirewallAnalysisSettings, StartAnalysisReport, GetAnalysisReportResults, and ListAnalysisReports. These allow customers to enable analysis on firewalls to identify and report frequently accessed domain.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Adds r8g instance type support to SageMaker Realtime Endpoints",
+ "type": "api-change"
+ },
+ {
+ "category": "``sesv2``",
+ "description": "This release adds the ability for outbound email sent with SES to preserve emails to a Mail Manager archive.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.25.json b/.changes/1.37.25.json
new file mode 100644
index 000000000000..c6d500af6066
--- /dev/null
+++ b/.changes/1.37.25.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``codebuild``",
+ "description": "Add webhook status and status message to AWS CodeBuild webhooks",
+ "type": "api-change"
+ },
+ {
+ "category": "``guardduty``",
+ "description": "Reduce the minimum number of required attack sequence signals from 2 to 1",
+ "type": "api-change"
+ },
+ {
+ "category": "``license-manager-user-subscriptions``",
+ "description": "Updates entity to include Microsoft RDS SAL as a valid type of user subscription.",
+ "type": "api-change"
+ },
+ {
+ "category": "``rds``",
+ "description": "CloudWatch Database Insights now supports Amazon RDS.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sagemaker``",
+ "description": "Added new capability in the UpdateCluster operation to remove instance groups from your SageMaker HyperPod cluster.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-web``",
+ "description": "Add support for toolbar configuration under user settings.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.26.json b/.changes/1.37.26.json
new file mode 100644
index 000000000000..1a9ff5f6a715
--- /dev/null
+++ b/.changes/1.37.26.json
@@ -0,0 +1,12 @@
+[
+ {
+ "category": "``appstream``",
+ "description": "Added support for Certificate-Based Authentication on AppStream 2.0 multi-session fleets.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent``",
+ "description": "Introduce a new parameter which represents the user-agent header value used by the Bedrock Knowledge Base Web Connector.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.3.json b/.changes/1.37.3.json
new file mode 100644
index 000000000000..94029600af68
--- /dev/null
+++ b/.changes/1.37.3.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "``batch``",
+ "description": "Documentation-only update: clarified the description of the shareDecaySeconds parameter of the FairsharePolicy data type, clarified the description of the priority parameter of the JobQueueDetail data type.",
+ "type": "api-change"
+ },
+ {
+ "category": "``cognito-idp``",
+ "description": "corrects the dual-stack endpoint configuration for cognitoidp",
+ "type": "api-change"
+ },
+ {
+ "category": "``connect``",
+ "description": "Added DeleteContactFlowVersion API and the CAMPAIGN flow type",
+ "type": "api-change"
+ },
+ {
+ "category": "``emr-serverless``",
+ "description": "Increasing entryPoint in SparkSubmit to accept longer script paths. New limit is 4kb.",
+ "type": "api-change"
+ },
+ {
+ "category": "``iotsitewise``",
+ "description": "AWS IoT SiteWise now supports ingestion and querying of Null (all data types) and NaN (double type) values of bad or uncertain data quality. New partial error handling prevents data loss during ingestion. Enabled by default for new customers; existing customers can opt-in.",
+ "type": "api-change"
+ },
+ {
+ "category": "``logs``",
+ "description": "Documentation-only update to address doc errors",
+ "type": "api-change"
+ },
+ {
+ "category": "``quicksight``",
+ "description": "Added `DigitGroupingStyle` in ThousandsSeparator to allow grouping by `LAKH`( Indian Grouping system ) currency. Support LAKH and `CRORE` currency types in Column Formatting.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sns``",
+ "description": "This release adds support for the topic attribute FifoThroughputScope for SNS FIFO topics. For details, see the documentation history in the Amazon Simple Notification Service Developer Guide.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.4.json b/.changes/1.37.4.json
new file mode 100644
index 000000000000..9142e622e669
--- /dev/null
+++ b/.changes/1.37.4.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Adds multi-turn input support for an Agent node in an Amazon Bedrock Flow",
+ "type": "api-change"
+ },
+ {
+ "category": "``glue``",
+ "description": "Docs Update for timeout changes",
+ "type": "api-change"
+ },
+ {
+ "category": "``medialive``",
+ "description": "AWS Elemental MediaLive adds a new feature, ID3 segment tagging, in CMAF Ingest output groups. It allows customers to insert ID3 tags into every output segment, controlled by a newly added channel schedule action Id3SegmentTagging.",
+ "type": "api-change"
+ },
+ {
+ "category": "``workspaces-thin-client``",
+ "description": "Rename WorkSpaces Web to WorkSpaces Secure Browser",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.5.json b/.changes/1.37.5.json
new file mode 100644
index 000000000000..80c9496ad909
--- /dev/null
+++ b/.changes/1.37.5.json
@@ -0,0 +1,7 @@
+[
+ {
+ "category": "``ec2``",
+ "description": "Added \"future\" allocation type for future dated capacity reservation",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.6.json b/.changes/1.37.6.json
new file mode 100644
index 000000000000..e57e3527f4da
--- /dev/null
+++ b/.changes/1.37.6.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``cloudtrail``",
+ "description": "This release introduces the SearchSampleQueries API that allows users to search for CloudTrail Lake sample queries.",
+ "type": "api-change"
+ },
+ {
+ "category": "``eks``",
+ "description": "Adds support for UpdateStrategies in EKS Managed Node Groups.",
+ "type": "api-change"
+ },
+ {
+ "category": "``healthlake``",
+ "description": "Added new authorization strategy value 'SMART_ON_FHIR' for CreateFHIRDatastore API to support Smart App 2.0",
+ "type": "api-change"
+ },
+ {
+ "category": "``ssm``",
+ "description": "Systems Manager doc-only update for January, 2025.",
+ "type": "api-change"
+ },
+ {
+ "category": "``sso-oidc``",
+ "description": "Fixed typos in the descriptions.",
+ "type": "api-change"
+ },
+ {
+ "category": "``transfer``",
+ "description": "Added CustomDirectories as a new directory option for storing inbound AS2 messages, MDN files and Status files.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.7.json b/.changes/1.37.7.json
new file mode 100644
index 000000000000..aa1b97abae8f
--- /dev/null
+++ b/.changes/1.37.7.json
@@ -0,0 +1,22 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "Add support for the prompt caching feature for Bedrock Prompt Management",
+ "type": "api-change"
+ },
+ {
+ "category": "``iot``",
+ "description": "Raised the documentParameters size limit to 30 KB for AWS IoT Device Management - Jobs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``mediaconvert``",
+ "description": "This release adds support for dynamic audio configuration and the ability to disable the deblocking filter for h265 encodes.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3control``",
+ "description": "Minor fix to ARN validation for Lambda functions passed to S3 Batch Operations",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.8.json b/.changes/1.37.8.json
new file mode 100644
index 000000000000..e68e5acbb29b
--- /dev/null
+++ b/.changes/1.37.8.json
@@ -0,0 +1,32 @@
+[
+ {
+ "category": "``appsync``",
+ "description": "Add stash and outErrors to EvaluateCode/EvaluateMappingTemplate response",
+ "type": "api-change"
+ },
+ {
+ "category": "``datasync``",
+ "description": "AWS DataSync now supports the Kerberos authentication protocol for SMB locations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``deadline``",
+ "description": "feature: Deadline: Add support for limiting the concurrent usage of external resources, like floating licenses, using limits and the ability to constrain the maximum number of workers that work on a job",
+ "type": "api-change"
+ },
+ {
+ "category": "``ec2``",
+ "description": "This release changes the CreateFleet CLI and SDK's such that if you do not specify a client token, a randomly generated token is used for the request to ensure idempotency.",
+ "type": "api-change"
+ },
+ {
+ "category": "``firehose``",
+ "description": "For AppendOnly streams, Firehose will automatically scale to match your throughput.",
+ "type": "api-change"
+ },
+ {
+ "category": "``timestream-influxdb``",
+ "description": "Adds 'allocatedStorage' parameter to UpdateDbInstance API that allows increasing the database instance storage size and 'dbStorageType' parameter to UpdateDbInstance API that allows changing the storage type of the database instance",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.37.9.json b/.changes/1.37.9.json
new file mode 100644
index 000000000000..b24ad64671b9
--- /dev/null
+++ b/.changes/1.37.9.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bcm-pricing-calculator``",
+ "description": "Added ConflictException error type in DeleteBillScenario, BatchDeleteBillScenarioCommitmentModification, BatchDeleteBillScenarioUsageModification, BatchUpdateBillScenarioUsageModification, and BatchUpdateBillScenarioCommitmentModification API operations.",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr``",
+ "description": "Add support for Dualstack and Dualstack-with-FIPS Endpoints",
+ "type": "api-change"
+ },
+ {
+ "category": "``ecr-public``",
+ "description": "Add support for Dualstack Endpoints",
+ "type": "api-change"
+ },
+ {
+ "category": "``mailmanager``",
+ "description": "This release includes a new feature for Amazon SES Mail Manager which allows customers to specify known addresses and domains and make use of those in traffic policies and rules actions to distinguish between known and unknown entries.",
+ "type": "api-change"
+ },
+ {
+ "category": "``s3``",
+ "description": "Change the type of MpuObjectSize in CompleteMultipartUploadRequest from int to long.",
+ "type": "api-change"
+ }
+]
\ No newline at end of file
diff --git a/.changes/1.38.0.json b/.changes/1.38.0.json
new file mode 100644
index 000000000000..82945c57a456
--- /dev/null
+++ b/.changes/1.38.0.json
@@ -0,0 +1,27 @@
+[
+ {
+ "category": "``bedrock-agent``",
+ "description": "This release improves support for newer models in Amazon Bedrock Flows.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-agent-runtime``",
+ "description": "Adding support for ReasoningContent fields in Pre-Processing, Post-Processing and Orchestration Trace outputs.",
+ "type": "api-change"
+ },
+ {
+ "category": "``bedrock-runtime``",
+ "description": "This release adds Reasoning Content support to Converse and ConverseStream APIs",
+ "type": "api-change"
+ },
+ {
+ "category": "``elasticache``",
+ "description": "Documentation update, adding clarity and rephrasing.",
+ "type": "api-change"
+ },
+ {
+ "category": "Endpoints",
+ "description": "Generate and use AWS-account-based endpoints for compatible services when the account ID is available. At launch, DynamoDB is the first and only compatible service. The new endpoint URL pattern will be ``https:// A unique string that identifies a cluster. The '
'create-default-roles command. "
+ "description": "An IAM role for the cluster. The EC2 instances of the cluster"
+ " assume this role. The default role is "
+ + EC2_ROLE_NAME
+ + ". In order to use the default"
+ " role, you must have already created it using the "
+ "create-default-roles command. ",
},
"EmrManagedMasterSecurityGroup": {
"type": "string",
- "description": helptext.EMR_MANAGED_MASTER_SECURITY_GROUP
+ "description": helptext.EMR_MANAGED_MASTER_SECURITY_GROUP,
},
"EmrManagedSlaveSecurityGroup": {
"type": "string",
- "description": helptext.EMR_MANAGED_SLAVE_SECURITY_GROUP
+ "description": helptext.EMR_MANAGED_SLAVE_SECURITY_GROUP,
},
"ServiceAccessSecurityGroup": {
"type": "string",
- "description": helptext.SERVICE_ACCESS_SECURITY_GROUP
+ "description": helptext.SERVICE_ACCESS_SECURITY_GROUP,
},
"AdditionalMasterSecurityGroups": {
"type": "array",
"description": helptext.ADDITIONAL_MASTER_SECURITY_GROUPS,
- "items": {
- "type": "string"
- }
+ "items": {"type": "string"},
},
"AdditionalSlaveSecurityGroups": {
"type": "array",
"description": helptext.ADDITIONAL_SLAVE_SECURITY_GROUPS,
- "items": {
- "type": "string"
- }
- }
- }
+ "items": {"type": "string"},
+ },
+ },
}
@@ -575,20 +575,26 @@
"Name": {
"type": "string",
"description": "Application name.",
- "enum": ["MapR", "HUE", "HIVE", "PIG", "HBASE",
- "IMPALA", "GANGLIA", "HADOOP", "SPARK"],
- "required": True
+ "enum": [
+ "MapR",
+ "HUE",
+ "HIVE",
+ "PIG",
+ "HBASE",
+ "IMPALA",
+ "GANGLIA",
+ "HADOOP",
+ "SPARK",
+ ],
+ "required": True,
},
"Args": {
"type": "array",
- "description":
- "A list of arguments to pass to the application.",
- "items": {
- "type": "string"
- }
- }
- }
- }
+ "description": "A list of arguments to pass to the application.",
+ "items": {"type": "string"},
+ },
+ },
+ },
}
BOOTSTRAP_ACTIONS_SCHEMA = {
@@ -596,29 +602,22 @@
"items": {
"type": "object",
"properties": {
- "Name": {
- "type": "string",
- "default": "Bootstrap Action"
- },
+ "Name": {"type": "string", "default": "Bootstrap Action"},
"Path": {
"type": "string",
- "description":
- "Location of the script to run during a bootstrap action. "
- "Can be either a location in Amazon S3 or "
- "on a local file system.",
- "required": True
+ "description": "Location of the script to run during a bootstrap action. "
+ "Can be either a location in Amazon S3 or "
+ "on a local file system.",
+ "required": True,
},
"Args": {
"type": "array",
- "description":
- "A list of command line arguments to pass to "
- "the bootstrap action script",
- "items": {
- "type": "string"
- }
- }
- }
- }
+ "description": "A list of command line arguments to pass to "
+ "the bootstrap action script",
+ "items": {"type": "string"},
+ },
+ },
+ },
}
@@ -629,8 +628,7 @@
"properties": {
"Type": {
"type": "string",
- "description":
- "The type of a step to be added to the cluster.",
+ "description": "The type of a step to be added to the cluster.",
"default": "custom_jar",
"enum": ["CUSTOM_JAR", "STREAMING", "HIVE", "PIG", "IMPALA"],
},
@@ -642,7 +640,7 @@
"type": "string",
"description": "The action to take if the cluster step fails.",
"enum": ["TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"],
- "default": "CONTINUE"
+ "default": "CONTINUE",
},
"Jar": {
"type": "string",
@@ -650,42 +648,45 @@
},
"Args": {
"type": "array",
- "description":
- "A list of command line arguments to pass to the step.",
- "items": {
- "type": "string"
- }
+ "description": "A list of command line arguments to pass to the step.",
+ "items": {"type": "string"},
},
"MainClass": {
"type": "string",
- "description":
- "The name of the main class in the specified "
- "Java file. If not specified, the JAR file should "
- "specify a Main-Class in its manifest file."
+ "description": "The name of the main class in the specified "
+ "Java file. If not specified, the JAR file should "
+ "specify a Main-Class in its manifest file.",
},
"Properties": {
"type": "string",
- "description":
- "A list of Java properties that are set when the step "
- "runs. You can use these properties to pass key value "
- "pairs to your main function."
- }
- }
- }
+ "description": "A list of Java properties that are set when the step "
+ "runs. You can use these properties to pass key value "
+ "pairs to your main function.",
+ },
+ "LogUri": {
+ "type": "string",
+ "description": "The Amazon S3 destination URI for log publishing. If "
+ "not specified, the cluster logging location is used.",
+ },
+ "EncryptionKeyArn": {
+ "type": "string",
+ "description": "The KMS key ARN to encrypt the logs published to the "
+ "given Amazon S3 destination. If not specified, the "
+ "cluster KMS key is used.",
+ },
+ },
+ },
}
HBASE_RESTORE_FROM_BACKUP_SCHEMA = {
"type": "object",
"properties": {
- "Dir": {
- "type": "string",
- "description": helptext.HBASE_BACKUP_DIR
- },
+ "Dir": {"type": "string", "description": helptext.HBASE_BACKUP_DIR},
"BackupVersion": {
"type": "string",
- "description": helptext.HBASE_BACKUP_VERSION
- }
- }
+ "description": helptext.HBASE_BACKUP_VERSION,
+ },
+ },
}
EMR_FS_SCHEMA = {
@@ -693,41 +694,38 @@
"properties": {
"Consistent": {
"type": "boolean",
- "description": "Enable EMRFS consistent view."
+ "description": "Enable EMRFS consistent view.",
},
"SSE": {
"type": "boolean",
"description": "Enable Amazon S3 server-side encryption on files "
- "written to S3 by EMRFS."
+ "written to S3 by EMRFS.",
},
"RetryCount": {
"type": "integer",
- "description":
- "The maximum number of times to retry upon S3 inconsistency."
+ "description": "The maximum number of times to retry upon S3 inconsistency.",
},
"RetryPeriod": {
"type": "integer",
"description": "The amount of time (in seconds) until the first "
- "retry. Subsequent retries use an exponential "
- "back-off."
+ "retry. Subsequent retries use an exponential "
+ "back-off.",
},
"Args": {
"type": "array",
"description": "A list of arguments to pass for additional "
- "EMRFS configuration.",
- "items": {
- "type": "string"
- }
+ "EMRFS configuration.",
+ "items": {"type": "string"},
},
"Encryption": {
"type": "string",
"description": "EMRFS encryption type.",
- "enum": ["SERVERSIDE", "CLIENTSIDE"]
+ "enum": ["SERVERSIDE", "CLIENTSIDE"],
},
"ProviderType": {
"type": "string",
"description": "EMRFS client-side encryption provider type.",
- "enum": ["KMS", "CUSTOM"]
+ "enum": ["KMS", "CUSTOM"],
},
"KMSKeyId": {
"type": "string",
@@ -735,46 +733,41 @@
},
"CustomProviderLocation": {
"type": "string",
- "description": "Custom encryption provider JAR location."
+ "description": "Custom encryption provider JAR location.",
},
"CustomProviderClass": {
"type": "string",
- "description": "Custom encryption provider full class name."
- }
- }
+ "description": "Custom encryption provider full class name.",
+ },
+ },
}
-TAGS_SCHEMA = {
- "type": "array",
- "items": {
- "type": "string"
- }
-}
+TAGS_SCHEMA = {"type": "array", "items": {"type": "string"}}
KERBEROS_ATTRIBUTES_SCHEMA = {
"type": "object",
"properties": {
"Realm": {
"type": "string",
- "description": "The name of Kerberos realm."
+ "description": "The name of Kerberos realm.",
},
"KdcAdminPassword": {
"type": "string",
- "description": "The password of Kerberos administrator."
+ "description": "The password of Kerberos administrator.",
},
"CrossRealmTrustPrincipalPassword": {
"type": "string",
- "description": "The password to establish cross-realm trusts."
+ "description": "The password to establish cross-realm trusts.",
},
"ADDomainJoinUser": {
"type": "string",
- "description": "The name of the user with privileges to join instances to Active Directory."
+ "description": "The name of the user with privileges to join instances to Active Directory.",
},
"ADDomainJoinPassword": {
"type": "string",
- "description": "The password of the user with privileges to join instances to Active Directory."
- }
- }
+ "description": "The password of the user with privileges to join instances to Active Directory.",
+ },
+ },
}
MANAGED_SCALING_POLICY_SCHEMA = {
@@ -782,57 +775,66 @@
"properties": {
"ComputeLimits": {
"type": "object",
- "description":
- "The EC2 unit limits for a managed scaling policy. "
- "The managed scaling activity of a cluster is not allowed to go above "
- "or below these limits. The limits apply to CORE and TASK groups "
- "and exclude the capacity of the MASTER group.",
+ "description": "The EC2 unit limits for a managed scaling policy. "
+ "The managed scaling activity of a cluster is not allowed to go above "
+ "or below these limits. The limits apply to CORE and TASK groups "
+ "and exclude the capacity of the MASTER group.",
"properties": {
- "MinimumCapacityUnits": {
- "type": "integer",
- "description":
- "The lower boundary of EC2 units. It is measured through "
- "VCPU cores or instances for instance groups and measured "
- "through units for instance fleets. Managed scaling "
- "activities are not allowed beyond this boundary.",
- "required": True
- },
- "MaximumCapacityUnits": {
- "type": "integer",
- "description":
- "The upper boundary of EC2 units. It is measured through "
- "VCPU cores or instances for instance groups and measured "
- "through units for instance fleets. Managed scaling "
- "activities are not allowed beyond this boundary.",
- "required": True
- },
- "MaximumOnDemandCapacityUnits": {
- "type": "integer",
- "description":
- "The upper boundary of on-demand EC2 units. It is measured through "
- "VCPU cores or instances for instance groups and measured "
- "through units for instance fleets. The on-demand units are not "
- "allowed to scale beyond this boundary. "
- "This value must be lower than MaximumCapacityUnits."
- },
- "UnitType": {
- "type": "string",
- "description": "The unit type used for specifying a managed scaling policy.",
- "enum": ["VCPU", "Instances", "InstanceFleetUnits"],
- "required": True
- },
- "MaximumCoreCapacityUnits": {
- "type": "integer",
- "description":
- "The upper boundary of EC2 units for core node type in a cluster. "
- "It is measured through VCPU cores or instances for instance groups "
- "and measured through units for instance fleets. "
- "The core units are not allowed to scale beyond this boundary. "
- "The parameter is used to split capacity allocation between core and task nodes."
- }
- }
- }
- }
+ "MinimumCapacityUnits": {
+ "type": "integer",
+ "description": "The lower boundary of EC2 units. It is measured through "
+ "VCPU cores or instances for instance groups and measured "
+ "through units for instance fleets. Managed scaling "
+ "activities are not allowed beyond this boundary.",
+ "required": True,
+ },
+ "MaximumCapacityUnits": {
+ "type": "integer",
+ "description": "The upper boundary of EC2 units. It is measured through "
+ "VCPU cores or instances for instance groups and measured "
+ "through units for instance fleets. Managed scaling "
+ "activities are not allowed beyond this boundary.",
+ "required": True,
+ },
+ "MaximumOnDemandCapacityUnits": {
+ "type": "integer",
+ "description": "The upper boundary of on-demand EC2 units. It is measured through "
+ "VCPU cores or instances for instance groups and measured "
+ "through units for instance fleets. The on-demand units are not "
+ "allowed to scale beyond this boundary. "
+ "This value must be lower than MaximumCapacityUnits.",
+ },
+ "UnitType": {
+ "type": "string",
+ "description": "The unit type used for specifying a managed scaling policy.",
+ "enum": ["VCPU", "Instances", "InstanceFleetUnits"],
+ "required": True,
+ },
+ "MaximumCoreCapacityUnits": {
+ "type": "integer",
+ "description": "The upper boundary of EC2 units for core node type in a cluster. "
+ "It is measured through VCPU cores or instances for instance groups "
+ "and measured through units for instance fleets. "
+ "The core units are not allowed to scale beyond this boundary. "
+ "The parameter is used to split capacity allocation between core and task nodes.",
+ },
+ },
+ },
+ "ScalingStrategy": {
+ "type": "string",
+ "enum": ["DEFAULT", "ADVANCED"],
+ "description": "Determines whether a custom scaling utilization performance index can be set. "
+ "Possible values include ADVANCED or DEFAULT.",
+ },
+ "UtilizationPerformanceIndex": {
+ "type": "integer",
+ "description": "An integer value that represents an advanced scaling strategy. "
+ "Setting a higher value optimizes for performance. "
+ "Setting a lower value optimizes for resource conservation. "
+ "Setting the value to 50 balances performance and resource conservation. "
+ "Possible values are 1, 25, 50, 75, and 100.",
+ },
+ },
}
PLACEMENT_GROUP_CONFIGS_SCHEMA = {
@@ -844,26 +846,69 @@
"type": "string",
"description": "Role of the instance in the cluster.",
"enum": ["MASTER", "CORE", "TASK"],
- "required": True
+ "required": True,
},
"PlacementStrategy": {
"type": "string",
"description": "EC2 Placement Group strategy associated "
- "with instance role.",
- "enum": ["SPREAD", "PARTITION", "CLUSTER", "NONE"]
- }
- }
- }
+ "with instance role.",
+ "enum": ["SPREAD", "PARTITION", "CLUSTER", "NONE"],
+ },
+ },
+ },
}
AUTO_TERMINATION_POLICY_SCHEMA = {
"type": "object",
- "properties": {
+ "properties": {
"IdleTimeout": {
"type": "long",
- "description":
- "Specifies the amount of idle time in seconds after which the cluster automatically terminates. "
- "You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).",
+ "description": "Specifies the amount of idle time in seconds after which the cluster automatically terminates. "
+ "You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).",
+ }
+ },
+}
+
+MONITORING_CONFIGURATION_SCHEMA = {
+ "type": "object",
+ "properties": {
+ "CloudWatchLogConfiguration": {
+ "type": "object",
+ "description": "CloudWatch log configuration settings and metadata that specify settings like log files to monitor and where to send them.",
+ "properties": {
+ "Enabled": {
+ "type": "boolean",
+ "description": "Specifies if CloudWatch logging is enabled.",
+ "required": True
+ },
+ "LogGroupName": {
+ "type": "string",
+ "description": "The name of the CloudWatch log group where logs are published."
+ },
+ "LogStreamNamePrefix": {
+ "type": "string",
+ "description": "The prefix of the log stream name."
+ },
+ "EncryptionKeyArn": {
+ "type": "string",
+ "description": "The ARN of the encryption key used to encrypt the logs."
+ },
+ "LogTypes": {
+ "type": "map",
+ "key": {
+ "type": "string",
+ "description": "Log type category"
+ },
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "File names (STDOUT or STDERR) for the log type"
+ },
+ "description": "A map of log types to file names for publishing logs to the standard output or standard error streams for CloudWatch. Valid log types include STEP_LOGS, SPARK_DRIVER, and SPARK_EXECUTOR. Valid file names for each type include STDOUT and STDERR."
+ }
+ }
}
}
}
diff --git a/awscli/customizations/emr/constants.py b/awscli/customizations/emr/constants.py
index 25c18b46ec87..8d2bb51a6bbe 100644
--- a/awscli/customizations/emr/constants.py
+++ b/awscli/customizations/emr/constants.py
@@ -22,6 +22,7 @@
EMR_AUTOSCALING_ROLE_POLICY_NAME = "AmazonElasticMapReduceforAutoScalingRole"
EMR_AUTOSCALING_SERVICE_NAME = "application-autoscaling"
EMR_AUTOSCALING_SERVICE_PRINCIPAL = "application-autoscaling.amazonaws.com"
+EC2_SERVICE_PRINCIPAL = "ec2.amazonaws.com"
# Action on failure
CONTINUE = 'CONTINUE'
diff --git a/awscli/customizations/emr/createcluster.py b/awscli/customizations/emr/createcluster.py
index b5a0924cc69a..88164bc122c2 100644
--- a/awscli/customizations/emr/createcluster.py
+++ b/awscli/customizations/emr/createcluster.py
@@ -12,136 +12,222 @@
# language governing permissions and limitations under the License.
import re
+
+from botocore.compat import json
+
from awscli.customizations.commands import BasicCommand
-from awscli.customizations.emr import applicationutils
-from awscli.customizations.emr import argumentschema
-from awscli.customizations.emr import constants
-from awscli.customizations.emr import emrfsutils
-from awscli.customizations.emr import emrutils
-from awscli.customizations.emr import exceptions
-from awscli.customizations.emr import hbaseutils
-from awscli.customizations.emr import helptext
-from awscli.customizations.emr import instancegroupsutils
-from awscli.customizations.emr import instancefleetsutils
-from awscli.customizations.emr import steputils
+from awscli.customizations.emr import (
+ applicationutils,
+ argumentschema,
+ constants,
+ emrfsutils,
+ emrutils,
+ exceptions,
+ hbaseutils,
+ helptext,
+ instancefleetsutils,
+ instancegroupsutils,
+ steputils,
+)
from awscli.customizations.emr.command import Command
-from awscli.customizations.emr.constants import EC2_ROLE_NAME
-from awscli.customizations.emr.constants import EMR_ROLE_NAME
-from botocore.compat import json
+from awscli.customizations.emr.constants import EC2_ROLE_NAME, EMR_ROLE_NAME
class CreateCluster(Command):
NAME = 'create-cluster'
DESCRIPTION = helptext.CREATE_CLUSTER_DESCRIPTION
ARG_TABLE = [
- {'name': 'release-label',
- 'help_text': helptext.RELEASE_LABEL},
- {'name': 'os-release-label',
- 'help_text': helptext.OS_RELEASE_LABEL},
- {'name': 'ami-version',
- 'help_text': helptext.AMI_VERSION},
- {'name': 'instance-groups',
- 'schema': argumentschema.INSTANCE_GROUPS_SCHEMA,
- 'help_text': helptext.INSTANCE_GROUPS},
- {'name': 'instance-type',
- 'help_text': helptext.INSTANCE_TYPE},
- {'name': 'instance-count',
- 'help_text': helptext.INSTANCE_COUNT},
- {'name': 'auto-terminate', 'action': 'store_true',
- 'group_name': 'auto_terminate',
- 'help_text': helptext.AUTO_TERMINATE},
- {'name': 'no-auto-terminate', 'action': 'store_true',
- 'group_name': 'auto_terminate'},
- {'name': 'instance-fleets',
- 'schema': argumentschema.INSTANCE_FLEETS_SCHEMA,
- 'help_text': helptext.INSTANCE_FLEETS},
- {'name': 'name',
- 'default': 'Development Cluster',
- 'help_text': helptext.CLUSTER_NAME},
- {'name': 'log-uri',
- 'help_text': helptext.LOG_URI},
- {'name': 'log-encryption-kms-key-id',
- 'help_text': helptext.LOG_ENCRYPTION_KMS_KEY_ID},
- {'name': 'service-role',
- 'help_text': helptext.SERVICE_ROLE},
- {'name': 'auto-scaling-role',
- 'help_text': helptext.AUTOSCALING_ROLE},
- {'name': 'use-default-roles', 'action': 'store_true',
- 'help_text': helptext.USE_DEFAULT_ROLES},
- {'name': 'configurations',
- 'help_text': helptext.CONFIGURATIONS},
- {'name': 'ec2-attributes',
- 'help_text': helptext.EC2_ATTRIBUTES,
- 'schema': argumentschema.EC2_ATTRIBUTES_SCHEMA},
- {'name': 'termination-protected', 'action': 'store_true',
- 'group_name': 'termination_protected',
- 'help_text': helptext.TERMINATION_PROTECTED},
- {'name': 'no-termination-protected', 'action': 'store_true',
- 'group_name': 'termination_protected'},
- {'name': 'unhealthy-node-replacement', 'action': 'store_true',
- 'group_name': 'unhealthy_node_replacement',
- 'help_text': helptext.UNHEALTHY_NODE_REPLACEMENT},
- {'name': 'no-unhealthy-node-replacement', 'action': 'store_true',
- 'group_name': 'unhealthy_node_replacement'},
- {'name': 'scale-down-behavior',
- 'help_text': helptext.SCALE_DOWN_BEHAVIOR},
- {'name': 'visible-to-all-users', 'action': 'store_true',
- 'group_name': 'visibility',
- 'help_text': helptext.VISIBILITY},
- {'name': 'no-visible-to-all-users', 'action': 'store_true',
- 'group_name': 'visibility'},
- {'name': 'enable-debugging', 'action': 'store_true',
- 'group_name': 'debug',
- 'help_text': helptext.DEBUGGING},
- {'name': 'no-enable-debugging', 'action': 'store_true',
- 'group_name': 'debug'},
- {'name': 'tags', 'nargs': '+',
- 'help_text': helptext.TAGS,
- 'schema': argumentschema.TAGS_SCHEMA},
- {'name': 'bootstrap-actions',
- 'help_text': helptext.BOOTSTRAP_ACTIONS,
- 'schema': argumentschema.BOOTSTRAP_ACTIONS_SCHEMA},
- {'name': 'applications',
- 'help_text': helptext.APPLICATIONS,
- 'schema': argumentschema.APPLICATIONS_SCHEMA},
- {'name': 'emrfs',
- 'help_text': helptext.EMR_FS,
- 'schema': argumentschema.EMR_FS_SCHEMA},
- {'name': 'steps',
- 'schema': argumentschema.STEPS_SCHEMA,
- 'help_text': helptext.STEPS},
- {'name': 'additional-info',
- 'help_text': helptext.ADDITIONAL_INFO},
- {'name': 'restore-from-hbase-backup',
- 'schema': argumentschema.HBASE_RESTORE_FROM_BACKUP_SCHEMA,
- 'help_text': helptext.RESTORE_FROM_HBASE},
- {'name': 'security-configuration',
- 'help_text': helptext.SECURITY_CONFIG},
- {'name': 'custom-ami-id',
- 'help_text' : helptext.CUSTOM_AMI_ID},
- {'name': 'ebs-root-volume-size',
- 'help_text' : helptext.EBS_ROOT_VOLUME_SIZE},
- {'name': 'ebs-root-volume-iops',
- 'help_text' : helptext.EBS_ROOT_VOLUME_IOPS},
- {'name': 'ebs-root-volume-throughput',
- 'help_text' : helptext.EBS_ROOT_VOLUME_THROUGHPUT},
- {'name': 'repo-upgrade-on-boot',
- 'help_text' : helptext.REPO_UPGRADE_ON_BOOT},
- {'name': 'kerberos-attributes',
- 'schema': argumentschema.KERBEROS_ATTRIBUTES_SCHEMA,
- 'help_text': helptext.KERBEROS_ATTRIBUTES},
- {'name': 'step-concurrency-level',
- 'cli_type_name': 'integer',
- 'help_text': helptext.STEP_CONCURRENCY_LEVEL},
- {'name': 'managed-scaling-policy',
- 'schema': argumentschema.MANAGED_SCALING_POLICY_SCHEMA,
- 'help_text': helptext.MANAGED_SCALING_POLICY},
- {'name': 'placement-group-configs',
- 'schema': argumentschema.PLACEMENT_GROUP_CONFIGS_SCHEMA,
- 'help_text': helptext.PLACEMENT_GROUP_CONFIGS},
- {'name': 'auto-termination-policy',
- 'schema': argumentschema.AUTO_TERMINATION_POLICY_SCHEMA,
- 'help_text': helptext.AUTO_TERMINATION_POLICY}
+ {'name': 'release-label', 'help_text': helptext.RELEASE_LABEL},
+ {'name': 'os-release-label', 'help_text': helptext.OS_RELEASE_LABEL},
+ {'name': 'ami-version', 'help_text': helptext.AMI_VERSION},
+ {
+ 'name': 'instance-groups',
+ 'schema': argumentschema.INSTANCE_GROUPS_SCHEMA,
+ 'help_text': helptext.INSTANCE_GROUPS,
+ },
+ {'name': 'instance-type', 'help_text': helptext.INSTANCE_TYPE},
+ {'name': 'instance-count', 'help_text': helptext.INSTANCE_COUNT},
+ {
+ 'name': 'auto-terminate',
+ 'action': 'store_true',
+ 'group_name': 'auto_terminate',
+ 'help_text': helptext.AUTO_TERMINATE,
+ },
+ {
+ 'name': 'no-auto-terminate',
+ 'action': 'store_true',
+ 'group_name': 'auto_terminate',
+ },
+ {
+ 'name': 'instance-fleets',
+ 'schema': argumentschema.INSTANCE_FLEETS_SCHEMA,
+ 'help_text': helptext.INSTANCE_FLEETS,
+ },
+ {
+ 'name': 'name',
+ 'default': 'Development Cluster',
+ 'help_text': helptext.CLUSTER_NAME,
+ },
+ {'name': 'log-uri', 'help_text': helptext.LOG_URI},
+ {
+ 'name': 'log-encryption-kms-key-id',
+ 'help_text': helptext.LOG_ENCRYPTION_KMS_KEY_ID,
+ },
+ {'name': 'service-role', 'help_text': helptext.SERVICE_ROLE},
+ {'name': 'auto-scaling-role', 'help_text': helptext.AUTOSCALING_ROLE},
+ {
+ 'name': 'use-default-roles',
+ 'action': 'store_true',
+ 'help_text': helptext.USE_DEFAULT_ROLES,
+ },
+ {'name': 'configurations', 'help_text': helptext.CONFIGURATIONS},
+ {
+ 'name': 'ec2-attributes',
+ 'help_text': helptext.EC2_ATTRIBUTES,
+ 'schema': argumentschema.EC2_ATTRIBUTES_SCHEMA,
+ },
+ {
+ 'name': 'termination-protected',
+ 'action': 'store_true',
+ 'group_name': 'termination_protected',
+ 'help_text': helptext.TERMINATION_PROTECTED,
+ },
+ {
+ 'name': 'no-termination-protected',
+ 'action': 'store_true',
+ 'group_name': 'termination_protected',
+ },
+ {
+ 'name': 'unhealthy-node-replacement',
+ 'action': 'store_true',
+ 'group_name': 'unhealthy_node_replacement',
+ 'help_text': helptext.UNHEALTHY_NODE_REPLACEMENT,
+ },
+ {
+ 'name': 'no-unhealthy-node-replacement',
+ 'action': 'store_true',
+ 'group_name': 'unhealthy_node_replacement',
+ },
+ {
+ 'name': 'scale-down-behavior',
+ 'help_text': helptext.SCALE_DOWN_BEHAVIOR,
+ },
+ {
+ 'name': 'visible-to-all-users',
+ 'action': 'store_true',
+ 'group_name': 'visibility',
+ 'help_text': helptext.VISIBILITY,
+ },
+ {
+ 'name': 'no-visible-to-all-users',
+ 'action': 'store_true',
+ 'group_name': 'visibility',
+ },
+ {
+ 'name': 'enable-debugging',
+ 'action': 'store_true',
+ 'group_name': 'debug',
+ 'help_text': helptext.DEBUGGING,
+ },
+ {
+ 'name': 'no-enable-debugging',
+ 'action': 'store_true',
+ 'group_name': 'debug',
+ },
+ {
+ 'name': 'tags',
+ 'nargs': '+',
+ 'help_text': helptext.TAGS,
+ 'schema': argumentschema.TAGS_SCHEMA,
+ },
+ {
+ 'name': 'bootstrap-actions',
+ 'help_text': helptext.BOOTSTRAP_ACTIONS,
+ 'schema': argumentschema.BOOTSTRAP_ACTIONS_SCHEMA,
+ },
+ {
+ 'name': 'applications',
+ 'help_text': helptext.APPLICATIONS,
+ 'schema': argumentschema.APPLICATIONS_SCHEMA,
+ },
+ {
+ 'name': 'emrfs',
+ 'help_text': helptext.EMR_FS,
+ 'schema': argumentschema.EMR_FS_SCHEMA,
+ },
+ {
+ 'name': 'steps',
+ 'schema': argumentschema.STEPS_SCHEMA,
+ 'help_text': helptext.STEPS,
+ },
+ {'name': 'additional-info', 'help_text': helptext.ADDITIONAL_INFO},
+ {
+ 'name': 'restore-from-hbase-backup',
+ 'schema': argumentschema.HBASE_RESTORE_FROM_BACKUP_SCHEMA,
+ 'help_text': helptext.RESTORE_FROM_HBASE,
+ },
+ {
+ 'name': 'security-configuration',
+ 'help_text': helptext.SECURITY_CONFIG,
+ },
+ {'name': 'custom-ami-id', 'help_text': helptext.CUSTOM_AMI_ID},
+ {
+ 'name': 'ebs-root-volume-size',
+ 'help_text': helptext.EBS_ROOT_VOLUME_SIZE,
+ },
+ {
+ 'name': 'ebs-root-volume-iops',
+ 'help_text': helptext.EBS_ROOT_VOLUME_IOPS,
+ },
+ {
+ 'name': 'ebs-root-volume-throughput',
+ 'help_text': helptext.EBS_ROOT_VOLUME_THROUGHPUT,
+ },
+ {
+ 'name': 'repo-upgrade-on-boot',
+ 'help_text': helptext.REPO_UPGRADE_ON_BOOT,
+ },
+ {
+ 'name': 'kerberos-attributes',
+ 'schema': argumentschema.KERBEROS_ATTRIBUTES_SCHEMA,
+ 'help_text': helptext.KERBEROS_ATTRIBUTES,
+ },
+ {
+ 'name': 'step-concurrency-level',
+ 'cli_type_name': 'integer',
+ 'help_text': helptext.STEP_CONCURRENCY_LEVEL,
+ },
+ {
+ 'name': 'managed-scaling-policy',
+ 'schema': argumentschema.MANAGED_SCALING_POLICY_SCHEMA,
+ 'help_text': helptext.MANAGED_SCALING_POLICY,
+ },
+ {
+ 'name': 'placement-group-configs',
+ 'schema': argumentschema.PLACEMENT_GROUP_CONFIGS_SCHEMA,
+ 'help_text': helptext.PLACEMENT_GROUP_CONFIGS,
+ },
+ {
+ 'name': 'auto-termination-policy',
+ 'schema': argumentschema.AUTO_TERMINATION_POLICY_SCHEMA,
+ 'help_text': helptext.AUTO_TERMINATION_POLICY,
+ },
+ {
+ 'name': 'monitoring-configuration',
+ 'schema': argumentschema.MONITORING_CONFIGURATION_SCHEMA,
+ 'help_text': helptext.MONITORING_CONFIGURATION,
+ },
+ {
+ 'name': 'extended-support',
+ 'action': 'store_true',
+ 'group_name': 'extended-support',
+ 'help_text': helptext.EXTENDED_SUPPORT,
+ },
+ {
+ 'name': 'no-extended-support',
+ 'action': 'store_true',
+ 'group_name': 'extended-support',
+ },
]
SYNOPSIS = BasicCommand.FROM_FILE('emr', 'create-cluster-synopsis.txt')
EXAMPLES = BasicCommand.FROM_FILE('emr', 'create-cluster-examples.rst')
@@ -154,69 +240,95 @@ def _run_main_command(self, parsed_args, parsed_globals):
service_role_validation_message = (
" Either choose --use-default-roles or use both --service-role "
- "create-cluster command returns this identifier. You can '
- 'use the list-clusters command to get cluster IDs.list-clusters command to get cluster IDs.
The Amazon S3 location of the Hbase backup. Example: '
's3://mybucket/mybackup, where mybucket is the '
'specified Amazon S3 bucket and mybackup is the specified backup '
'location. The path argument must begin with s3://, which '
- 'refers to an Amazon S3 bucket.
The backup version to restore from. If not specified, the latest backup ' - 'in the specified location is used.
') + 'in the specified location is used.' +) # create-cluster options help text CREATE_CLUSTER_DESCRIPTION = ( - 'Creates an Amazon EMR cluster with the specified configurations.') + 'Creates an Amazon EMR cluster with the specified configurations.' +) DESCRIBE_CLUSTER_DESCRIPTION = ( 'Provides cluster-level details including status, hardware ' @@ -58,22 +61,24 @@ 'elasticmapreduce:ListBootstrapActions, ' 'elasticmapreduce:ListInstanceFleets, ' 'elasticmapreduce:DescribeCluster, ' - 'and elasticmapreduce:ListInstanceGroups.') + 'and elasticmapreduce:ListInstanceGroups.' +) -CLUSTER_NAME = ( - 'The name of the cluster. If not provided, the default is "Development Cluster".
') +CLUSTER_NAME = 'The name of the cluster. If not provided, the default is "Development Cluster".
' LOG_URI = ( 'Specifies the location in Amazon S3 to which log files ' 'are periodically written. If a value is not provided, ' 'logs files are not written to Amazon S3 from the master node ' - 'and are lost if the master node terminates.
') + 'and are lost if the master node terminates.' +) LOG_ENCRYPTION_KMS_KEY_ID = ( 'Specifies the KMS Id utilized for log encryption. If a value is ' 'not provided, log files will be encrypted by default encryption method ' 'AES-256. This attribute is only available with EMR version 5.30.0 and later, ' - 'excluding EMR 6.0.0.
') + 'excluding EMR 6.0.0.' +) SERVICE_ROLE = ( 'Specifies an IAM service role, which Amazon EMR requires to call other AWS services '
@@ -82,28 +87,32 @@
'To specify the default service role, as well as the default instance '
'profile, use the --use-default-roles parameter. '
'If the role and instance profile do not already exist, use the '
- 'aws emr create-default-roles command to create them.
aws emr create-default-roles command to create them.'
+)
AUTOSCALING_ROLE = (
'Specify --auto-scaling-role EMR_AutoScaling_DefaultRole'
' if an automatic scaling policy is specified for an instance group'
' using the --instance-groups parameter. This default'
' IAM role allows the automatic scaling feature'
- ' to launch and terminate Amazon EC2 instances during scaling operations.
Specifies that the cluster should use the default' ' service role (EMR_DefaultRole) and instance profile (EMR_EC2_DefaultRole)' ' for permissions to access other AWS services.
' 'Make sure that the role and instance profile exist first. To create them,'
- ' use the create-default-roles command.
create-default-roles command.'
+)
AMI_VERSION = (
'Applies only to Amazon EMR release versions earlier than 4.0. Use'
' --release-label for 4.0 and later. Specifies'
' the version of Amazon Linux Amazon Machine Image (AMI)'
' to use when launching Amazon EC2 instances in the cluster.'
- ' For example, --ami-version 3.1.0.')
+ ' For example, --ami-version 3.1.0.'
+)
RELEASE_LABEL = (
'
Specifies the Amazon EMR release version, which determines' @@ -115,12 +124,14 @@ '
https://docs.aws.amazon.com/emr/latest/ReleaseGuide
' 'Use --release-label only for Amazon EMR release version 4.0'
' and later. Use --ami-version for earlier versions.'
- ' You cannot specify both a release label and AMI version.
Specifies a particular Amazon Linux release for all nodes in a cluster' - ' launch request. If a release is not specified, EMR uses the latest validated' - ' Amazon Linux release for cluster launch.
') + ' launch request. If a release is not specified, EMR uses the latest validated' + ' Amazon Linux release for cluster launch.' +) CONFIGURATIONS = ( 'Specifies a JSON file that contains configuration classifications,'
@@ -134,7 +145,8 @@
' file for an application, such as yarn-site for YARN. For a list of'
' available configuration classifications and example JSON, see'
' the following topic in the Amazon EMR Release Guide:
https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html
') + 'https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html
' +) INSTANCE_GROUPS = ( 'Specifies the number and type of Amazon EC2 instances' @@ -163,7 +175,8 @@ '
[EbsConfiguration] - Specifies additional Amazon EBS storage volumes attached'
' to EC2 instances using an inline JSON structure.[AutoScalingPolicy] - Specifies an automatic scaling policy for the'
- ' instance group using an inline JSON structure.Applies only to Amazon EMR release version 5.0 and later. Specifies' @@ -195,7 +208,8 @@ '
InstanceTypeConfigs - Specify up to five EC2 instance types to'
' use in the instance fleet, including details such as Spot price and Amazon EBS configuration.'
' When you use an On-Demand or Spot Instance allocation strategy,'
- ' you can specify up to 30 instance types per instance fleet.Shortcut parameter as an alternative to --instance-groups.'
@@ -204,18 +218,21 @@
' the cluster consists of a single master node running on the EC2 instance type'
' specified. When used together with --instance-count,'
' one instance is used for the master node, and the remainder'
- ' are used for the core node type.
Shortcut parameter as an alternative to --instance-groups'
' when used together with --instance-type. Specifies the'
' number of Amazon EC2 instances to create for a cluster.'
' One instance is used for the master node, and the remainder'
- ' are used for the core node type.
Specifies additional information during cluster creation. To set development mode when starting your EMR cluster,'
- ' set this parameter to {"clusterType":"development"}.
{"clusterType":"development"}.'
+)
EC2_ATTRIBUTES = (
'Configures cluster and Amazon EC2 instance configurations. Accepts'
@@ -227,10 +244,10 @@
' For example, us-west-1b. AvailabilityZone is used for uniform instance groups,'
' while AvailabilityZones (plural) is used for instance fleets.'
'
AvailabilityZones - Applies to clusters that use the instance fleet configuration.'
- ' When multiple Availability Zones are specified, Amazon EMR evaluates them and launches instances'
+ ' When multiple Availability Zones are specified, Amazon EMR evaluates them and launches instances'
' in the optimal Availability Zone. AvailabilityZone is used for uniform instance groups,'
' while AvailabilityZones (plural) is used for instance fleets.SubnetId - Applies to clusters that use the uniform instance group configuration.'
+ 'SubnetId - Applies to clusters that use the uniform instance group configuration.'
' Specify the VPC subnet in which to create the cluster. SubnetId is used for uniform instance groups,'
' while SubnetIds (plural) is used for instance fleets.SubnetIds - Applies to clusters that use the instance fleet configuration.'
@@ -249,16 +266,19 @@
'AdditionalMasterSecurityGroups - A list of additional Amazon EC2'
' security group IDs for the master node.AdditionalSlaveSecurityGroups - A list of additional Amazon EC2'
- ' security group IDs for the slave nodes.Specifies whether the cluster should terminate after' - ' completing all the steps. Auto termination is off by default.
') + ' completing all the steps. Auto termination is off by default.' +) TERMINATION_PROTECTED = ( 'Specifies whether to lock the cluster to prevent the' ' Amazon EC2 instances from being terminated by API call,' - ' user intervention, or an error.
') + ' user intervention, or an error.' +) SCALE_DOWN_BEHAVIOR = ( 'Specifies the way that individual Amazon EC2 instances terminate' @@ -276,7 +296,8 @@ ' of the AWS account associated with the cluster. If a user' ' has the proper policy permissions set, they can also manage the cluster.
' 'Visibility is on by default. The --no-visible-to-all-users option'
- ' is no longer supported. To restrict cluster visibility, use an IAM policy.
Specifies that the debugging tool is enabled for the cluster,'
@@ -284,7 +305,8 @@
' Turning debugging on requires that you specify --log-uri'
' because log files must be stored in Amazon S3 so that'
' Amazon EMR can index them for viewing in the console.'
- ' Effective January 23, 2023, Amazon EMR will discontinue the debugging tool for all versions.
A list of tags to associate with a cluster, which apply to' @@ -294,7 +316,8 @@ ' with a maximum of 256 characters.
' 'You can specify tags in key=value format or you can add a'
' tag without a value using only the key name, for example key.'
- ' Use a space to separate multiple tags.
Specifies a list of bootstrap actions to run on each EC2 instance when'
@@ -317,7 +340,8 @@
' to pass to the bootstrap action script. Arguments can be'
' either a list of values ( Specifies the applications to install on the cluster.'
@@ -329,7 +353,8 @@
' some applications take optional arguments for configuration.'
' Arguments should either be a comma-separated list of values'
' (Args=arg1,arg2,arg3)'
' or a list of key-value pairs, as well as optional values,'
- ' enclosed in square brackets (Args=[arg1,arg2=arg2value,arg3]).')
+ ' enclosed in square brackets (Args=[arg1,arg2=arg2value,arg3]).'
+)
APPLICATIONS = (
'Args=arg1,arg2,arg3) or a bracket-enclosed list of values'
- ' and key-value pairs (Args=[arg1,arg2=arg3,arg4]).Args=[arg1,arg2=arg3,arg4]).
Specifies EMRFS configuration options, such as consistent view' @@ -340,13 +365,15 @@ ' to configure EMRFS, and use security configurations' ' to configure encryption for EMRFS data in Amazon S3 instead.' ' For more information, see the following topic in the Amazon EMR Management Guide:
' - 'https://docs.aws.amazon.com/emr/latest/ManagementGuide/emrfs-configure-consistent-view.html
') + 'https://docs.aws.amazon.com/emr/latest/ManagementGuide/emrfs-configure-consistent-view.html
' +) RESTORE_FROM_HBASE = ( 'Applies only when using Amazon EMR release versions earlier than 4.0.'
' Launches a new HBase cluster and populates it with'
' data from a previous backup of an HBase cluster. HBase'
- ' must be installed using the --applications option.
--applications option.'
+)
STEPS = (
'Specifies a list of steps to be executed by the cluster. Steps run'
@@ -356,27 +383,32 @@
' or by specifying an inline JSON structure. Args supplied with steps'
' should be a comma-separated list of values (Args=arg1,arg2,arg3) or'
' a bracket-enclosed list of values and key-value'
- ' pairs (Args=[arg1,arg2=value,arg4).
Args=[arg1,arg2=value,arg4).'
+)
INSTALL_APPLICATIONS = (
'The applications to be installed.'
' Takes the following parameters: '
- 'Name and Args.
Name and Args.'
+)
EBS_ROOT_VOLUME_SIZE = (
'This option is available only with Amazon EMR version 4.x and later. Specifies the size,' ' in GiB, of the EBS root device volume of the Amazon Linux AMI' - ' that is used for each EC2 instance in the cluster.
') + ' that is used for each EC2 instance in the cluster. ' +) EBS_ROOT_VOLUME_IOPS = ( 'This option is available only with Amazon EMR version 6.15.0 and later. Specifies the IOPS,' ' of the EBS root device volume of the Amazon Linux AMI' - ' that is used for each EC2 instance in the cluster.
') + ' that is used for each EC2 instance in the cluster. ' +) EBS_ROOT_VOLUME_THROUGHPUT = ( 'This option is available only with Amazon EMR version 6.15.0 and later. Specifies the throughput,' ' in MiB/s, of the EBS root device volume of the Amazon Linux AMI' - ' that is used for each EC2 instance in the cluster.
') + ' that is used for each EC2 instance in the cluster. ' +) SECURITY_CONFIG = ( @@ -386,7 +418,8 @@ ' the following topic in the Amazon EMR Management Guide:' 'https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-encryption-enable-security-configuration.html
' 'Use list-security-configurations to get a list of available'
- ' security configurations in the active account.
Applies only to Amazon EMR release version 5.7.0 and later.' @@ -396,7 +429,8 @@ ' can also be used instead of bootstrap actions to customize' ' cluster node configurations. For more information, see' ' the following topic in the Amazon EMR Management Guide:
' - 'https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html
') + 'https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html
' +) REPO_UPGRADE_ON_BOOT = ( 'Applies only when a --custom-ami-id is'
@@ -405,24 +439,26 @@
' before other services start. You can set this parameter'
' using --rep-upgrade-on-boot NONE to'
' disable these updates. CAUTION: This creates additional'
- ' security risks.
Specifies required cluster attributes for Kerberos when Kerberos authentication'
- ' is enabled in the specified --security-configuration.'
- ' Takes the following arguments:
Realm - Specifies the name of the Kerberos'
- ' realm to which all nodes in a cluster belong. For example,'
- ' Realm=EC2.INTERNAL.KdcAdminPassword - Specifies the password used within the cluster'
- ' for the kadmin service, which maintains Kerberos principals, password'
- ' policies, and keytabs for the cluster.CrossRealmTrustPrincipalPassword - Required when establishing a cross-realm trust'
- ' with a KDC in a different realm. This is the cross-realm principal password,'
- ' which must be identical across realms.ADDomainJoinUser - Required when establishing trust with an Active Directory'
- ' domain. This is the User logon name of an AD account with sufficient privileges to join resources to the domain.ADDomainJoinPassword - The AD password for ADDomainJoinUser.Specifies required cluster attributes for Kerberos when Kerberos authentication'
+ ' is enabled in the specified --security-configuration.'
+ ' Takes the following arguments:
Realm - Specifies the name of the Kerberos'
+ ' realm to which all nodes in a cluster belong. For example,'
+ ' Realm=EC2.INTERNAL.KdcAdminPassword - Specifies the password used within the cluster'
+ ' for the kadmin service, which maintains Kerberos principals, password'
+ ' policies, and keytabs for the cluster.CrossRealmTrustPrincipalPassword - Required when establishing a cross-realm trust'
+ ' with a KDC in a different realm. This is the cross-realm principal password,'
+ ' which must be identical across realms.ADDomainJoinUser - Required when establishing trust with an Active Directory'
+ ' domain. This is the User logon name of an AD account with sufficient privileges to join resources to the domain.ADDomainJoinPassword - The AD password for ADDomainJoinUser.WAITINGTERMINATINGTERMINATEDTERMINATED_WITH_ERRORSTERMINATED_WITH_ERRORSShortcut options for --cluster-states. The'
@@ -446,41 +483,50 @@
' are STARTING,BOOTSTRAPPING,'
' RUNNING, WAITING, or TERMINATING. '
'
--terminated - list only clusters that are TERMINATED. --failed - list only clusters that are TERMINATED_WITH_ERRORS.--failed - list only clusters that are TERMINATED_WITH_ERRORS.List only those clusters created after the date and time'
' specified in the format yyyy-mm-ddThh:mm:ss. For example,'
- ' --created-after 2017-07-04T00:01:30.
--created-after 2017-07-04T00:01:30.'
+)
LIST_CLUSTERS_CREATED_BEFORE = (
'List only those clusters created before the date and time'
' specified in the format yyyy-mm-ddThh:mm:ss. For example,'
- ' --created-before 2017-07-04T00:01:30.
')
+ ' --created-before 2017-07-04T00:01:30.'
+)
EMR_MANAGED_MASTER_SECURITY_GROUP = (
'The identifier of the Amazon EC2 security group '
- 'for the master node.
')
+ 'for the master node.'
+)
EMR_MANAGED_SLAVE_SECURITY_GROUP = (
'The identifier of the Amazon EC2 security group '
- 'for the slave nodes.
')
+ 'for the slave nodes.'
+)
SERVICE_ACCESS_SECURITY_GROUP = (
'The identifier of the Amazon EC2 security group '
- 'for Amazon EMR to access clusters in VPC private subnets.
')
+ 'for Amazon EMR to access clusters in VPC private subnets.'
+)
ADDITIONAL_MASTER_SECURITY_GROUPS = (
' A list of additional Amazon EC2 security group IDs for '
- 'the master node
')
+ 'the master node'
+)
ADDITIONAL_SLAVE_SECURITY_GROUPS = (
'A list of additional Amazon EC2 security group IDs for '
- 'the slave nodes.
')
+ 'the slave nodes.'
+)
AVAILABLE_ONLY_FOR_AMI_VERSIONS = (
'This command is only available when using Amazon EMR versions'
- 'earlier than 4.0.')
+ 'earlier than 4.0.'
+)
STEP_CONCURRENCY_LEVEL = (
'This command specifies the step concurrency level of the cluster.'
@@ -498,10 +544,10 @@
)
PLACEMENT_GROUP_CONFIGS = (
- 'Placement group configuration for an Amazon EMR '
- 'cluster. The configuration specifies the EC2 placement group '
- 'strategy associated with each EMR Instance Role.
'
- 'Currently, we support placement group only for MASTER '
+ '
Placement group configuration for an Amazon EMR '
+ 'cluster. The configuration specifies the EC2 placement group '
+ 'strategy associated with each EMR Instance Role.
'
+ 'Currently, we support placement group only for MASTER '
'role with SPREAD strategy by default. You can opt-in by '
'passing --placement-group-configs InstanceRole=MASTER '
'during cluster creation.
'
@@ -522,3 +568,15 @@
UNHEALTHY_NODE_REPLACEMENT = (
'Unhealthy node replacement for an Amazon EMR cluster.
'
)
+
+EXTENDED_SUPPORT = 'Reserved.
'
+
+MONITORING_CONFIGURATION = (
+ 'Monitoring configuration for an Amazon EMR cluster. '
+ 'The configuration specifies CloudWatch logging settings for the cluster. '
+ 'You can configure the CloudWatchLogConfiguration which includes '
+ 'the Enabled flag (required), LogGroupName, LogStreamNamePrefix, '
+ 'EncryptionKeyArn, and LogTypes. The LogTypes parameter is a map '
+ 'of log type categories (e.g., "STEP_LOGS", "SPARK_DRIVER", '
+ '"SPARK_EXECUTOR") to a list of file names (e.g., "STDOUT", "STDERR").
'
+)
diff --git a/awscli/customizations/emr/instancefleetsutils.py b/awscli/customizations/emr/instancefleetsutils.py
index 6c098803dfd1..02d8f0b7a826 100644
--- a/awscli/customizations/emr/instancefleetsutils.py
+++ b/awscli/customizations/emr/instancefleetsutils.py
@@ -65,6 +65,9 @@ def validate_and_build_instance_fleets(parsed_instance_fleets):
if 'OnDemandResizeSpecification' in instanceFleetResizeSpecifications:
instance_fleet_config['ResizeSpecifications']['OnDemandResizeSpecification'] = \
instanceFleetResizeSpecifications['OnDemandResizeSpecification']
+
+ if 'Context' in keys:
+ instance_fleet_config['Context'] = instance_fleet['Context']
instance_fleets.append(instance_fleet_config)
return instance_fleets
diff --git a/awscli/customizations/emr/steputils.py b/awscli/customizations/emr/steputils.py
index 3a9e6b99bfa2..6bc10172238a 100644
--- a/awscli/customizations/emr/steputils.py
+++ b/awscli/customizations/emr/steputils.py
@@ -11,9 +11,7 @@
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
-from awscli.customizations.emr import emrutils
-from awscli.customizations.emr import constants
-from awscli.customizations.emr import exceptions
+from awscli.customizations.emr import constants, emrutils, exceptions
def build_step_config_list(parsed_step_list, region, release_label):
@@ -29,23 +27,24 @@ def build_step_config_list(parsed_step_list, region, release_label):
step_config = build_custom_jar_step(parsed_step=step)
elif step_type == constants.STREAMING:
step_config = build_streaming_step(
- parsed_step=step, release_label=release_label)
+ parsed_step=step, release_label=release_label
+ )
elif step_type == constants.HIVE:
step_config = build_hive_step(
- parsed_step=step, region=region,
- release_label=release_label)
+ parsed_step=step, region=region, release_label=release_label
+ )
elif step_type == constants.PIG:
step_config = build_pig_step(
- parsed_step=step, region=region,
- release_label=release_label)
+ parsed_step=step, region=region, release_label=release_label
+ )
elif step_type == constants.IMPALA:
step_config = build_impala_step(
- parsed_step=step, region=region,
- release_label=release_label)
+ parsed_step=step, region=region, release_label=release_label
+ )
elif step_type == constants.SPARK:
step_config = build_spark_step(
- parsed_step=step, region=region,
- release_label=release_label)
+ parsed_step=step, region=region, release_label=release_label
+ )
else:
raise exceptions.UnknownStepTypeError(step_type=step_type)
@@ -57,14 +56,17 @@ def build_step_config_list(parsed_step_list, region, release_label):
def build_custom_jar_step(parsed_step):
name = _apply_default_value(
arg=parsed_step.get('Name'),
- value=constants.DEFAULT_CUSTOM_JAR_STEP_NAME)
+ value=constants.DEFAULT_CUSTOM_JAR_STEP_NAME,
+ )
action_on_failure = _apply_default_value(
arg=parsed_step.get('ActionOnFailure'),
- value=constants.DEFAULT_FAILURE_ACTION)
+ value=constants.DEFAULT_FAILURE_ACTION,
+ )
emrutils.check_required_field(
structure=constants.CUSTOM_JAR_STEP_CONFIG,
name='Jar',
- value=parsed_step.get('Jar'))
+ value=parsed_step.get('Jar'),
+ )
return emrutils.build_step(
jar=parsed_step.get('Jar'),
args=parsed_step.get('Args'),
@@ -72,22 +74,27 @@ def build_custom_jar_step(parsed_step):
action_on_failure=action_on_failure,
main_class=parsed_step.get('MainClass'),
properties=emrutils.parse_key_value_string(
- parsed_step.get('Properties')))
+ parsed_step.get('Properties')
+ ),
+ log_uri=parsed_step.get('LogUri'),
+ encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
+ )
def build_streaming_step(parsed_step, release_label):
name = _apply_default_value(
arg=parsed_step.get('Name'),
- value=constants.DEFAULT_STREAMING_STEP_NAME)
+ value=constants.DEFAULT_STREAMING_STEP_NAME,
+ )
action_on_failure = _apply_default_value(
arg=parsed_step.get('ActionOnFailure'),
- value=constants.DEFAULT_FAILURE_ACTION)
+ value=constants.DEFAULT_FAILURE_ACTION,
+ )
args = parsed_step.get('Args')
emrutils.check_required_field(
- structure=constants.STREAMING_STEP_CONFIG,
- name='Args',
- value=args)
+ structure=constants.STREAMING_STEP_CONFIG, name='Args', value=args
+ )
emrutils.check_empty_string_list(name='Args', value=args)
args_list = []
@@ -103,27 +110,34 @@ def build_streaming_step(parsed_step, release_label):
jar=jar,
args=args_list,
name=name,
- action_on_failure=action_on_failure)
+ action_on_failure=action_on_failure,
+ log_uri=parsed_step.get('LogUri'),
+ encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
+ )
def build_hive_step(parsed_step, release_label, region=None):
args = parsed_step.get('Args')
emrutils.check_required_field(
- structure=constants.HIVE_STEP_CONFIG, name='Args', value=args)
+ structure=constants.HIVE_STEP_CONFIG, name='Args', value=args
+ )
emrutils.check_empty_string_list(name='Args', value=args)
name = _apply_default_value(
- arg=parsed_step.get('Name'),
- value=constants.DEFAULT_HIVE_STEP_NAME)
- action_on_failure = \
- _apply_default_value(
- arg=parsed_step.get('ActionOnFailure'),
- value=constants.DEFAULT_FAILURE_ACTION)
+ arg=parsed_step.get('Name'), value=constants.DEFAULT_HIVE_STEP_NAME
+ )
+ action_on_failure = _apply_default_value(
+ arg=parsed_step.get('ActionOnFailure'),
+ value=constants.DEFAULT_FAILURE_ACTION,
+ )
return emrutils.build_step(
jar=_get_runner_jar(release_label, region),
args=_build_hive_args(args, release_label, region),
name=name,
- action_on_failure=action_on_failure)
+ action_on_failure=action_on_failure,
+ log_uri=parsed_step.get('LogUri'),
+ encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
+ )
def _build_hive_args(args, release_label, region):
@@ -131,8 +145,11 @@ def _build_hive_args(args, release_label, region):
if release_label:
args_list.append(constants.HIVE_SCRIPT_COMMAND)
else:
- args_list.append(emrutils.build_s3_link(
- relative_path=constants.HIVE_SCRIPT_PATH, region=region))
+ args_list.append(
+ emrutils.build_s3_link(
+ relative_path=constants.HIVE_SCRIPT_PATH, region=region
+ )
+ )
args_list.append(constants.RUN_HIVE_SCRIPT)
@@ -149,20 +166,25 @@ def _build_hive_args(args, release_label, region):
def build_pig_step(parsed_step, release_label, region=None):
args = parsed_step.get('Args')
emrutils.check_required_field(
- structure=constants.PIG_STEP_CONFIG, name='Args', value=args)
+ structure=constants.PIG_STEP_CONFIG, name='Args', value=args
+ )
emrutils.check_empty_string_list(name='Args', value=args)
name = _apply_default_value(
- arg=parsed_step.get('Name'),
- value=constants.DEFAULT_PIG_STEP_NAME)
+ arg=parsed_step.get('Name'), value=constants.DEFAULT_PIG_STEP_NAME
+ )
action_on_failure = _apply_default_value(
arg=parsed_step.get('ActionOnFailure'),
- value=constants.DEFAULT_FAILURE_ACTION)
+ value=constants.DEFAULT_FAILURE_ACTION,
+ )
return emrutils.build_step(
jar=_get_runner_jar(release_label, region),
args=_build_pig_args(args, release_label, region),
name=name,
- action_on_failure=action_on_failure)
+ action_on_failure=action_on_failure,
+ log_uri=parsed_step.get('LogUri'),
+ encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
+ )
def _build_pig_args(args, release_label, region):
@@ -170,8 +192,11 @@ def _build_pig_args(args, release_label, region):
if release_label:
args_list.append(constants.PIG_SCRIPT_COMMAND)
else:
- args_list.append(emrutils.build_s3_link(
- relative_path=constants.PIG_SCRIPT_PATH, region=region))
+ args_list.append(
+ emrutils.build_s3_link(
+ relative_path=constants.PIG_SCRIPT_PATH, region=region
+ )
+ )
args_list.append(constants.RUN_PIG_SCRIPT)
@@ -189,43 +214,55 @@ def build_impala_step(parsed_step, release_label, region=None):
if release_label:
raise exceptions.UnknownStepTypeError(step_type=constants.IMPALA)
name = _apply_default_value(
- arg=parsed_step.get('Name'),
- value=constants.DEFAULT_IMPALA_STEP_NAME)
+ arg=parsed_step.get('Name'), value=constants.DEFAULT_IMPALA_STEP_NAME
+ )
action_on_failure = _apply_default_value(
arg=parsed_step.get('ActionOnFailure'),
- value=constants.DEFAULT_FAILURE_ACTION)
+ value=constants.DEFAULT_FAILURE_ACTION,
+ )
args_list = [
emrutils.build_s3_link(
- relative_path=constants.IMPALA_INSTALL_PATH, region=region),
- constants.RUN_IMPALA_SCRIPT]
+ relative_path=constants.IMPALA_INSTALL_PATH, region=region
+ ),
+ constants.RUN_IMPALA_SCRIPT,
+ ]
args = parsed_step.get('Args')
emrutils.check_required_field(
- structure=constants.IMPALA_STEP_CONFIG, name='Args', value=args)
+ structure=constants.IMPALA_STEP_CONFIG, name='Args', value=args
+ )
args_list += args
return emrutils.build_step(
jar=emrutils.get_script_runner(region),
args=args_list,
name=name,
- action_on_failure=action_on_failure)
+ action_on_failure=action_on_failure,
+ log_uri=parsed_step.get('LogUri'),
+ encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
+ )
def build_spark_step(parsed_step, release_label, region=None):
name = _apply_default_value(
- arg=parsed_step.get('Name'),
- value=constants.DEFAULT_SPARK_STEP_NAME)
+ arg=parsed_step.get('Name'), value=constants.DEFAULT_SPARK_STEP_NAME
+ )
action_on_failure = _apply_default_value(
arg=parsed_step.get('ActionOnFailure'),
- value=constants.DEFAULT_FAILURE_ACTION)
+ value=constants.DEFAULT_FAILURE_ACTION,
+ )
args = parsed_step.get('Args')
emrutils.check_required_field(
- structure=constants.SPARK_STEP_CONFIG, name='Args', value=args)
+ structure=constants.SPARK_STEP_CONFIG, name='Args', value=args
+ )
return emrutils.build_step(
jar=_get_runner_jar(release_label, region),
args=_build_spark_args(args, release_label, region),
name=name,
- action_on_failure=action_on_failure)
+ action_on_failure=action_on_failure,
+ log_uri=parsed_step.get('LogUri'),
+ encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
+ )
def _build_spark_args(args, release_label, region):
@@ -247,5 +284,8 @@ def _apply_default_value(arg, value):
def _get_runner_jar(release_label, region):
- return constants.COMMAND_RUNNER if release_label \
+ return (
+ constants.COMMAND_RUNNER
+ if release_label
else emrutils.get_script_runner(region)
+ )
diff --git a/awscli/customizations/gamelift/getlog.py b/awscli/customizations/gamelift/getlog.py
index 3bded0e9dc13..14793987c436 100644
--- a/awscli/customizations/gamelift/getlog.py
+++ b/awscli/customizations/gamelift/getlog.py
@@ -15,6 +15,7 @@
from awscli.compat import urlopen
from awscli.customizations.commands import BasicCommand
+from awscli.utils import create_nested_client
class GetGameSessionLogCommand(BasicCommand):
@@ -28,8 +29,8 @@ class GetGameSessionLogCommand(BasicCommand):
]
def _run_main(self, args, parsed_globals):
- client = self._session.create_client(
- 'gamelift', region_name=parsed_globals.region,
+ client = create_nested_client(
+ self._session, 'gamelift', region_name=parsed_globals.region,
endpoint_url=parsed_globals.endpoint_url,
verify=parsed_globals.verify_ssl
)
diff --git a/awscli/customizations/gamelift/uploadbuild.py b/awscli/customizations/gamelift/uploadbuild.py
index 369317c5ffd9..896d56bc46ba 100644
--- a/awscli/customizations/gamelift/uploadbuild.py
+++ b/awscli/customizations/gamelift/uploadbuild.py
@@ -21,6 +21,20 @@
from awscli.customizations.commands import BasicCommand
from awscli.customizations.s3.utils import human_readable_size
+from awscli.utils import create_nested_client
+
+
+def parse_tags(raw_tags_list):
+ """Parse tags from Key=Value format to GameLift API format."""
+ tags_list = []
+ if raw_tags_list:
+ for tag in raw_tags_list:
+ if '=' in tag:
+ key, value = tag.split('=', 1)
+ else:
+ key, value = tag, ''
+ tags_list.append({'Key': key, 'Value': value})
+ return tags_list
class UploadBuildCommand(BasicCommand):
@@ -39,21 +53,22 @@ class UploadBuildCommand(BasicCommand):
'The version of the GameLift server SDK used to '
'create the game server'},
{'name': 'operating-system', 'required': False,
- 'help_text': 'The operating system the build runs on'}
+ 'help_text': 'The operating system the build runs on'},
+ {'name': 'tags', 'required': False, 'nargs': '+',
+ 'help_text': 'Tags to assign to the build. Format: Key=Value'}
]
def _run_main(self, args, parsed_globals):
- gamelift_client = self._session.create_client(
- 'gamelift', region_name=parsed_globals.region,
+ gamelift_client = create_nested_client(
+ self._session, 'gamelift', region_name=parsed_globals.region,
endpoint_url=parsed_globals.endpoint_url,
verify=parsed_globals.verify_ssl
)
# Validate a build directory
if not validate_directory(args.build_root):
sys.stderr.write(
- 'Fail to upload %s. '
+ f'Fail to upload {args.build_root}. '
'The build root directory is empty or does not exist.\n'
- % (args.build_root)
)
return 255
@@ -66,6 +81,8 @@ def _run_main(self, args, parsed_globals):
create_build_kwargs['OperatingSystem'] = args.operating_system
if args.server_sdk_version:
create_build_kwargs['ServerSdkVersion'] = args.server_sdk_version
+ if args.tags:
+ create_build_kwargs['Tags'] = parse_tags(args.tags)
response = gamelift_client.create_build(**create_build_kwargs)
build_id = response['Build']['BuildId']
@@ -81,8 +98,9 @@ def _run_main(self, args, parsed_globals):
access_key = upload_credentials['AccessKeyId']
secret_key = upload_credentials['SecretAccessKey']
session_token = upload_credentials['SessionToken']
- s3_client = self._session.create_client(
- 's3', aws_access_key_id=access_key,
+ s3_client = create_nested_client(
+ self._session, 's3',
+ aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
aws_session_token=session_token,
region_name=parsed_globals.region,
@@ -92,7 +110,7 @@ def _run_main(self, args, parsed_globals):
s3_transfer_mgr = S3Transfer(s3_client)
try:
- fd, temporary_zipfile = tempfile.mkstemp('%s.zip' % build_id)
+ fd, temporary_zipfile = tempfile.mkstemp(f'{build_id}.zip')
zip_directory(temporary_zipfile, args.build_root)
s3_transfer_mgr.upload_file(
temporary_zipfile, bucket, key,
@@ -106,8 +124,8 @@ def _run_main(self, args, parsed_globals):
os.remove(temporary_zipfile)
sys.stdout.write(
- 'Successfully uploaded %s to AWS GameLift\n'
- 'Build ID: %s\n' % (args.build_root, build_id))
+ f'Successfully uploaded {args.build_root} to AWS GameLift\n'
+ f'Build ID: {build_id}\n')
return 0
@@ -140,7 +158,7 @@ def validate_directory(source_root):
# TODO: Remove this class once available to CLI from s3transfer
# docstring.
-class ProgressPercentage(object):
+class ProgressPercentage:
def __init__(self, filename, label=None):
self._filename = filename
self._label = label
@@ -156,9 +174,6 @@ def __call__(self, bytes_amount):
if self._size > 0:
percentage = (self._seen_so_far / self._size) * 100
sys.stdout.write(
- "\r%s %s / %s (%.2f%%)" % (
- self._label, human_readable_size(self._seen_so_far),
- human_readable_size(self._size), percentage
- )
+ f"\r{self._label} {human_readable_size(self._seen_so_far)} / {human_readable_size(self._size)} ({percentage:.2f}%)"
)
sys.stdout.flush()
diff --git a/awscli/customizations/globalargs.py b/awscli/customizations/globalargs.py
index af11c9335e86..5384f14d4ecd 100644
--- a/awscli/customizations/globalargs.py
+++ b/awscli/customizations/globalargs.py
@@ -13,12 +13,16 @@
import sys
import os
+from awscli.customizations.argrename import HIDDEN_ALIASES
+from awscli.customizations.utils import uni_print
from botocore.client import Config
+from botocore import UNSIGNED
from botocore.endpoint import DEFAULT_TIMEOUT
-from botocore.handlers import disable_signing
+from botocore.useragent import register_feature_id
import jmespath
from awscli.compat import urlparse
+from awscli.utils import resolve_v2_debug_mode
def register_parse_global_args(cli):
@@ -32,6 +36,8 @@ def register_parse_global_args(cli):
unique_id='resolve-cli-read-timeout')
cli.register('top-level-args-parsed', resolve_cli_connect_timeout,
unique_id='resolve-cli-connect-timeout')
+ cli.register('top-level-args-parsed', detect_migration_breakage,
+ unique_id='detect-migration-breakage')
def resolve_types(parsed_args, **kwargs):
@@ -81,28 +87,183 @@ def resolve_verify_ssl(parsed_args, session, **kwargs):
verify = getattr(parsed_args, 'ca_bundle', None)
setattr(parsed_args, arg_name, verify)
-
def no_sign_request(parsed_args, session, **kwargs):
if not parsed_args.sign_request:
- # In order to make signing disabled for all requests
- # we need to use botocore's ``disable_signing()`` handler.
- # Register this first to override other handlers.
- emitter = session.get_component('event_emitter')
- emitter.register_first(
- 'choose-signer', disable_signing, unique_id='disable-signing',
- )
-
+ # Disable request signing by setting the signature version to UNSIGNED
+ # in the default client configuration. This ensures all new clients
+ # will be created with signing disabled.
+ _update_default_client_config(session, 'signature_version', UNSIGNED)
def resolve_cli_connect_timeout(parsed_args, session, **kwargs):
arg_name = 'connect_timeout'
_resolve_timeout(session, parsed_args, arg_name)
+def detect_migration_breakage(parsed_args, session, remaining_args, **kwargs):
+ if not resolve_v2_debug_mode(parsed_args):
+ return
+ region = parsed_args.region or session.get_config_variable('region')
+ s3_config = session.get_config_variable('s3')
+ if (
+ not session.get_scoped_config().get('cli_pager', None)
+ == '' and 'AWS_PAGER' not in os.environ
+ ):
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: By default, the AWS CLI v2 returns '
+ 'all output through your operating system’s default pager '
+ 'program. This is different from v1 behavior, where the system '
+ 'pager is not used by default. To retain AWS CLI v1 behavior in '
+ 'AWS CLI v2, set the `cli_pager` configuration setting, or the '
+ '`AWS_PAGER` environment variable, to the empty string. See '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html#cliv2-migration-output-pager.\n',
+ out_file=sys.stderr
+ )
+ if 'PYTHONUTF8' in os.environ or 'PYTHONIOENCODING' in os.environ:
+ if 'AWS_CLI_FILE_ENCODING' not in os.environ:
+ uni_print(
+ '\nThe AWS CLI v2 does not support The `PYTHONUTF8` and '
+ '`PYTHONIOENCODING` environment variables, and instead uses '
+ 'the `AWS_CLI_FILE_ENCODING` variable. This is different from '
+ 'v1 behavior, where the former two variables are used '
+ 'instead. To retain AWS CLI v1 behavior in AWS CLI v2, set '
+ 'the `AWS_CLI_FILE_ENCODING` environment variable instead. '
+ 'See https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html'
+ '#cliv2-migration-encodingenvvar.\n',
+ out_file=sys.stderr
+ )
+ if (
+ (
+ s3_config is None
+ or s3_config.get('us_east_1_regional_endpoint', 'legacy')
+ == 'legacy'
+ )
+ and region in ('us-east-1', None)
+ ):
+ session.register(
+ 'request-created.s3.*',
+ warn_if_east_configured_global_endpoint
+ )
+ session.register(
+ 'request-created.s3api.*',
+ warn_if_east_configured_global_endpoint
+ )
+ if session.get_config_variable('api_versions'):
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: AWS CLI v2 UPGRADE WARNING: '
+ 'The AWS CLI v2 does not support calling older versions of AWS '
+ 'service APIs via the `api_versions` configuration file setting. This '
+ 'is different from v1 behavior, where this configuration setting '
+ 'can be used to pin older API versions. To migrate to v2 '
+ 'behavior, remove the `api_versions` configuration setting, and '
+ 'test against the latest service API versions. See '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html#cliv2-migration-api-versions.\n',
+ out_file = sys.stderr
+ )
+ if session.full_config.get('plugins', {}):
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: In AWS CLI v2, plugins are '
+ 'disabled by default, and support for plugins is provisional. '
+ 'This is different from v1 behavior, where plugin support is URL '
+ 'below to update your configuration to enable plugins in AWS CLI '
+ 'v2. Also, be sure to lock into a particular version of the AWS '
+ 'CLI and test the functionality of your plugins every time AWS '
+ 'CLI v2 is upgraded. See https://docs.aws.amazon.com/cli/latest/'
+ 'userguide/cliv2-migration-changes.html'
+ '#cliv2-migration-profile-plugins.\n',
+ out_file=sys.stderr
+ )
+ if (
+ parsed_args.command == 'ecr' and
+ remaining_args is not None and
+ remaining_args[0] == 'get-login'
+ ):
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: The `ecr get-login` command has '
+ 'been removed in AWS CLI v2. You must use `ecr get-login-password` '
+ 'instead. See https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html#cliv2-migration-ecr-get-login.\n',
+ out_file=sys.stderr
+ )
+ for working, obsolete in HIDDEN_ALIASES.items():
+ working_split = working.split('.')
+ working_service = working_split[0]
+ working_cmd = working_split[1]
+ working_param = working_split[2]
+ if (
+ parsed_args.command == working_service
+ and remaining_args is not None
+ and remaining_args[0] == working_cmd
+ and f"--{working_param}" in remaining_args
+ ):
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: You have entered command '
+ 'arguments that use at least 1 of 21 built-in ("hidden") '
+ 'aliases that were removed in AWS CLI v2. For this command '
+ 'to work in AWS CLI v2, you must replace usage of the alias '
+ 'with the corresponding parameter in AWS CLI v2. See '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html#cliv2-migration-aliases.\n',
+ out_file=sys.stderr
+ )
+ # Register against the provide-client-params event to ensure that the
+ # feature ID is registered before any API requests are made. We
+ # cannot register the feature ID in this function because no
+ # botocore context is created at this point.
+ session.register(
+ 'provide-client-params.*.*',
+ _register_v2_debug_feature_id
+ )
+ session.register('choose-signer.s3.*', warn_if_sigv2)
+
+
+def _register_v2_debug_feature_id(params, model, **kwargs):
+ register_feature_id('CLI_V1_TO_V2_MIGRATION_DEBUG_MODE')
+
+def warn_if_east_configured_global_endpoint(request, operation_name, **kwargs):
+ # The regional us-east-1 endpoint is used in certain cases (e.g.
+ # FIPS/Dual-Stack is enabled). Rather than duplicating this logic
+ # from botocore, we check the endpoint URL directly.
+ parsed_url = urlparse.urlparse(request.url)
+ if parsed_url.hostname.endswith('s3.amazonaws.com'):
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: When you configure AWS CLI v2 to '
+ 'use the `us-east-1` region, it uses the true regional endpoint '
+ 'rather than the global endpoint. This is different from v1 '
+ 'behavior, where the global endpoint would be used when the '
+ 'region is `us-east-1`. To retain AWS CLI v1 behavior in AWS '
+ 'CLI v2, configure the region setting to `aws-global`. See '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html'
+ '#cliv2-migration-s3-regional-endpoint.\n',
+ out_file=sys.stderr
+ )
+
+def warn_if_sigv2(
+ signing_name,
+ region_name,
+ signature_version,
+ context,
+ **kwargs
+):
+ if context.get('auth_type', None) == 'v2':
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: The AWS CLI v2 only uses Signature '
+ 'v4 to authenticate Amazon S3 requests. This is different from '
+ 'v1 behavior, where the signature used for Amazon S3 requests may '
+ 'vary depending on configuration settings, region, and the '
+ 'bucket being used. To migrate to AWS CLI v2 behavior, configure '
+ 'the Signature Version S3 setting to version 4. See '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html#cliv2-migration-sigv4.\n',
+ out_file=sys.stderr
+ )
def resolve_cli_read_timeout(parsed_args, session, **kwargs):
arg_name = 'read_timeout'
_resolve_timeout(session, parsed_args, arg_name)
-
def _resolve_timeout(session, parsed_args, arg_name):
arg_value = getattr(parsed_args, arg_name, None)
if arg_value is None:
diff --git a/awscli/customizations/history/__init__.py b/awscli/customizations/history/__init__.py
index a3e580827493..30091f036188 100644
--- a/awscli/customizations/history/__init__.py
+++ b/awscli/customizations/history/__init__.py
@@ -10,37 +10,40 @@
# 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 logging
import os
import sys
-import logging
-from botocore.history import get_global_history_recorder
from botocore.exceptions import ProfileNotFound
+from botocore.history import get_global_history_recorder
from awscli.compat import sqlite3
from awscli.customizations.commands import BasicCommand
-from awscli.customizations.history.constants import HISTORY_FILENAME_ENV_VAR
-from awscli.customizations.history.constants import DEFAULT_HISTORY_FILENAME
-from awscli.customizations.history.db import DatabaseConnection
-from awscli.customizations.history.db import DatabaseRecordWriter
-from awscli.customizations.history.db import RecordBuilder
-from awscli.customizations.history.db import DatabaseHistoryHandler
-from awscli.customizations.history.show import ShowCommand
+from awscli.customizations.history.constants import (
+ DEFAULT_HISTORY_FILENAME,
+ HISTORY_FILENAME_ENV_VAR,
+)
+from awscli.customizations.history.db import (
+ DatabaseConnection,
+ DatabaseHistoryHandler,
+ DatabaseRecordWriter,
+ RecordBuilder,
+)
from awscli.customizations.history.list import ListCommand
-
+from awscli.customizations.history.show import ShowCommand
LOG = logging.getLogger(__name__)
HISTORY_RECORDER = get_global_history_recorder()
def register_history_mode(event_handlers):
- event_handlers.register(
- 'session-initialized', attach_history_handler)
+ event_handlers.register('session-initialized', attach_history_handler)
def register_history_commands(event_handlers):
event_handlers.register(
- "building-command-table.main", add_history_commands)
+ "building-command-table.main", add_history_commands
+ )
def attach_history_handler(session, parsed_args, **kwargs):
@@ -48,11 +51,21 @@ def attach_history_handler(session, parsed_args, **kwargs):
LOG.debug('Enabling CLI history')
history_filename = os.environ.get(
- HISTORY_FILENAME_ENV_VAR, DEFAULT_HISTORY_FILENAME)
- if not os.path.isdir(os.path.dirname(history_filename)):
- os.makedirs(os.path.dirname(history_filename))
-
- connection = DatabaseConnection(history_filename)
+ HISTORY_FILENAME_ENV_VAR, DEFAULT_HISTORY_FILENAME
+ )
+ history_dir = os.path.dirname(history_filename)
+ if not os.path.isdir(history_dir):
+ os.makedirs(history_dir)
+
+ try:
+ connection = DatabaseConnection(history_filename)
+ except Exception as e:
+ LOG.debug('Unable to open history database: %s', e)
+ sys.stderr.write(
+ 'Warning: Unable to record CLI history. '
+ 'Check file permissions for %s\n' % history_filename
+ )
+ return
writer = DatabaseRecordWriter(connection)
record_builder = RecordBuilder()
db_handler = DatabaseHistoryHandler(writer, record_builder)
@@ -98,10 +111,12 @@ class HistoryCommand(BasicCommand):
)
SUBCOMMANDS = [
{'name': 'show', 'command_class': ShowCommand},
- {'name': 'list', 'command_class': ListCommand}
+ {'name': 'list', 'command_class': ListCommand},
]
def _run_main(self, parsed_args, parsed_globals):
if parsed_args.subcommand is None:
- raise ValueError("usage: aws [options] "
- "[parameters]\naws: error: too few arguments")
+ raise ValueError(
+ "usage: aws [options] "
+ "[parameters]\naws: error: too few arguments"
+ )
diff --git a/awscli/customizations/history/db.py b/awscli/customizations/history/db.py
index bdb96d1dc4bd..bd1a292da57b 100644
--- a/awscli/customizations/history/db.py
+++ b/awscli/customizations/history/db.py
@@ -10,24 +10,22 @@
# 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 uuid
-import time
-import json
import datetime
-import threading
+import json
import logging
-from awscli.compat import collections_abc
+import os
+import threading
+import time
+import uuid
from botocore.history import BaseHistoryHandler
-from awscli.compat import sqlite3
-from awscli.compat import binary_type
-
+from awscli.compat import binary_type, collections_abc, sqlite3
LOG = logging.getLogger(__name__)
-class DatabaseConnection(object):
+class DatabaseConnection:
_CREATE_TABLE = """
CREATE TABLE IF NOT EXISTS records (
id TEXT,
@@ -40,13 +38,26 @@ class DatabaseConnection(object):
_ENABLE_WAL = 'PRAGMA journal_mode=WAL'
def __init__(self, db_filename):
+ self._db_filename = db_filename
self._connection = sqlite3.connect(
- db_filename, check_same_thread=False, isolation_level=None)
+ db_filename, check_same_thread=False, isolation_level=None
+ )
+ self._set_file_permissions()
self._ensure_database_setup()
def close(self):
self._connection.close()
+ def _set_file_permissions(self):
+ for suffix in ('', '-wal', '-shm'):
+ path = self._db_filename + suffix
+ if not os.path.exists(path):
+ continue
+ try:
+ os.chmod(path, 0o600)
+ except OSError as e:
+ LOG.debug('Unable to set file permissions for %s: %s', path, e)
+
def execute(self, query, *parameters):
return self._connection.execute(query, *parameters)
@@ -92,8 +103,9 @@ def _remove_non_unicode_stings(self, obj):
if isinstance(obj, str):
obj = self._try_decode_bytes(obj)
elif isinstance(obj, dict):
- obj = dict((k, self._remove_non_unicode_stings(v)) for k, v
- in obj.items())
+ obj = dict(
+ (k, self._remove_non_unicode_stings(v)) for k, v in obj.items()
+ )
elif isinstance(obj, (list, tuple)):
obj = [self._remove_non_unicode_stings(o) for o in obj]
return obj
@@ -132,7 +144,7 @@ def default(self, obj):
return repr(obj)
-class DatabaseRecordWriter(object):
+class DatabaseRecordWriter:
_WRITE_RECORD = """
INSERT INTO records(
id, request_id, source, event_type, timestamp, payload)
@@ -152,26 +164,30 @@ def write_record(self, record):
def _create_db_record(self, record):
event_type = record['event_type']
- json_serialized_payload = json.dumps(record['payload'],
- cls=PayloadSerializer)
+ json_serialized_payload = json.dumps(
+ record['payload'], cls=PayloadSerializer
+ )
db_record = (
record['command_id'],
record.get('request_id'),
record['source'],
event_type,
record['timestamp'],
- json_serialized_payload
+ json_serialized_payload,
)
return db_record
-class DatabaseRecordReader(object):
+class DatabaseRecordReader:
_ORDERING = 'ORDER BY timestamp'
- _GET_LAST_ID_RECORDS = """
+ _GET_LAST_ID_RECORDS = (
+ """
SELECT * FROM records
WHERE id =
(SELECT id FROM records WHERE timestamp =
- (SELECT max(timestamp) FROM records)) %s;""" % _ORDERING
+ (SELECT max(timestamp) FROM records)) %s;"""
+ % _ORDERING
+ )
_GET_RECORDS_BY_ID = 'SELECT * from records where id = ? %s' % _ORDERING
_GET_ALL_RECORDS = (
'SELECT a.id AS id_a, '
@@ -218,9 +234,10 @@ def iter_all_records(self):
yield row
-class RecordBuilder(object):
+class RecordBuilder:
_REQUEST_LIFECYCLE_EVENTS = set(
- ['API_CALL', 'HTTP_REQUEST', 'HTTP_RESPONSE', 'PARSED_RESPONSE'])
+ ['API_CALL', 'HTTP_REQUEST', 'HTTP_RESPONSE', 'PARSED_RESPONSE']
+ )
_START_OF_REQUEST_LIFECYCLE_EVENT = 'API_CALL'
def __init__(self):
@@ -254,7 +271,7 @@ def build_record(self, event_type, payload, source):
'event_type': event_type,
'payload': payload,
'source': source,
- 'timestamp': int(time.time() * 1000)
+ 'timestamp': int(time.time() * 1000),
}
request_id = self._get_request_id(event_type)
if request_id:
diff --git a/awscli/customizations/history/show.py b/awscli/customizations/history/show.py
index da8bb84fec1b..771e1678e0f8 100644
--- a/awscli/customizations/history/show.py
+++ b/awscli/customizations/history/show.py
@@ -19,7 +19,6 @@
import colorama
from awscli.table import COLORAMA_KWARGS
-from awscli.compat import six
from awscli.customizations.history.commands import HistorySubcommand
from awscli.customizations.history.filters import RegexFilter
@@ -213,7 +212,7 @@ def _display_value(self, value_definition, event_record):
self._write_output(formatted_value)
def _write_output(self, content):
- if isinstance(content, six.text_type):
+ if isinstance(content, str):
content = content.encode('utf-8')
self._output.write(content)
diff --git a/awscli/customizations/logs/__init__.py b/awscli/customizations/logs/__init__.py
new file mode 100644
index 000000000000..d6672092735e
--- /dev/null
+++ b/awscli/customizations/logs/__init__.py
@@ -0,0 +1,9 @@
+from awscli.customizations.logs.startlivetail import StartLiveTailCommand
+
+
+def register_logs_commands(cli):
+ cli.register('building-command-table.logs', inject_start_live_tail_command)
+
+
+def inject_start_live_tail_command(command_table, session, **kwargs):
+ command_table['start-live-tail'] = StartLiveTailCommand(session)
\ No newline at end of file
diff --git a/awscli/customizations/logs/startlivetail.py b/awscli/customizations/logs/startlivetail.py
new file mode 100644
index 000000000000..1fccca49dfdf
--- /dev/null
+++ b/awscli/customizations/logs/startlivetail.py
@@ -0,0 +1,289 @@
+# Copyright 2024 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.
+from functools import partial
+from threading import Thread
+import contextlib
+import signal
+import sys
+import time
+
+from awscli.compat import get_stdout_text_writer
+from awscli.customizations.commands import BasicCommand
+from awscli.utils import is_a_tty, create_nested_client
+
+
+DESCRIPTION = (
+ "Starts a Live Tail streaming session for one or more log groups. "
+ "A Live Tail session provides a near real-time streaming of "
+ "log events as they are ingested into selected log groups. "
+ "A session can go on for a maximum of 3 hours.\n\n"
+ "You must have logs:StartLiveTail permission to perform this operation. "
+ "If the log events matching the filters are more than 500 events per second, "
+ "we sample the events to provide the real-time tailing experience.\n\n"
+ "If you are using CloudWatch cross-account observability, "
+ "you can use this operation in a monitoring account and start tailing on "
+ "Log Group(s) present in the linked source accounts. "
+ "For more information, see "
+ "https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html.\n\n"
+ "Live Tail sessions incur charges by session usage time, per minute. "
+ "For pricing details, please refer to "
+ "https://aws.amazon.com/cloudwatch/pricing/."
+)
+
+LIST_SCHEMA = {"type": "array", "items": {"type": "string"}}
+
+LOG_GROUP_IDENTIFIERS = {
+ "name": "log-group-identifiers",
+ "required": True,
+ "positional_arg": False,
+ "nargs": "+",
+ "schema": LIST_SCHEMA,
+ "help_text": (
+ "The Log Group Identifiers are the ARNs for the CloudWatch Logs groups to tail. "
+ "You can provide up to 10 Log Group Identifiers.\n\n"
+ "Logs can be filtered by Log Stream(s) by providing "
+ "--log-stream-names or --log-stream-name-prefixes. "
+ "If more than one Log Group is provided "
+ "--log-stream-names and --log-stream-name-prefixes is disabled. "
+ "--log-stream-names and --log-stream-name-prefixes can't be provided simultaneously.\n\n"
+ "Note - The Log Group ARN must be in the following format. "
+ "Replace REGION and ACCOUNT_ID with your Region and account ID. "
+ "``arn:aws:logs:REGION :ACCOUNT_ID :log-group:LOG_GROUP_NAME``. "
+ "A ``:*`` after the ARN is prohibited."
+ "For more information about ARN format, "
+ 'see CloudWatch Logs resources and operations.'
+ ),
+}
+
+LOG_STREAM_NAMES = {
+ "name": "log-stream-names",
+ "positional_arg": False,
+ "nargs": "+",
+ "schema": LIST_SCHEMA,
+ "help_text": (
+ "The list of stream names to filter logs by.\n\n This parameter cannot be "
+ "specified when --log-stream-name-prefixes are also specified. "
+ "This parameter cannot be specified when multiple log-group-identifiers are specified"
+ ),
+}
+
+LOG_STREAM_NAME_PREFIXES = {
+ "name": "log-stream-name-prefixes",
+ "positional_arg": False,
+ "nargs": "+",
+ "schema": LIST_SCHEMA,
+ "help_text": (
+ "The prefix to filter logs by. Only events from log streams with names beginning "
+ "with this prefix will be returned. \n\nThis parameter cannot be specified when "
+ "--log-stream-names is also specified. This parameter cannot be specified when "
+ "multiple log-group-identifiers are specified"
+ ),
+}
+
+LOG_EVENT_FILTER_PATTERN = {
+ "name": "log-event-filter-pattern",
+ "positional_arg": False,
+ "cli_type_name": "string",
+ "help_text": (
+ "The filter pattern to use. "
+ 'See Filter and Pattern Syntax '
+ "for details. If not provided, all the events are matched. "
+ "This option can be used to include or exclude log events patterns. "
+ "Additionally, when multiple filter patterns are provided, they must be encapsulated by quotes."
+ ),
+}
+
+
+def signal_handler(printer, signum, frame):
+ printer.interrupt_session = True
+
+
+@contextlib.contextmanager
+def handle_signal(printer):
+ signal_list = [signal.SIGINT, signal.SIGTERM]
+ if sys.platform != "win32":
+ signal_list.append(signal.SIGPIPE)
+ actual_signals = []
+ for user_signal in signal_list:
+ actual_signals.append(
+ signal.signal(user_signal, partial(signal_handler, printer))
+ )
+ try:
+ yield
+ finally:
+ for sig, user_signal in enumerate(signal_list):
+ signal.signal(user_signal, actual_signals[sig])
+
+
+class LiveTailSessionMetadata:
+ def __init__(self) -> None:
+ self._session_start_time = time.time()
+ self._is_sampled = False
+
+ @property
+ def session_start_time(self):
+ return self._session_start_time
+
+ @property
+ def is_sampled(self):
+ return self._is_sampled
+
+ def update_metadata(self, session_metadata):
+ self._is_sampled = session_metadata["sampled"]
+
+
+class PrintOnlyPrinter:
+ def __init__(self, output, log_events) -> None:
+ self._output = output
+ self._log_events = log_events
+ self.interrupt_session = False
+
+ def _print_log_events(self):
+ for log_event in self._log_events:
+ self._output.write(log_event + "\n")
+ self._output.flush()
+
+ self._log_events.clear()
+
+ def run(self):
+ try:
+ while True:
+ self._print_log_events()
+
+ if self.interrupt_session:
+ break
+
+ time.sleep(1)
+ except (BrokenPipeError, KeyboardInterrupt):
+ pass
+
+
+class PrintOnlyUI:
+ def __init__(self, output, log_events) -> None:
+ self._log_events = log_events
+ self._printer = PrintOnlyPrinter(output, self._log_events)
+
+ def exit(self):
+ self._printer.interrupt_session = True
+
+ def run(self):
+ with handle_signal(self._printer):
+ self._printer.run()
+
+
+class LiveTailLogEventsCollector(Thread):
+ def __init__(
+ self,
+ output,
+ ui,
+ response_stream,
+ log_events: list,
+ session_metadata: LiveTailSessionMetadata,
+ ) -> None:
+ super().__init__()
+ self._output = output
+ self._ui = ui
+ self._response_stream = response_stream
+ self._log_events = log_events
+ self._session_metadata = session_metadata
+ self._exception = None
+
+ def _collect_log_events(self):
+ try:
+ for event in self._response_stream:
+ if not "sessionUpdate" in event:
+ continue
+
+ session_update = event["sessionUpdate"]
+ self._session_metadata.update_metadata(
+ session_update["sessionMetadata"]
+ )
+ logEvents = session_update["sessionResults"]
+ for logEvent in logEvents:
+ self._log_events.append(logEvent["message"])
+ except Exception as e:
+ self._exception = e
+
+ self._ui.exit()
+
+ def stop(self):
+ if self._exception is not None:
+ self._output.write(str(self._exception) + "\n")
+ self._output.flush()
+
+ def run(self):
+ self._collect_log_events()
+
+
+class StartLiveTailCommand(BasicCommand):
+ NAME = "start-live-tail"
+ DESCRIPTION = DESCRIPTION
+ ARG_TABLE = [
+ LOG_GROUP_IDENTIFIERS,
+ LOG_STREAM_NAMES,
+ LOG_STREAM_NAME_PREFIXES,
+ LOG_EVENT_FILTER_PATTERN,
+ ]
+
+ def __init__(self, session):
+ super(StartLiveTailCommand, self).__init__(session)
+ self._output = get_stdout_text_writer()
+
+ def _get_client(self, parsed_globals):
+ return create_nested_client(
+ self._session, "logs",
+ region_name=parsed_globals.region,
+ endpoint_url=parsed_globals.endpoint_url,
+ verify=parsed_globals.verify_ssl,
+ )
+
+ def _get_start_live_tail_kwargs(self, parsed_args):
+ kwargs = {"logGroupIdentifiers": parsed_args.log_group_identifiers}
+
+ if parsed_args.log_stream_names is not None:
+ kwargs["logStreamNames"] = parsed_args.log_stream_names
+ if parsed_args.log_stream_name_prefixes is not None:
+ kwargs["logStreamNamePrefixes"] = parsed_args.log_stream_name_prefixes
+ if parsed_args.log_event_filter_pattern is not None:
+ kwargs["logEventFilterPattern"] = parsed_args.log_event_filter_pattern
+
+ return kwargs
+
+ def _is_color_allowed(self, color):
+ if color == "on":
+ return True
+ elif color == "off":
+ return False
+ return is_a_tty()
+
+ def _run_main(self, parsed_args, parsed_globals):
+ self._client = self._get_client(parsed_globals)
+
+ start_live_tail_kwargs = self._get_start_live_tail_kwargs(parsed_args)
+ response = self._client.start_live_tail(**start_live_tail_kwargs)
+
+ log_events = []
+ session_metadata = LiveTailSessionMetadata()
+
+ ui = PrintOnlyUI(self._output, log_events)
+
+ log_events_collector = LiveTailLogEventsCollector(
+ self._output, ui, response["responseStream"], log_events, session_metadata
+ )
+ log_events_collector.daemon = True
+
+ log_events_collector.start()
+ ui.run()
+
+ log_events_collector.stop()
+ sys.exit(0)
diff --git a/awscli/customizations/opsworks.py b/awscli/customizations/opsworks.py
deleted file mode 100644
index 604109cdf6c7..000000000000
--- a/awscli/customizations/opsworks.py
+++ /dev/null
@@ -1,543 +0,0 @@
-# Copyright 2014 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 datetime
-import json
-import logging
-import os
-import platform
-import re
-import shlex
-import socket
-import subprocess
-import tempfile
-import textwrap
-
-from botocore.exceptions import ClientError
-
-from awscli.compat import shlex_quote, urlopen, ensure_text_type
-from awscli.customizations.commands import BasicCommand
-from awscli.customizations.utils import create_client_from_parsed_globals
-
-
-LOG = logging.getLogger(__name__)
-
-IAM_USER_POLICY_NAME = "OpsWorks-Instance"
-IAM_USER_POLICY_TIMEOUT = datetime.timedelta(minutes=15)
-IAM_PATH = '/AWS/OpsWorks/'
-IAM_POLICY_ARN = 'arn:aws:iam::aws:policy/AWSOpsWorksInstanceRegistration'
-
-HOSTNAME_RE = re.compile(r"^(?!-)[a-z0-9-]{1,63}(?$AGENT_TMP_DIR/opsworks-agent-installer/preconfig <]',
- 'help_text': """Either the EC2 instance ID or the hostname of the
- instance or machine to be registered with OpsWorks.
- Cannot be used together with `--local`."""},
- ]
-
- def __init__(self, session):
- super(OpsWorksRegister, self).__init__(session)
- self._stack = None
- self._ec2_instance = None
- self._prov_params = None
- self._use_address = None
- self._use_hostname = None
- self._name_for_iam = None
- self.access_key = None
-
- def _create_clients(self, args, parsed_globals):
- self.iam = self._session.create_client('iam')
- self.opsworks = create_client_from_parsed_globals(
- self._session, 'opsworks', parsed_globals)
-
- def _run_main(self, args, parsed_globals):
- self._create_clients(args, parsed_globals)
-
- self.prevalidate_arguments(args)
- self.retrieve_stack(args)
- self.validate_arguments(args)
- self.determine_details(args)
- self.create_iam_entities(args)
- self.setup_target_machine(args)
-
- def prevalidate_arguments(self, args):
- """
- Validates command line arguments before doing anything else.
- """
- if not args.target and not args.local:
- raise ValueError("One of target or --local is required.")
- elif args.target and args.local:
- raise ValueError(
- "Arguments target and --local are mutually exclusive.")
-
- if args.local and platform.system() != 'Linux':
- raise ValueError(
- "Non-Linux instances are not supported by AWS OpsWorks.")
-
- if args.ssh and (args.username or args.private_key):
- raise ValueError(
- "Argument --override-ssh cannot be used together with "
- "--ssh-username or --ssh-private-key.")
-
- if args.infrastructure_class == 'ec2':
- if args.private_ip:
- raise ValueError(
- "--override-private-ip is not supported for EC2.")
- if args.public_ip:
- raise ValueError(
- "--override-public-ip is not supported for EC2.")
-
- if args.infrastructure_class == 'on-premises' and \
- args.use_instance_profile:
- raise ValueError(
- "--use-instance-profile is only supported for EC2.")
-
- if args.hostname:
- if not HOSTNAME_RE.match(args.hostname):
- raise ValueError(
- "Invalid hostname: '%s'. Hostnames must consist of "
- "letters, digits and dashes only and must not start or "
- "end with a dash." % args.hostname)
-
- def retrieve_stack(self, args):
- """
- Retrieves the stack from the API, thereby ensures that it exists.
-
- Provides `self._stack`, `self._prov_params`, `self._use_address`, and
- `self._ec2_instance`.
- """
-
- LOG.debug("Retrieving stack and provisioning parameters")
- self._stack = self.opsworks.describe_stacks(
- StackIds=[args.stack_id]
- )['Stacks'][0]
- self._prov_params = \
- self.opsworks.describe_stack_provisioning_parameters(
- StackId=self._stack['StackId']
- )
-
- if args.infrastructure_class == 'ec2' and not args.local:
- LOG.debug("Retrieving EC2 instance information")
- ec2 = self._session.create_client(
- 'ec2', region_name=self._stack['Region'])
-
- # `desc_args` are arguments for the describe_instances call,
- # whereas `conditions` is a list of lambdas for further filtering
- # on the results of the call.
- desc_args = {'Filters': []}
- conditions = []
-
- # make sure that the platforms (EC2/VPC) and VPC IDs of the stack
- # and the instance match
- if 'VpcId' in self._stack:
- desc_args['Filters'].append(
- {'Name': 'vpc-id', 'Values': [self._stack['VpcId']]}
- )
- else:
- # Cannot search for non-VPC instances directly, thus filter
- # afterwards
- conditions.append(lambda instance: 'VpcId' not in instance)
-
- # target may be an instance ID, an IP address, or a name
- if INSTANCE_ID_RE.match(args.target):
- desc_args['InstanceIds'] = [args.target]
- elif IP_ADDRESS_RE.match(args.target):
- # Cannot search for either private or public IP at the same
- # time, thus filter afterwards
- conditions.append(
- lambda instance:
- instance.get('PrivateIpAddress') == args.target or
- instance.get('PublicIpAddress') == args.target)
- # also use the given address to connect
- self._use_address = args.target
- else:
- # names are tags
- desc_args['Filters'].append(
- {'Name': 'tag:Name', 'Values': [args.target]}
- )
-
- # find all matching instances
- instances = [
- i
- for r in ec2.describe_instances(**desc_args)['Reservations']
- for i in r['Instances']
- if all(c(i) for c in conditions)
- ]
-
- if not instances:
- raise ValueError(
- "Did not find any instance matching %s." % args.target)
- elif len(instances) > 1:
- raise ValueError(
- "Found multiple instances matching %s: %s." % (
- args.target,
- ", ".join(i['InstanceId'] for i in instances)))
-
- self._ec2_instance = instances[0]
-
- def validate_arguments(self, args):
- """
- Validates command line arguments using the retrieved information.
- """
-
- if args.hostname:
- instances = self.opsworks.describe_instances(
- StackId=self._stack['StackId']
- )['Instances']
- if any(args.hostname.lower() == instance['Hostname']
- for instance in instances):
- raise ValueError(
- "Invalid hostname: '%s'. Hostnames must be unique within "
- "a stack." % args.hostname)
-
- if args.infrastructure_class == 'ec2' and args.local:
- # make sure the regions match
- region = json.loads(
- ensure_text_type(urlopen(IDENTITY_URL).read()))['region']
- if region != self._stack['Region']:
- raise ValueError(
- "The stack's and the instance's region must match.")
-
- def determine_details(self, args):
- """
- Determine details (like the address to connect to and the hostname to
- use) from the given arguments and the retrieved data.
-
- Provides `self._use_address` (if not provided already),
- `self._use_hostname` and `self._name_for_iam`.
- """
-
- # determine the address to connect to
- if not self._use_address:
- if args.local:
- pass
- elif args.infrastructure_class == 'ec2':
- if 'PublicIpAddress' in self._ec2_instance:
- self._use_address = self._ec2_instance['PublicIpAddress']
- elif 'PrivateIpAddress' in self._ec2_instance:
- LOG.warning(
- "Instance does not have a public IP address. Trying "
- "to use the private address to connect.")
- self._use_address = self._ec2_instance['PrivateIpAddress']
- else:
- # Should never happen
- raise ValueError(
- "The instance does not seem to have an IP address.")
- elif args.infrastructure_class == 'on-premises':
- self._use_address = args.target
-
- # determine the names to use
- if args.hostname:
- self._use_hostname = args.hostname
- self._name_for_iam = args.hostname
- elif args.local:
- self._use_hostname = None
- self._name_for_iam = socket.gethostname()
- else:
- self._use_hostname = None
- self._name_for_iam = args.target
-
- def create_iam_entities(self, args):
- """
- Creates an IAM group, user and corresponding credentials.
-
- Provides `self.access_key`.
- """
-
- if args.use_instance_profile:
- LOG.debug("Skipping IAM entity creation")
- self.access_key = None
- return
-
- LOG.debug("Creating the IAM group if necessary")
- group_name = "OpsWorks-%s" % clean_for_iam(self._stack['StackId'])
- try:
- self.iam.create_group(GroupName=group_name, Path=IAM_PATH)
- LOG.debug("Created IAM group %s", group_name)
- except ClientError as e:
- if e.response.get('Error', {}).get('Code') == 'EntityAlreadyExists':
- LOG.debug("IAM group %s exists, continuing", group_name)
- # group already exists, good
- pass
- else:
- raise
-
- # create the IAM user, trying alternatives if it already exists
- LOG.debug("Creating an IAM user")
- base_username = "OpsWorks-%s-%s" % (
- shorten_name(clean_for_iam(self._stack['Name']), 25),
- shorten_name(clean_for_iam(self._name_for_iam), 25)
- )
- for try_ in range(20):
- username = base_username + ("+%s" % try_ if try_ else "")
- try:
- self.iam.create_user(UserName=username, Path=IAM_PATH)
- except ClientError as e:
- if e.response.get('Error', {}).get('Code') == 'EntityAlreadyExists':
- LOG.debug(
- "IAM user %s already exists, trying another name",
- username
- )
- # user already exists, try the next one
- pass
- else:
- raise
- else:
- LOG.debug("Created IAM user %s", username)
- break
- else:
- raise ValueError("Couldn't find an unused IAM user name.")
-
- LOG.debug("Adding the user to the group and attaching a policy")
- self.iam.add_user_to_group(GroupName=group_name, UserName=username)
-
- try:
- self.iam.attach_user_policy(
- PolicyArn=IAM_POLICY_ARN,
- UserName=username
- )
- except ClientError as e:
- if e.response.get('Error', {}).get('Code') == 'AccessDenied':
- LOG.debug(
- "Unauthorized to attach policy %s to user %s. Trying "
- "to put user policy",
- IAM_POLICY_ARN,
- username
- )
- self.iam.put_user_policy(
- PolicyName=IAM_USER_POLICY_NAME,
- PolicyDocument=self._iam_policy_document(
- self._stack['Arn'], IAM_USER_POLICY_TIMEOUT),
- UserName=username
- )
- LOG.debug(
- "Put policy %s to user %s",
- IAM_USER_POLICY_NAME,
- username
- )
- else:
- raise
- else:
- LOG.debug(
- "Attached policy %s to user %s",
- IAM_POLICY_ARN,
- username
- )
-
- LOG.debug("Creating an access key")
- self.access_key = self.iam.create_access_key(
- UserName=username
- )['AccessKey']
-
- def setup_target_machine(self, args):
- """
- Setups the target machine by copying over the credentials and starting
- the installation process.
- """
-
- remote_script = REMOTE_SCRIPT % {
- 'agent_installer_url':
- self._prov_params['AgentInstallerUrl'],
- 'preconfig':
- self._to_ruby_yaml(self._pre_config_document(args)),
- 'assets_download_bucket':
- self._prov_params['Parameters']['assets_download_bucket']
- }
-
- if args.local:
- LOG.debug("Running the installer locally")
- subprocess.check_call(["/bin/sh", "-c", remote_script])
- else:
- LOG.debug("Connecting to the target machine to run the installer.")
- self.ssh(args, remote_script)
-
- def ssh(self, args, remote_script):
- """
- Runs a (sh) script on a remote machine via SSH.
- """
-
- if platform.system() == 'Windows':
- try:
- script_file = tempfile.NamedTemporaryFile("wt", delete=False)
- script_file.write(remote_script)
- script_file.close()
- if args.ssh:
- call = args.ssh
- else:
- call = 'plink'
- if args.username:
- call += ' -l "%s"' % args.username
- if args.private_key:
- call += ' -i "%s"' % args.private_key
- call += ' "%s"' % self._use_address
- call += ' -m'
- call += ' "%s"' % script_file.name
-
- subprocess.check_call(call, shell=True)
- finally:
- os.remove(script_file.name)
- else:
- if args.ssh:
- call = shlex.split(str(args.ssh))
- else:
- call = ['ssh', '-tt']
- if args.username:
- call.extend(['-l', args.username])
- if args.private_key:
- call.extend(['-i', args.private_key])
- call.append(self._use_address)
-
- remote_call = ["/bin/sh", "-c", remote_script]
- call.append(" ".join(shlex_quote(word) for word in remote_call))
- subprocess.check_call(call)
-
- def _pre_config_document(self, args):
- parameters = dict(
- stack_id=self._stack['StackId'],
- **self._prov_params["Parameters"]
- )
- if self.access_key:
- parameters['access_key_id'] = self.access_key['AccessKeyId']
- parameters['secret_access_key'] = \
- self.access_key['SecretAccessKey']
- if self._use_hostname:
- parameters['hostname'] = self._use_hostname
- if args.private_ip:
- parameters['private_ip'] = args.private_ip
- if args.public_ip:
- parameters['public_ip'] = args.public_ip
- parameters['import'] = args.infrastructure_class == 'ec2'
- LOG.debug("Using pre-config: %r", parameters)
- return parameters
-
- @staticmethod
- def _iam_policy_document(arn, timeout=None):
- statement = {
- "Action": "opsworks:RegisterInstance",
- "Effect": "Allow",
- "Resource": arn,
- }
- if timeout is not None:
- valid_until = datetime.datetime.utcnow() + timeout
- statement["Condition"] = {
- "DateLessThan": {
- "aws:CurrentTime":
- valid_until.strftime("%Y-%m-%dT%H:%M:%SZ")
- }
- }
- policy_document = {
- "Statement": [statement],
- "Version": "2012-10-17"
- }
- return json.dumps(policy_document)
-
- @staticmethod
- def _to_ruby_yaml(parameters):
- return "\n".join(":%s: %s" % (k, json.dumps(v))
- for k, v in sorted(parameters.items()))
-
-
-def clean_for_iam(name):
- """
- Cleans a name to fit IAM's naming requirements.
- """
-
- return re.sub(r'[^A-Za-z0-9+=,.@_-]+', '-', name)
-
-
-def shorten_name(name, max_length):
- """
- Shortens a name to the given number of characters.
- """
-
- if len(name) <= max_length:
- return name
- q, r = divmod(max_length - 3, 2)
- return name[:q + r] + "..." + name[-q:]
diff --git a/awscli/customizations/opsworkscm.py b/awscli/customizations/opsworkscm.py
deleted file mode 100644
index e3bad659ffa6..000000000000
--- a/awscli/customizations/opsworkscm.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2016 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.
-from awscli.customizations.utils import alias_command
-
-
-def register_alias_opsworks_cm(event_emitter):
- event_emitter.register('building-command-table.main', alias_opsworks_cm)
-
-
-def alias_opsworks_cm(command_table, **kwargs):
- alias_command(command_table, 'opsworkscm', 'opsworks-cm')
diff --git a/awscli/customizations/paginate.py b/awscli/customizations/paginate.py
index c1400c5758e3..3bae390d7b18 100644
--- a/awscli/customizations/paginate.py
+++ b/awscli/customizations/paginate.py
@@ -24,14 +24,16 @@
"""
import logging
+import sys
from functools import partial
+from awscli.customizations.utils import uni_print
from botocore import xform_name
from botocore.exceptions import DataNotFoundError, PaginationError
from botocore import model
from awscli.arguments import BaseCLIArgument
-
+from awscli.utils import resolve_v2_debug_mode
logger = logging.getLogger(__name__)
@@ -133,6 +135,9 @@ def unify_paging_params(argument_table, operation_model, event_name,
_remove_existing_paging_arguments(argument_table, paginator_config)
parsed_args_event = event_name.replace('building-argument-table.',
'operation-args-parsed.')
+ call_parameters_event = event_name.replace(
+ 'building-argument-table', 'calling-command'
+ )
shadowed_args = {}
add_paging_argument(argument_table, 'starting-token',
PageArgument('starting-token', STARTING_TOKEN_HELP,
@@ -166,6 +171,14 @@ def unify_paging_params(argument_table, operation_model, event_name,
partial(check_should_enable_pagination,
list(_get_all_cli_input_tokens(paginator_config)),
shadowed_args, argument_table))
+ session.register(
+ call_parameters_event,
+ partial(
+ check_should_enable_pagination_call_parameters,
+ session,
+ list(_get_all_input_tokens(paginator_config)),
+ ),
+ )
def add_paging_argument(argument_table, arg_name, argument, shadowed_args):
@@ -238,6 +251,18 @@ def _get_all_cli_input_tokens(pagination_config):
yield cli_name
+# Get all tokens but return them in API namespace rather than CLI namespace
+def _get_all_input_tokens(pagination_config):
+ # Get all input tokens including the limit_key
+ # if it exists.
+ tokens = _get_input_tokens(pagination_config)
+ for token_name in tokens:
+ yield token_name
+ if 'limit_key' in pagination_config:
+ key_name = pagination_config['limit_key']
+ yield key_name
+
+
def _get_input_tokens(pagination_config):
tokens = pagination_config['input_token']
if not isinstance(tokens, list):
@@ -251,6 +276,48 @@ def _get_cli_name(param_objects, token_name):
return param.cli_name.lstrip('-')
+def check_should_enable_pagination_call_parameters(
+ session,
+ input_tokens,
+ call_parameters,
+ parsed_args,
+ parsed_globals,
+ **kwargs
+):
+ """
+ Check for pagination args in the actual calling arguments passed to
+ the function.
+
+ If the user is using the --cli-input-json parameter to provide JSON
+ parameters they are all in the API naming space rather than the CLI
+ naming space and would be missed by the processing above. This function
+ gets called on the calling-command event.
+ """
+ if resolve_v2_debug_mode(parsed_globals):
+ cli_input_json_data = session.emit_first_non_none_response(
+ f"get-cli-input-json-data",
+ )
+ if cli_input_json_data is None:
+ cli_input_json_data = {}
+ pagination_params_in_input_tokens = [
+ param for param in cli_input_json_data if param in input_tokens
+ ]
+ if pagination_params_in_input_tokens:
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: In AWS CLI v2, if you specify '
+ 'pagination parameters by using a file with the '
+ '`--cli-input-json` parameter, automatic pagination will be '
+ 'turned off. This is different from v1 behavior, where '
+ 'pagination parameters specified via the `--cli-input-json` '
+ 'parameter are ignored. To retain AWS CLI v1 behavior in '
+ 'AWS CLI v2, remove all pagination parameters from the input '
+ 'JSON. See https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html'
+ '#cliv2-migration-skeleton-paging.\n',
+ out_file=sys.stderr
+ )
+
+
class PageArgument(BaseCLIArgument):
type_map = {
'string': str,
@@ -266,6 +333,11 @@ def __init__(self, name, documentation, parse_type, serialized_name):
self._parse_type = parse_type
self._required = False
+ def _emit_non_positive_max_items_warning(self):
+ uni_print(
+ "warning: Non-positive values for --max-items may result in undefined behavior.\n",
+ sys.stderr)
+
@property
def cli_name(self):
return '--' + self._name
@@ -292,6 +364,8 @@ def add_to_parser(self, parser):
def add_to_params(self, parameters, value):
if value is not None:
+ if self._serialized_name == 'MaxItems' and int(value) <= 0:
+ self._emit_non_positive_max_items_warning()
pagination_config = parameters.get('PaginationConfig', {})
pagination_config[self._serialized_name] = value
parameters['PaginationConfig'] = pagination_config
diff --git a/awscli/customizations/rds.py b/awscli/customizations/rds.py
index 5b62a79ef9c1..a3bf937252a7 100644
--- a/awscli/customizations/rds.py
+++ b/awscli/customizations/rds.py
@@ -29,6 +29,7 @@
from awscli.customizations import utils
from awscli.customizations.commands import BasicCommand
from awscli.customizations.utils import uni_print
+from awscli.utils import create_nested_client
def register_rds_modify_split(cli):
@@ -95,7 +96,8 @@ class GenerateDBAuthTokenCommand(BasicCommand):
]
def _run_main(self, parsed_args, parsed_globals):
- rds = self._session.create_client(
+ rds = create_nested_client(
+ self._session,
'rds',
region_name=parsed_globals.region,
endpoint_url=parsed_globals.endpoint_url,
diff --git a/awscli/customizations/removals.py b/awscli/customizations/removals.py
index 128a67b36319..583664d17feb 100644
--- a/awscli/customizations/removals.py
+++ b/awscli/customizations/removals.py
@@ -51,13 +51,23 @@ def register_removals(event_handler):
cmd_remover.remove(on_event='building-command-table.sagemaker-runtime',
remove_commands=['invoke-endpoint-with-response-stream'])
cmd_remover.remove(on_event='building-command-table.bedrock-runtime',
- remove_commands=['invoke-model-with-response-stream'])
+ remove_commands=['invoke-model-with-response-stream',
+ 'invoke-model-with-bidirectional-stream',
+ 'converse-stream'])
cmd_remover.remove(on_event='building-command-table.bedrock-agent-runtime',
- remove_commands=['invoke-agent'])
- cmd_remover.remove(on_event='building-command-table.logs',
- remove_commands=['start-live-tail'])
+ remove_commands=['invoke-agent',
+ 'invoke-flow',
+ 'invoke-inline-agent',
+ 'optimize-prompt',
+ 'retrieve-and-generate-stream'])
+ cmd_remover.remove(on_event='building-command-table.bedrock-agentcore',
+ remove_commands=['invoke-code-interpreter'])
cmd_remover.remove(on_event='building-command-table.qbusiness',
remove_commands=['chat'])
+ cmd_remover.remove(on_event='building-command-table.iotsitewise',
+ remove_commands=['invoke-assistant'])
+ cmd_remover.remove(on_event='building-command-table.logs',
+ remove_commands=['get-log-object'])
class CommandRemover(object):
diff --git a/awscli/customizations/s3/comparator.py b/awscli/customizations/s3/comparator.py
index efe49c63a120..bc29b438911d 100644
--- a/awscli/customizations/s3/comparator.py
+++ b/awscli/customizations/s3/comparator.py
@@ -31,7 +31,7 @@ def __init__(self, file_at_src_and_dest_sync_strategy,
def call(self, src_files, dest_files):
"""
- This function preforms the actual comparisons. The parameters it takes
+ This function performs the actual comparisons. The parameters it takes
are the generated files for both the source and the destination. The
key concept in this function is that no matter the type of where the
files are coming from, they are listed in the same order, least to
diff --git a/awscli/customizations/s3/fileformat.py b/awscli/customizations/s3/fileformat.py
index ef15fd6785af..f7452aa7af1e 100644
--- a/awscli/customizations/s3/fileformat.py
+++ b/awscli/customizations/s3/fileformat.py
@@ -73,11 +73,11 @@ def local_format(self, path, dir_op):
2) If the path of the destination exists and is a directory it
will always use the name of the source file.
3) If the destination path ends with the appropriate operating
- system seperator but is not an existing directory, the
+ system separator but is not an existing directory, the
appropriate directories will be made and the file will use the
source's name.
4) If the destination path does not end with the appropriate
- operating system seperator and is not an existing directory, the
+ operating system separator and is not an existing directory, the
appropriate directories will be created and the file name will
be of the one provided.
"""
diff --git a/awscli/customizations/s3/filegenerator.py b/awscli/customizations/s3/filegenerator.py
index ad0ab4f27c62..4571973d410c 100644
--- a/awscli/customizations/s3/filegenerator.py
+++ b/awscli/customizations/s3/filegenerator.py
@@ -21,7 +21,6 @@
from awscli.customizations.s3.utils import find_bucket_key, get_file_stat
from awscli.customizations.s3.utils import BucketLister, create_warning, \
find_dest_path_comp_key, EPOCH_TIME
-from awscli.compat import six
from awscli.compat import queue
_open = open
@@ -95,7 +94,8 @@ def __init__(self, directory, filename):
class FileStat(object):
def __init__(self, src, dest=None, compare_key=None, size=None,
last_update=None, src_type=None, dest_type=None,
- operation_name=None, response_data=None):
+ operation_name=None, response_data=None, etag=None,
+ case_conflict_submitted=None, case_conflict_key=None,):
self.src = src
self.dest = dest
self.compare_key = compare_key
@@ -105,6 +105,9 @@ def __init__(self, src, dest=None, compare_key=None, size=None,
self.dest_type = dest_type
self.operation_name = operation_name
self.response_data = response_data
+ self.etag = etag
+ self.case_conflict_submitted = case_conflict_submitted
+ self.case_conflict_key = case_conflict_key
class FileGenerator(object):
@@ -153,6 +156,7 @@ def _inject_extra_information(self, file_stat_kwargs, extra_information):
src_type = file_stat_kwargs['src_type']
file_stat_kwargs['size'] = extra_information['Size']
file_stat_kwargs['last_update'] = extra_information['LastModified']
+ file_stat_kwargs['etag'] = extra_information.get('ETag')
# S3 objects require the response data retrieved from HeadObject
# and ListObject
@@ -250,7 +254,7 @@ def should_ignore_file_with_decoding_warnings(self, dirname, filename):
happens we warn using a FileDecodingError that provides more
information into what's going on.
"""
- if not isinstance(filename, six.text_type):
+ if not isinstance(filename, str):
decoding_error = FileDecodingError(dirname, filename)
warning = create_warning(repr(filename),
decoding_error.error_message)
@@ -367,4 +371,5 @@ def _list_single_object(self, s3_path):
response['Size'] = int(response.pop('ContentLength'))
last_update = parse(response['LastModified'])
response['LastModified'] = last_update.astimezone(tzlocal())
+ response['ETag'] = response.pop('ETag', None)
return s3_path, response
diff --git a/awscli/customizations/s3/fileinfo.py b/awscli/customizations/s3/fileinfo.py
index 615be15e81f6..c77cf5803ebb 100644
--- a/awscli/customizations/s3/fileinfo.py
+++ b/awscli/customizations/s3/fileinfo.py
@@ -42,7 +42,8 @@ def __init__(self, src, dest=None, compare_key=None, size=None,
last_update=None, src_type=None, dest_type=None,
operation_name=None, client=None, parameters=None,
source_client=None, is_stream=False,
- associated_response_data=None):
+ associated_response_data=None, etag=None,
+ case_conflict_submitted=None, case_conflict_key=None,):
self.src = src
self.src_type = src_type
self.operation_name = operation_name
@@ -59,6 +60,9 @@ def __init__(self, src, dest=None, compare_key=None, size=None,
self.source_client = source_client
self.is_stream = is_stream
self.associated_response_data = associated_response_data
+ self.etag = etag
+ self.case_conflict_submitted = case_conflict_submitted
+ self.case_conflict_key = case_conflict_key
def is_glacier_compatible(self):
"""Determines if a file info object is glacier compatible
diff --git a/awscli/customizations/s3/fileinfobuilder.py b/awscli/customizations/s3/fileinfobuilder.py
index d539bbb051ef..9a34b0a5ac20 100644
--- a/awscli/customizations/s3/fileinfobuilder.py
+++ b/awscli/customizations/s3/fileinfobuilder.py
@@ -45,6 +45,13 @@ def _inject_info(self, file_base):
file_info_attr['parameters'] = self._parameters
file_info_attr['is_stream'] = self._is_stream
file_info_attr['associated_response_data'] = file_base.response_data
+ file_info_attr['etag'] = file_base.etag
+ file_info_attr['case_conflict_submitted'] = getattr(
+ file_base, 'case_conflict_submitted', None
+ )
+ file_info_attr['case_conflict_key'] = getattr(
+ file_base, 'case_conflict_key', None
+ )
# This is a bit quirky. The below conditional hinges on the --delete
# flag being set, which only occurs during a sync command. The source
diff --git a/awscli/customizations/s3/s3handler.py b/awscli/customizations/s3/s3handler.py
index 3a1cf52998fb..84c42cd729f8 100644
--- a/awscli/customizations/s3/s3handler.py
+++ b/awscli/customizations/s3/s3handler.py
@@ -39,6 +39,7 @@
from awscli.customizations.s3.utils import RequestParamsMapper
from awscli.customizations.s3.utils import StdoutBytesWriter
from awscli.customizations.s3.utils import ProvideSizeSubscriber
+from awscli.customizations.s3.utils import ProvideETagSubscriber
from awscli.customizations.s3.utils import ProvideUploadContentTypeSubscriber
from awscli.customizations.s3.utils import ProvideCopyContentTypeSubscriber
from awscli.customizations.s3.utils import ProvideLastModifiedTimeSubscriber
@@ -46,6 +47,7 @@
from awscli.customizations.s3.utils import DeleteSourceFileSubscriber
from awscli.customizations.s3.utils import DeleteSourceObjectSubscriber
from awscli.customizations.s3.utils import DeleteCopySourceObjectSubscriber
+from awscli.customizations.s3.utils import CaseConflictCleanupSubscriber
from awscli.compat import get_binary_stdin
@@ -395,12 +397,20 @@ def can_submit(self, fileinfo):
def _add_additional_subscribers(self, subscribers, fileinfo):
subscribers.append(ProvideSizeSubscriber(fileinfo.size))
+ subscribers.append(ProvideETagSubscriber(fileinfo.etag))
subscribers.append(DirectoryCreatorSubscriber())
subscribers.append(ProvideLastModifiedTimeSubscriber(
fileinfo.last_update, self._result_queue))
if self._cli_params.get('is_move', False):
subscribers.append(DeleteSourceObjectSubscriber(
fileinfo.source_client))
+ if fileinfo.case_conflict_submitted is not None:
+ subscribers.append(
+ CaseConflictCleanupSubscriber(
+ fileinfo.case_conflict_submitted,
+ fileinfo.case_conflict_key,
+ )
+ )
def _submit_transfer_request(self, fileinfo, extra_args, subscribers):
bucket, key = find_bucket_key(fileinfo.src)
@@ -431,6 +441,7 @@ def can_submit(self, fileinfo):
def _add_additional_subscribers(self, subscribers, fileinfo):
subscribers.append(ProvideSizeSubscriber(fileinfo.size))
+ subscribers.append(ProvideETagSubscriber(fileinfo.etag))
if self._should_inject_content_type():
subscribers.append(ProvideCopyContentTypeSubscriber())
if self._cli_params.get('is_move', False):
diff --git a/awscli/customizations/s3/subcommands.py b/awscli/customizations/s3/subcommands.py
index 996d103309a0..f77d7196e488 100644
--- a/awscli/customizations/s3/subcommands.py
+++ b/awscli/customizations/s3/subcommands.py
@@ -19,7 +19,6 @@
from dateutil.parser import parse
from dateutil.tz import tzlocal
-from awscli.compat import six
from awscli.compat import queue
from awscli.customizations.commands import BasicCommand
from awscli.customizations.s3.comparator import Comparator
@@ -35,9 +34,10 @@
S3PathResolver
from awscli.customizations.utils import uni_print
from awscli.customizations.s3.syncstrategy.base import MissingFileSync, \
- SizeAndLastModifiedSync, NeverSync
+ SizeAndLastModifiedSync, NeverSync, AlwaysSync
+from awscli.customizations.s3.syncstrategy.caseconflict import CaseConflictSync
from awscli.customizations.s3 import transferconfig
-
+from awscli.utils import resolve_v2_debug_mode
LOGGER = logging.getLogger(__name__)
@@ -452,6 +452,64 @@
)
}
+CHECKSUM_MODE = {
+ 'name': 'checksum-mode', 'choices': ['ENABLED'],
+ 'help_text': 'To retrieve the checksum, this mode must be enabled. If the object has a '
+ 'checksum, it will be verified.'
+}
+
+CHECKSUM_ALGORITHM = {
+ 'name': 'checksum-algorithm', 'choices': ['CRC64NVME', 'CRC32', 'SHA256', 'SHA1', 'CRC32C'],
+ 'help_text': 'Indicates the algorithm used to create the checksum for the object.'
+}
+
+BUCKET_NAME_PREFIX = {
+ 'name': 'bucket-name-prefix',
+ 'help_text': (
+ 'Limits the response to bucket names that begin with the specified '
+ 'bucket name prefix.'
+ )
+}
+
+BUCKET_REGION = {
+ 'name': 'bucket-region',
+ 'help_text': (
+ 'Limits the response to buckets that are located in the specified '
+ 'Amazon Web Services Region. The Amazon Web Services Region must be '
+ 'expressed according to the Amazon Web Services Region code, such as '
+ 'us-west-2 for the US West (Oregon) Region. For a list of the valid '
+ 'values for all of the Amazon Web Services Regions, see '
+ 'https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region'
+ )
+}
+
+CASE_CONFLICT = {
+ 'name': 'case-conflict',
+ 'choices': [
+ 'ignore',
+ 'skip',
+ 'warn',
+ 'error',
+ ],
+ 'default': 'ignore',
+ 'help_text': (
+ "Configures behavior when attempting to download multiple objects "
+ "whose keys differ only by case, which can cause undefined behavior "
+ "on case-insensitive filesystems. "
+ "This parameter only applies for commands that perform multiple S3 "
+ "to local downloads. "
+ f"See Handling case "
+ "conflicts for details. Valid values are: "
+ ""
+ "- ``error`` - Raise an error and abort downloads.
"
+ "- ``warn`` - Emit a warning and download the object.
"
+ "- ``skip`` - Skip downloading the object.
"
+ "- ``ignore`` - The default value. Ignore the conflict and "
+ "download the object.
"
+ "
"
+ ),
+ }
+
TRANSFER_ARGS = [DRYRUN, QUIET, INCLUDE, EXCLUDE, ACL,
FOLLOW_SYMLINKS, NO_FOLLOW_SYMLINKS, NO_GUESS_MIME_TYPE,
SSE, SSE_C, SSE_C_KEY, SSE_KMS_KEY_ID, SSE_C_COPY_SOURCE,
@@ -460,7 +518,7 @@
CONTENT_DISPOSITION, CONTENT_ENCODING, CONTENT_LANGUAGE,
EXPIRES, SOURCE_REGION, ONLY_SHOW_ERRORS, NO_PROGRESS,
PAGE_SIZE, IGNORE_GLACIER_WARNINGS, FORCE_GLACIER_TRANSFER,
- REQUEST_PAYER]
+ REQUEST_PAYER, CHECKSUM_MODE, CHECKSUM_ALGORITHM]
def get_client(session, region, endpoint_url, verify, config=None):
@@ -484,7 +542,8 @@ class ListCommand(S3Command):
USAGE = " or NONE"
ARG_TABLE = [{'name': 'paths', 'nargs': '?', 'default': 's3://',
'positional_arg': True, 'synopsis': USAGE}, RECURSIVE,
- PAGE_SIZE, HUMAN_READABLE, SUMMARIZE, REQUEST_PAYER]
+ PAGE_SIZE, HUMAN_READABLE, SUMMARIZE, REQUEST_PAYER,
+ BUCKET_NAME_PREFIX, BUCKET_REGION]
def _run_main(self, parsed_args, parsed_globals):
super(ListCommand, self)._run_main(parsed_args, parsed_globals)
@@ -498,7 +557,11 @@ def _run_main(self, parsed_args, parsed_globals):
path = path[5:]
bucket, key = find_bucket_key(path)
if not bucket:
- self._list_all_buckets()
+ self._list_all_buckets(
+ parsed_args.page_size,
+ parsed_args.bucket_name_prefix,
+ parsed_args.bucket_region,
+ )
elif parsed_args.dir_op:
# Then --recursive was specified.
self._list_all_objects_recursive(
@@ -562,13 +625,30 @@ def _display_page(self, response_data, use_basename=True):
uni_print(print_str)
self._at_first_page = False
- def _list_all_buckets(self):
- response_data = self.client.list_buckets()
- buckets = response_data['Buckets']
- for bucket in buckets:
- last_mod_str = self._make_last_mod_str(bucket['CreationDate'])
- print_str = last_mod_str + ' ' + bucket['Name'] + '\n'
- uni_print(print_str)
+ def _list_all_buckets(
+ self,
+ page_size=None,
+ prefix=None,
+ bucket_region=None,
+ ):
+ paginator = self.client.get_paginator('list_buckets')
+ paging_args = {
+ 'PaginationConfig': {'PageSize': page_size}
+ }
+ if prefix:
+ paging_args['Prefix'] = prefix
+ if bucket_region:
+ paging_args['BucketRegion'] = bucket_region
+
+ iterator = paginator.paginate(**paging_args)
+
+ for response_data in iterator:
+ buckets = response_data.get('Buckets', [])
+
+ for bucket in buckets:
+ last_mod_str = self._make_last_mod_str(bucket['CreationDate'])
+ print_str = last_mod_str + ' ' + bucket['Name'] + '\n'
+ uni_print(print_str)
def _list_all_objects_recursive(self, bucket, key, page_size=None,
request_payer=None):
@@ -715,6 +795,7 @@ def _run_main(self, parsed_args, parsed_globals):
cmd_params.add_verify_ssl(parsed_globals)
cmd_params.add_page_size(parsed_args)
cmd_params.add_paths(parsed_args.paths)
+ cmd_params.add_v2_debug(parsed_globals)
runtime_config = transferconfig.RuntimeConfig().build_config(
**self._session.get_scoped_config().get('s3', {}))
@@ -739,7 +820,7 @@ def _convert_path_args(self, parsed_args):
parsed_args.paths = [parsed_args.paths]
for i in range(len(parsed_args.paths)):
path = parsed_args.paths[i]
- if isinstance(path, six.binary_type):
+ if isinstance(path, bytes):
dec_path = path.decode(sys.getfilesystemencoding())
enc_path = dec_path.encode('utf-8')
new_path = enc_path.decode('utf-8')
@@ -754,7 +835,8 @@ class CpCommand(S3TransferCommand):
"or "
ARG_TABLE = [{'name': 'paths', 'nargs': 2, 'positional_arg': True,
'synopsis': USAGE}] + TRANSFER_ARGS + \
- [METADATA, METADATA_DIRECTIVE, EXPECTED_SIZE, RECURSIVE]
+ [METADATA, METADATA_DIRECTIVE, EXPECTED_SIZE, RECURSIVE,
+ CASE_CONFLICT]
class MvCommand(S3TransferCommand):
@@ -764,7 +846,8 @@ class MvCommand(S3TransferCommand):
"or "
ARG_TABLE = [{'name': 'paths', 'nargs': 2, 'positional_arg': True,
'synopsis': USAGE}] + TRANSFER_ARGS +\
- [METADATA, METADATA_DIRECTIVE, RECURSIVE, VALIDATE_SAME_S3_PATHS]
+ [METADATA, METADATA_DIRECTIVE, RECURSIVE, VALIDATE_SAME_S3_PATHS,
+ CASE_CONFLICT]
class RmCommand(S3TransferCommand):
@@ -786,7 +869,7 @@ class SyncCommand(S3TransferCommand):
" or "
ARG_TABLE = [{'name': 'paths', 'nargs': 2, 'positional_arg': True,
'synopsis': USAGE}] + TRANSFER_ARGS + \
- [METADATA, METADATA_DIRECTIVE]
+ [METADATA, METADATA_DIRECTIVE, CASE_CONFLICT]
class MbCommand(S3Command):
@@ -802,6 +885,9 @@ def _run_main(self, parsed_args, parsed_globals):
raise TypeError("%s\nError: Invalid argument type" % self.USAGE)
bucket, _ = split_s3_bucket_key(parsed_args.path)
+ if is_s3express_bucket(bucket):
+ raise ValueError("Cannot use mb command with a directory bucket.")
+
bucket_config = {'LocationConstraint': self.client.meta.region_name}
params = {'Bucket': bucket}
if self.client.meta.region_name != 'us-east-1':
@@ -948,7 +1034,16 @@ def choose_sync_strategies(self):
# Set the default strategies.
sync_strategies['file_at_src_and_dest_sync_strategy'] = \
SizeAndLastModifiedSync()
- sync_strategies['file_not_at_dest_sync_strategy'] = MissingFileSync()
+ if self._should_handle_case_conflicts():
+ sync_strategies['file_not_at_dest_sync_strategy'] = (
+ CaseConflictSync(
+ on_case_conflict=self.parameters['case_conflict']
+ )
+ )
+ else:
+ sync_strategies['file_not_at_dest_sync_strategy'] = (
+ MissingFileSync()
+ )
sync_strategies['file_not_at_src_sync_strategy'] = NeverSync()
# Determine what strategies to override if any.
@@ -1001,6 +1096,24 @@ def run(self):
result_queue = queue.Queue()
operation_name = cmd_translation[paths_type]
+ if self.parameters['v2_debug']:
+ if operation_name == 'copy':
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: In AWS CLI v2, object '
+ 'properties will be copied from the source in multipart '
+ 'copies between S3 buckets initiated via `aws s3` '
+ 'commands, resulting in additional S3 API calls to '
+ 'transfer the metadata. Note that the principal must '
+ 'have permission to call these APIs, or the command may '
+ 'fail. This is different from v1 behavior, where metadata '
+ 'is not copied. For guidance on retaining v1 behavior in '
+ 'AWS CLI v2, or for more details, see '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html'
+ '#cliv2-migration-s3-copy-metadata.\n\n',
+ out_file=sys.stderr
+ )
+
fgen_kwargs = {
'client': self._source_client, 'operation_name': operation_name,
'follow_symlinks': self.parameters['follow_symlinks'],
@@ -1064,6 +1177,12 @@ def run(self):
'filters': [create_filter(self.parameters)],
'file_info_builder': [file_info_builder],
's3_handler': [s3_transfer_handler]}
+ if self._should_handle_case_conflicts():
+ self._handle_case_conflicts(
+ command_dict,
+ rev_files,
+ rev_generator,
+ )
elif self.cmd == 'rm':
command_dict = {'setup': [files],
'file_generator': [file_generator],
@@ -1076,6 +1195,12 @@ def run(self):
'filters': [create_filter(self.parameters)],
'file_info_builder': [file_info_builder],
's3_handler': [s3_transfer_handler]}
+ if self._should_handle_case_conflicts():
+ self._handle_case_conflicts(
+ command_dict,
+ rev_files,
+ rev_generator,
+ )
files = command_dict['setup']
while self.instructions:
@@ -1141,6 +1266,74 @@ def _map_sse_c_params(self, request_parameters, paths_type):
}
)
+ def _should_handle_case_conflicts(self):
+ return (
+ self.cmd in {'sync', 'cp', 'mv'}
+ and self.parameters.get('paths_type') == 's3local'
+ and self.parameters['case_conflict'] != 'ignore'
+ and self.parameters.get('dir_op')
+ )
+
+ def _handle_case_conflicts(self, command_dict, rev_files, rev_generator):
+ # Objects are not returned in lexicographical order when
+ # operated on S3 Express directory buckets. This is required
+ # for sync operations to behave correctly, which is what
+ # recursive copies and moves fall back to so potential case
+ # conflicts can be detected and handled.
+ if not is_s3express_bucket(
+ split_s3_bucket_key(self.parameters['src'])[0]
+ ):
+ self._modify_instructions_for_case_conflicts(
+ command_dict, rev_files, rev_generator
+ )
+ return
+ # `skip` and `error` are not valid choices in this case because
+ # it's not possible to detect case conflicts.
+ if self.parameters['case_conflict'] not in {'ignore', 'warn'}:
+ raise ValueError(
+ f"`{self.parameters['case_conflict']}` is not a valid value "
+ "for `--case-conflict` when operating on S3 Express "
+ "directory buckets. Valid values: `warn`, `ignore`."
+ )
+ msg = (
+ "warning: Recursive copies/moves from an S3 Express "
+ "directory bucket to a case-insensitive local filesystem "
+ "may result in undefined behavior if there are "
+ "S3 object key names that differ only by case. To disable "
+ "this warning, set the `--case-conflict` parameter to `ignore`. "
+ f"For more information, see {CaseConflictSync.DOC_URI}."
+ )
+ uni_print(msg, sys.stderr)
+
+ def _modify_instructions_for_case_conflicts(
+ self, command_dict, rev_files, rev_generator
+ ):
+ # Command will perform recursive S3 to local downloads.
+ # Checking for potential case conflicts requires knowledge
+ # of local files. Instead of writing a separate validation
+ # mechanism for recursive downloads, we modify the instructions
+ # to mimic a sync command.
+ sync_strategies = {
+ # Local filename exists with exact case match. Always sync
+ # because it's a copy operation.
+ 'file_at_src_and_dest_sync_strategy': AlwaysSync(),
+ # Local filename either doesn't exist or differs only by case.
+ # Let `CaseConflictSync` determine which it is and handle it
+ # according to configured `--case-conflict` parameter.
+ 'file_not_at_dest_sync_strategy': CaseConflictSync(
+ on_case_conflict=self.parameters['case_conflict']
+ ),
+ # Copy is one-way so never sync if not at source.
+ 'file_not_at_src_sync_strategy': NeverSync(),
+ }
+ command_dict['setup'].append(rev_files)
+ command_dict['file_generator'].append(rev_generator)
+ command_dict['filters'].append(create_filter(self.parameters))
+ command_dict['comparator'] = [Comparator(**sync_strategies)]
+ self.instructions.insert(
+ self.instructions.index('file_info_builder'), 'comparator'
+ )
+
class CommandParameters(object):
"""
@@ -1232,6 +1425,17 @@ def _validate_path_args(self):
if self._should_emit_validate_s3_paths_warning():
self._emit_validate_s3_paths_warning()
+ if params.get('checksum_algorithm'):
+ self._raise_if_paths_type_incorrect_for_param(
+ CHECKSUM_ALGORITHM['name'],
+ params['paths_type'],
+ ['locals3', 's3s3'])
+ if params.get('checksum_mode'):
+ self._raise_if_paths_type_incorrect_for_param(
+ CHECKSUM_MODE['name'],
+ params['paths_type'],
+ ['s3local'])
+
# If the user provided local path does not exist, hard fail because
# we know that we will not be able to upload the file.
if 'locals3' == params['paths_type'] and not params['is_stream']:
@@ -1315,6 +1519,19 @@ def _raise_if_mv_same_paths(self, src, dest):
f"{self.parameters['src']} - {self.parameters['dest']}"
)
+ def _raise_if_paths_type_incorrect_for_param(self, param, paths_type, allowed_paths):
+ if paths_type not in allowed_paths:
+ expected_usage_map = {
+ 'locals3': ' ',
+ 's3s3': ' ',
+ 's3local': ' ',
+ 's3': ''
+ }
+ raise ValueError(
+ f"Expected {param} parameter to be used with one of following path formats: "
+ f"{', '.join([expected_usage_map[path] for path in allowed_paths])}. Instead, received {expected_usage_map[paths_type]}."
+ )
+
def _normalize_s3_trailing_slash(self, paths):
for i, path in enumerate(paths):
if path.startswith('s3://'):
@@ -1368,6 +1585,9 @@ def add_verify_ssl(self, parsed_globals):
def add_page_size(self, parsed_args):
self.parameters['page_size'] = getattr(parsed_args, 'page_size', None)
+ def add_v2_debug(self, parsed_globals):
+ self.parameters['v2_debug'] = resolve_v2_debug_mode(parsed_globals)
+
def _validate_sse_c_args(self):
self._validate_sse_c_arg()
self._validate_sse_c_arg('sse_c_copy_source')
diff --git a/awscli/customizations/s3/syncstrategy/base.py b/awscli/customizations/s3/syncstrategy/base.py
index 3d6a3a663ae2..a3d653849d75 100644
--- a/awscli/customizations/s3/syncstrategy/base.py
+++ b/awscli/customizations/s3/syncstrategy/base.py
@@ -254,3 +254,12 @@ def determine_should_sync(self, src_file, dest_file):
LOG.debug("syncing: %s -> %s, file does not exist at destination",
src_file.src, src_file.dest)
return True
+
+
+class AlwaysSync(BaseSync):
+ def __init__(self, sync_type='file_at_src_and_dest'):
+ super(AlwaysSync, self).__init__(sync_type)
+
+ def determine_should_sync(self, src_file, dest_file):
+ LOG.debug(f"syncing: {src_file.src} -> {src_file.dest}")
+ return True
diff --git a/awscli/customizations/s3/syncstrategy/caseconflict.py b/awscli/customizations/s3/syncstrategy/caseconflict.py
new file mode 100644
index 000000000000..8c8520a0c793
--- /dev/null
+++ b/awscli/customizations/s3/syncstrategy/caseconflict.py
@@ -0,0 +1,96 @@
+# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+# SPDX-License-Identifier: Apache-2.0
+import logging
+import os
+import sys
+
+from awscli.customizations.s3.syncstrategy.base import BaseSync
+from awscli.customizations.utils import uni_print
+
+LOG = logging.getLogger(__name__)
+
+
+class CaseConflictException(Exception):
+ pass
+
+
+class CaseConflictSync(BaseSync):
+ DOC_URI = (
+ "https://docs.aws.amazon.com/cli/v1/topic/"
+ "s3-case-insensitivity.html"
+ )
+
+ def __init__(
+ self,
+ sync_type='file_not_at_dest',
+ on_case_conflict='ignore',
+ submitted=None,
+ ):
+ super().__init__(sync_type)
+ self._on_case_conflict = on_case_conflict
+ if submitted is None:
+ submitted = set()
+ self._submitted = submitted
+
+ @property
+ def submitted(self):
+ return self._submitted
+
+ def determine_should_sync(self, src_file, dest_file):
+ # `src_file.compare_key` and `dest_file.compare_key` are not equal.
+ # This could mean that they're completely different or differ
+ # only by case. eg, `/tmp/a` and `/tmp/b` versus `/tmp/a` and `/tmp/A`.
+ # If the source file's destination already exists, that means it
+ # differs only by case and the conflict needs to be handled.
+ should_sync = True
+ # Normalize compare key for case sensitivity.
+ lower_compare_key = src_file.compare_key.lower()
+ if lower_compare_key in self._submitted or os.path.exists(
+ src_file.dest
+ ):
+ handler = getattr(self, f"_handle_{self._on_case_conflict}")
+ should_sync = handler(src_file)
+ if should_sync:
+ LOG.debug(f"syncing: {src_file.src} -> {src_file.dest}")
+ self._submitted.add(lower_compare_key)
+ # Set properties so that a subscriber can be created
+ # that removes the key from the set after download finishes.
+ src_file.case_conflict_submitted = self._submitted
+ src_file.case_conflict_key = lower_compare_key
+ return should_sync
+
+ @staticmethod
+ def _handle_ignore(src_file):
+ return True
+
+ @staticmethod
+ def _handle_skip(src_file):
+ msg = (
+ f"warning: Skipping {src_file.src} -> {src_file.dest} "
+ "because a file whose name differs only by case either exists "
+ "or is being downloaded.\n"
+ )
+ uni_print(msg, sys.stderr)
+ return False
+
+ @staticmethod
+ def _handle_warn(src_file):
+ msg = (
+ f"warning: Downloading {src_file.src} -> {src_file.dest} "
+ "despite a file whose name differs only by case either existing "
+ "or being downloaded. This behavior is not defined on "
+ "case-insensitive filesystems and may result in overwriting "
+ "existing files or race conditions between concurrent downloads. "
+ f"For more information, see {CaseConflictSync.DOC_URI}.\n"
+ )
+ uni_print(msg, sys.stderr)
+ return True
+
+ @staticmethod
+ def _handle_error(src_file):
+ msg = (
+ f"Failed to download {src_file.src} -> {src_file.dest} "
+ "because a file whose name differs only by case either exists "
+ "or is being downloaded."
+ )
+ raise CaseConflictException(msg)
diff --git a/awscli/customizations/s3/transferconfig.py b/awscli/customizations/s3/transferconfig.py
index d65d21d5bca5..b533aee4eced 100644
--- a/awscli/customizations/s3/transferconfig.py
+++ b/awscli/customizations/s3/transferconfig.py
@@ -13,7 +13,6 @@
from s3transfer.manager import TransferConfig
from awscli.customizations.s3.utils import human_readable_to_bytes
-from awscli.compat import six
# If the user does not specify any overrides,
# these are the default values we use for the s3 transfer
# commands.
@@ -64,13 +63,13 @@ def build_config(self, **kwargs):
def _convert_human_readable_sizes(self, runtime_config):
for attr in self.HUMAN_READABLE_SIZES:
value = runtime_config.get(attr)
- if value is not None and not isinstance(value, six.integer_types):
+ if value is not None and not isinstance(value, int):
runtime_config[attr] = human_readable_to_bytes(value)
def _convert_human_readable_rates(self, runtime_config):
for attr in self.HUMAN_READABLE_RATES:
value = runtime_config.get(attr)
- if value is not None and not isinstance(value, six.integer_types):
+ if value is not None and not isinstance(value, int):
if not value.endswith('B/s'):
raise InvalidConfigError(
'Invalid rate: %s. The value must be expressed '
diff --git a/awscli/customizations/s3/utils.py b/awscli/customizations/s3/utils.py
index 8dda7331c4c0..b31e3f1a1443 100644
--- a/awscli/customizations/s3/utils.py
+++ b/awscli/customizations/s3/utils.py
@@ -32,7 +32,7 @@
EPOCH_TIME = datetime(1970, 1, 1, tzinfo=tzutc())
# Maximum object size allowed in S3.
# See: http://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html
-MAX_UPLOAD_SIZE = 5 * (1024 ** 4)
+MAX_UPLOAD_SIZE = 5 * (1024 ** 3) * 10000
SIZE_SUFFIX = {
'kb': 1024,
'mb': 1024 ** 2,
@@ -474,12 +474,14 @@ def map_put_object_params(cls, request_params, cli_params):
cls._set_sse_request_params(request_params, cli_params)
cls._set_sse_c_request_params(request_params, cli_params)
cls._set_request_payer_param(request_params, cli_params)
+ cls._set_checksum_algorithm_param(request_params, cli_params)
@classmethod
def map_get_object_params(cls, request_params, cli_params):
"""Map CLI params to GetObject request params"""
cls._set_sse_c_request_params(request_params, cli_params)
cls._set_request_payer_param(request_params, cli_params)
+ cls._set_checksum_mode_param(request_params, cli_params)
@classmethod
def map_copy_object_params(cls, request_params, cli_params):
@@ -492,6 +494,7 @@ def map_copy_object_params(cls, request_params, cli_params):
cls._set_sse_c_and_copy_source_request_params(
request_params, cli_params)
cls._set_request_payer_param(request_params, cli_params)
+ cls._set_checksum_algorithm_param(request_params, cli_params)
@classmethod
def map_head_object_params(cls, request_params, cli_params):
@@ -534,6 +537,16 @@ def _set_request_payer_param(cls, request_params, cli_params):
if cli_params.get('request_payer'):
request_params['RequestPayer'] = cli_params['request_payer']
+ @classmethod
+ def _set_checksum_mode_param(cls, request_params, cli_params):
+ if cli_params.get('checksum_mode'):
+ request_params['ChecksumMode'] = cli_params['checksum_mode']
+
+ @classmethod
+ def _set_checksum_algorithm_param(cls, request_params, cli_params):
+ if cli_params.get('checksum_algorithm'):
+ request_params['ChecksumAlgorithm'] = cli_params['checksum_algorithm']
+
@classmethod
def _set_general_object_params(cls, request_params, cli_params):
# Parameters set in this method should be applicable to the following
@@ -636,6 +649,17 @@ def on_queued(self, future, **kwargs):
future.meta.provide_transfer_size(self.size)
+class ProvideETagSubscriber(BaseSubscriber):
+ """
+ A subscriber which provides the object ETag before it's queued.
+ """
+ def __init__(self, etag):
+ self.etag = etag
+
+ def on_queued(self, future, **kwargs):
+ future.meta.provide_object_etag(self.etag)
+
+
# TODO: Eventually port this down to the BaseSubscriber or a new subscriber
# class in s3transfer. The functionality is very convenient but may need
# some further design decisions to make it a feature in s3transfer.
@@ -666,6 +690,20 @@ def _on_failure(self, future, e):
pass
+class CaseConflictCleanupSubscriber(BaseSubscriber):
+ """
+ A subscriber which removes object compare key from case conflict set
+ when download finishes.
+ """
+
+ def __init__(self, submitted, case_conflict_key):
+ self._submitted = submitted
+ self._key = case_conflict_key
+
+ def on_done(self, future, **kwargs):
+ self._submitted.discard(self._key)
+
+
class DeleteSourceSubscriber(OnDoneFilteredSubscriber):
"""A subscriber which deletes the source of the transfer."""
def _on_success(self, future):
diff --git a/awscli/customizations/s3events.py b/awscli/customizations/s3events.py
index 5895a7e7c77c..a0522cb31f06 100644
--- a/awscli/customizations/s3events.py
+++ b/awscli/customizations/s3events.py
@@ -31,6 +31,12 @@ def register_event_stream_arg(event_handlers):
)
+def register_document_expires_string(event_handlers):
+ event_handlers.register_last(
+ 'doc-output.s3api',
+ document_expires_string
+ )
+
def add_event_stream_output_arg(argument_table, operation_model,
session, **kwargs):
argument_table['outfile'] = S3SelectStreamOutputArgument(
@@ -56,6 +62,30 @@ def replace_event_stream_docs(help_command, **kwargs):
doc.write("This command generates no output. The selected "
"object content is written to the specified outfile.\n")
+def document_expires_string(help_command, **kwargs):
+ doc = help_command.doc
+ expires_field_idx = doc.find_last_write('Expires -> (timestamp)')
+
+ if expires_field_idx is None:
+ return
+
+ deprecation_note_and_expires_string = [
+ f'\n\n\n{" " * doc.style.indentation * doc.style.indent_width}',
+ '.. note::',
+ f'\n\n\n{" " * (doc.style.indentation + 1) * doc.style.indent_width}',
+ 'This member has been deprecated. Please use `ExpiresString` instead.\n',
+ f'\n\n{" " * doc.style.indentation * doc.style.indent_width}',
+ f'\n\n{" " * doc.style.indentation * doc.style.indent_width}',
+ 'ExpiresString -> (string)\n\n',
+ '\tThe raw, unparsed value of the ``Expires`` field.',
+ f'\n\n{" " * doc.style.indentation * doc.style.indent_width}'
+ ]
+
+ for idx, write in enumerate(deprecation_note_and_expires_string):
+ # We add 4 to the index of the expires field name because each
+ # field in the output section consists of exactly 4 elements.
+ doc.insert_write(expires_field_idx + idx + 4, write)
+
class S3SelectStreamOutputArgument(CustomArgument):
_DOCUMENT_AS_REQUIRED = True
diff --git a/awscli/customizations/s3uploader.py b/awscli/customizations/s3uploader.py
index e640b94ba55a..5e277c50b536 100644
--- a/awscli/customizations/s3uploader.py
+++ b/awscli/customizations/s3uploader.py
@@ -11,7 +11,6 @@
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
-import hashlib
import logging
import threading
import os
@@ -19,6 +18,7 @@
import botocore
import botocore.exceptions
+from botocore.compat import get_md5
from s3transfer.manager import TransferManager
from s3transfer.subscribers import BaseSubscriber
@@ -27,6 +27,16 @@
LOG = logging.getLogger(__name__)
+def _get_checksum():
+ hashlib_params = {"usedforsecurity": False}
+ try:
+ checksum = get_md5(**hashlib_params)
+ except botocore.exceptions.MD5UnavailableError:
+ import hashlib
+ checksum = hashlib.sha256(**hashlib_params)
+ return checksum
+
+
class NoSuchBucketError(Exception):
def __init__(self, **kwargs):
msg = self.fmt.format(**kwargs)
@@ -81,7 +91,7 @@ def upload(self, file_name, remote_path):
"""
Uploads given file to S3
:param file_name: Path to the file that will be uploaded
- :param remote_path: be uploaded
+ :param remote_path: Path where the file will be uploaded
:return: VersionId of the latest upload
"""
@@ -128,7 +138,7 @@ def upload(self, file_name, remote_path):
def upload_with_dedup(self, file_name, extension=None):
"""
- Makes and returns name of the S3 object based on the file's MD5 sum
+ Makes and returns name of the S3 object based on the file's checksum
:param file_name: file to upload
:param extension: String of file extension to append to the object
@@ -140,8 +150,8 @@ def upload_with_dedup(self, file_name, extension=None):
# and re-upload only if necessary. So the template points to same file
# in multiple places, this will upload only once
- filemd5 = self.file_checksum(file_name)
- remote_path = filemd5
+ file_checksum = self.file_checksum(file_name)
+ remote_path = file_checksum
if extension:
remote_path = remote_path + "." + extension
@@ -172,7 +182,7 @@ def make_url(self, obj_path):
def file_checksum(self, file_name):
with open(file_name, "rb") as file_handle:
- md5 = hashlib.md5()
+ checksum = _get_checksum()
# Read file in chunks of 4096 bytes
block_size = 4096
@@ -182,13 +192,13 @@ def file_checksum(self, file_name):
buf = file_handle.read(block_size)
while len(buf) > 0:
- md5.update(buf)
+ checksum.update(buf)
buf = file_handle.read(block_size)
# Restore file cursor's position
file_handle.seek(curpos)
- return md5.hexdigest()
+ return checksum.hexdigest()
def to_path_style_s3_url(self, key, version=None):
"""
diff --git a/awscli/customizations/scalarparse.py b/awscli/customizations/scalarparse.py
index 20266f41b91e..ca958c52cd88 100644
--- a/awscli/customizations/scalarparse.py
+++ b/awscli/customizations/scalarparse.py
@@ -27,9 +27,14 @@
in the future.
"""
+import sys
+
from botocore.utils import parse_timestamp
from botocore.exceptions import ProfileNotFound
+from awscli.customizations.utils import uni_print
+from awscli.utils import resolve_v2_debug_mode
+
def register_scalar_parser(event_handlers):
event_handlers.register_first(
@@ -44,12 +49,20 @@ def iso_format(value):
return parse_timestamp(value).isoformat()
-def add_timestamp_parser(session):
+def add_timestamp_parser(session, v2_debug=False):
factory = session.get_component('response_parser_factory')
+ print_v2_debug_warnings = v2_debug
try:
timestamp_format = session.get_scoped_config().get(
'cli_timestamp_format',
- 'none')
+ None)
+ if timestamp_format is not None:
+ # We do not want to print v2 debug warnings if the user explicitly
+ # configured the cli_timestamp_format, they would not be
+ # broken in that case.
+ print_v2_debug_warnings = False
+ else:
+ timestamp_format = 'wire'
except ProfileNotFound:
# If a --profile is provided that does not exist, loading
# a value from get_scoped_config will crash the CLI.
@@ -57,23 +70,49 @@ def add_timestamp_parser(session):
# the session-initialized event, which happens before a
# profile can be created, even if the command would have
# successfully created a profile. Instead of crashing here
- # on a ProfileNotFound the CLI should just use 'none'.
- timestamp_format = 'none'
- if timestamp_format == 'none':
+ # on a ProfileNotFound the CLI should just use 'wire'.
+ timestamp_format = 'wire'
+ # We also support 'none' for backwards compatibility reasons, though we
+ # document 'wire' instead.
+ if timestamp_format == 'wire' or timestamp_format == 'none':
# For backwards compatibility reasons, we replace botocore's timestamp
# parser (which parses to a datetime.datetime object) with the
# identity function which prints the date exactly the same as it comes
# across the wire.
- timestamp_parser = identity
+ encountered_timestamp = False
+ def identity_with_warning(x):
+ # To prevent printing the same warning for each timestamp in the
+ # response, we utilize a reference to a nonlocal variable to track
+ # if we have already printed the warning.
+ nonlocal encountered_timestamp
+ if not encountered_timestamp:
+ encountered_timestamp = True
+ uni_print(
+ '\nAWS CLI v2 UPGRADE WARNING: In AWS CLI v2, all '
+ 'timestamp response values are returned in the ISO 8601 '
+ 'format. This is different from v1 behavior, where the '
+ 'timestamps are returned as they appear in the service '
+ 'API response. To retain AWS CLI v1 behavior in AWS CLI '
+ 'v2, set the configuration variable '
+ '`cli_timestamp_format` to `wire`. See '
+ 'https://docs.aws.amazon.com/cli/latest/userguide/'
+ 'cliv2-migration-changes.html'
+ '#cliv2-migration-timestamp.\n',
+ out_file=sys.stderr
+ )
+ return identity(x)
+
+ timestamp_parser = identity_with_warning \
+ if print_v2_debug_warnings else identity
elif timestamp_format == 'iso8601':
timestamp_parser = iso_format
else:
raise ValueError('Unknown cli_timestamp_format value: %s, valid values'
- ' are "none" or "iso8601"' % timestamp_format)
+ ' are "none", "wire" or "iso8601"' % timestamp_format)
factory.set_parser_defaults(timestamp_parser=timestamp_parser)
-def add_scalar_parsers(session, **kwargs):
+def add_scalar_parsers(session, parsed_args=None, **kwargs):
factory = session.get_component('response_parser_factory')
factory.set_parser_defaults(blob_parser=identity)
- add_timestamp_parser(session)
+ add_timestamp_parser(session, resolve_v2_debug_mode(parsed_args))
diff --git a/awscli/customizations/sessionmanager.py b/awscli/customizations/sessionmanager.py
index 92a8f8ffbe8a..cfbffe22a298 100644
--- a/awscli/customizations/sessionmanager.py
+++ b/awscli/customizations/sessionmanager.py
@@ -104,11 +104,12 @@ def invoke(self, service_name, operation_name, parameters,
response = client.start_session(**parameters)
session_id = response['SessionId']
region_name = client.meta.region_name
- # profile_name is used to passed on to session manager plugin
+ # Profile_name is used to passed on to session manager plugin
# to fetch same profile credentials to make an api call in the plugin.
- # If no profile is passed then pass on empty string
- profile_name = self._session.profile \
- if self._session.profile is not None else ''
+ # If --profile flag is configured, pass it to Session Manager plugin.
+ # If not, set empty string.
+ profile_name = parsed_globals.profile \
+ if parsed_globals.profile is not None else ''
endpoint_url = client.meta.endpoint_url
ssm_env_name = self.DEFAULT_SSM_ENV_NAME
diff --git a/awscli/customizations/socialmessaging.py b/awscli/customizations/socialmessaging.py
new file mode 100644
index 000000000000..d872fed05c3b
--- /dev/null
+++ b/awscli/customizations/socialmessaging.py
@@ -0,0 +1,28 @@
+# Copyright 2025 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.
+from awscli.customizations.utils import make_hidden_command_alias
+
+
+def register_alias_socialmessaging_command(event_emitter):
+ event_emitter.register(
+ 'building-command-table.socialmessaging',
+ alias_socialmessaging_command
+ )
+
+
+def alias_socialmessaging_command(command_table, **kwargs):
+ make_hidden_command_alias(
+ command_table,
+ existing_name='delete-whatsapp-message-media',
+ alias_name='delete-whatsapp-media-message',
+ )
diff --git a/awscli/customizations/utils.py b/awscli/customizations/utils.py
index 216960702a86..c5055418c4c3 100644
--- a/awscli/customizations/utils.py
+++ b/awscli/customizations/utils.py
@@ -18,6 +18,7 @@
import sys
from botocore.exceptions import ClientError
+from awscli.utils import create_nested_client
def rename_argument(argument_table, existing_name, new_name):
@@ -172,7 +173,7 @@ def create_client_from_parsed_globals(session, service_name, parsed_globals,
client_args['verify'] = parsed_globals.verify_ssl
if overrides:
client_args.update(overrides)
- return session.create_client(service_name, **client_args)
+ return create_nested_client(session, service_name, **client_args)
def uni_print(statement, out_file=None):
diff --git a/awscli/customizations/waiters.py b/awscli/customizations/waiters.py
index f36eff85284e..1ea632cfd2af 100644
--- a/awscli/customizations/waiters.py
+++ b/awscli/customizations/waiters.py
@@ -16,6 +16,7 @@
from awscli.clidriver import ServiceOperation
from awscli.customizations.commands import BasicCommand, BasicHelp, \
BasicDocHandler
+from awscli.utils import create_nested_client
def register_add_waiters(cli):
@@ -200,8 +201,8 @@ def __init__(self, session, waiter_name):
self._waiter_name = waiter_name
def invoke(self, service_name, operation_name, parameters, parsed_globals):
- client = self._session.create_client(
- service_name, region_name=parsed_globals.region,
+ client = create_nested_client(
+ self._session, service_name, region_name=parsed_globals.region,
endpoint_url=parsed_globals.endpoint_url,
verify=parsed_globals.verify_ssl)
waiter = client.get_waiter(xform_name(self._waiter_name))
diff --git a/awscli/data/cli.json b/awscli/data/cli.json
index 9e4a91795d7a..25687399d05c 100644
--- a/awscli/data/cli.json
+++ b/awscli/data/cli.json
@@ -17,7 +17,7 @@
},
"no-paginate": {
"action": "store_false",
- "help": "Disable automatic pagination.
",
+ "help": "Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.
",
"dest": "paginate"
},
"output": {
@@ -64,6 +64,11 @@
"dest": "connect_timeout",
"type": "int",
"help": "The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.
"
+ },
+ "v2-debug": {
+ "action": "store_true",
+ "dest": "v2_debug",
+ "help": "Enable AWS CLI v2 migration assistance. Prints warnings if the command would face a breaking change after swapping AWS CLI v1 for AWS CLI v2 in the current environment. Prints one warning for each breaking change detected.
"
}
}
}
diff --git a/awscli/errorhandler.py b/awscli/errorhandler.py
index 20f38bac640e..0984cf40aa64 100644
--- a/awscli/errorhandler.py
+++ b/awscli/errorhandler.py
@@ -16,16 +16,27 @@
class BaseOperationError(Exception):
- MSG_TEMPLATE = ("A {error_type} error ({error_code}) occurred "
- "when calling the {operation_name} operation: "
- "{error_message}")
+ MSG_TEMPLATE = (
+ "A {error_type} error ({error_code}) occurred "
+ "when calling the {operation_name} operation: "
+ "{error_message}"
+ )
- def __init__(self, error_code, error_message, error_type, operation_name,
- http_status_code):
+ def __init__(
+ self,
+ error_code,
+ error_message,
+ error_type,
+ operation_name,
+ http_status_code,
+ ):
msg = self.MSG_TEMPLATE.format(
- error_code=error_code, error_message=error_message,
- error_type=error_type, operation_name=operation_name)
- super(BaseOperationError, self).__init__(msg)
+ error_code=error_code,
+ error_message=error_message,
+ error_type=error_type,
+ operation_name=operation_name,
+ )
+ super().__init__(msg)
self.error_code = error_code
self.error_message = error_message
self.error_type = error_type
@@ -41,7 +52,7 @@ class ServerError(BaseOperationError):
pass
-class ErrorHandler(object):
+class ErrorHandler:
"""
This class is responsible for handling any HTTP errors that occur
when a service operation is called. It is registered for the
@@ -59,15 +70,21 @@ def __call__(self, http_response, parsed, model, **kwargs):
if http_response.status_code >= 500:
error_type = 'server'
error_class = ServerError
- elif http_response.status_code >= 400 or http_response.status_code == 301:
+ elif (
+ http_response.status_code >= 400
+ or http_response.status_code == 301
+ ):
error_type = 'client'
error_class = ClientError
if error_class is not None:
code, message = self._get_error_code_and_message(parsed)
raise error_class(
- error_code=code, error_message=message,
- error_type=error_type, operation_name=model.name,
- http_status_code=http_response.status_code)
+ error_code=code,
+ error_message=message,
+ error_type=error_type,
+ operation_name=model.name,
+ http_status_code=http_response.status_code,
+ )
def _get_error_code_and_message(self, response):
code = 'Unknown'
diff --git a/awscli/examples/accessanalyzer/check-access-not-granted.rst b/awscli/examples/accessanalyzer/check-access-not-granted.rst
index 559fd63e30fd..06eb1924c8b3 100644
--- a/awscli/examples/accessanalyzer/check-access-not-granted.rst
+++ b/awscli/examples/accessanalyzer/check-access-not-granted.rst
@@ -19,8 +19,8 @@ Contents of ``myfile.json``::
"s3:ListBucket"
],
"Resource": [
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
+ "arn:aws:s3:::amzn-s3-demo-bucket",
+ "arn:aws:s3:::amzn-s3-demo-bucket/*"
]
}
]
@@ -30,7 +30,7 @@ Output::
{
"result": "PASS",
- "message": "The policy document does not grant access to perform the listed actions."
+ "message": "The policy document does not grant access to perform one or more of the listed actions."
}
For more information, see `Previewing access with IAM Access Analyzer APIs `__ in the *AWS IAM User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/accessanalyzer/check-no-new-access.rst b/awscli/examples/accessanalyzer/check-no-new-access.rst
index d87d7085370f..2f339afaa0ee 100644
--- a/awscli/examples/accessanalyzer/check-no-new-access.rst
+++ b/awscli/examples/accessanalyzer/check-no-new-access.rst
@@ -19,8 +19,8 @@ Contents of ``existing-policy.json``::
"s3:ListBucket"
],
"Resource": [
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
+ "arn:aws:s3:::amzn-s3-demo-bucket",
+ "arn:aws:s3:::amzn-s3-demo-bucket/*"
]
}
]
@@ -39,8 +39,8 @@ Contents of ``new-policy.json``::
"s3:ListBucket"
],
"Resource": [
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
+ "arn:aws:s3:::amzn-s3-demo-bucket",
+ "arn:aws:s3:::amzn-s3-demo-bucket/*"
]
}
]
diff --git a/awscli/examples/accessanalyzer/check-no-public-access.rst b/awscli/examples/accessanalyzer/check-no-public-access.rst
new file mode 100644
index 000000000000..bcba8b657f69
--- /dev/null
+++ b/awscli/examples/accessanalyzer/check-no-public-access.rst
@@ -0,0 +1,32 @@
+**To check whether a resource policy can grant public access to the specified resource type**
+
+The following ``check-no-public-access`` example checks whether a resource policy can grant public access to the specified resource type. ::
+
+ aws accessanalyzer check-no-public-access \
+ --policy-document file://check-no-public-access-myfile.json \
+ --resource-type AWS::S3::Bucket
+
+Contents of ``myfile.json``::
+
+ {
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Sid": "CheckNoPublicAccess",
+ "Effect": "Allow",
+ "Principal": { "AWS": "arn:aws:iam::111122223333:user/JohnDoe" },
+ "Action": [
+ "s3:GetObject"
+ ]
+ }
+ ]
+ }
+
+Output::
+
+ {
+ "result": "PASS",
+ "message": "The resource policy does not grant public access for the given resource type."
+ }
+
+For more information, see `Previewing access with IAM Access Analyzer APIs `__ in the *AWS IAM User Guide*.
diff --git a/awscli/examples/accessanalyzer/create-access-preview.rst b/awscli/examples/accessanalyzer/create-access-preview.rst
index 0a9c93bb6f0c..2a12685763af 100644
--- a/awscli/examples/accessanalyzer/create-access-preview.rst
+++ b/awscli/examples/accessanalyzer/create-access-preview.rst
@@ -9,9 +9,9 @@ The following ``create-access-preview`` example creates an access preview that a
Contents of ``myfile.json``::
{
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET": {
+ "arn:aws:s3:::amzn-s3-demo-bucket": {
"s3Bucket": {
- "bucketPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\"]},\"Action\":[\"s3:PutObject\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*\"}]}",
+ "bucketPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\"]},\"Action\":[\"s3:PutObject\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/*\"}]}",
"bucketPublicAccessBlock": {
"ignorePublicAcls": true,
"restrictPublicBuckets": true
diff --git a/awscli/examples/accessanalyzer/get-access-preview.rst b/awscli/examples/accessanalyzer/get-access-preview.rst
index 6ce66cfe0623..519f4bbff485 100644
--- a/awscli/examples/accessanalyzer/get-access-preview.rst
+++ b/awscli/examples/accessanalyzer/get-access-preview.rst
@@ -13,9 +13,9 @@ Output::
"id": "3c65eb13-6ef9-4629-8919-a32043619e6b",
"analyzerArn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account",
"configurations": {
- "arn:aws:s3:::DOC-EXAMPLE-BUCKET": {
+ "arn:aws:s3:::amzn-s3-demo-bucket": {
"s3Bucket": {
- "bucketPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\"]},\"Action\":[\"s3:PutObject\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*\"}]}",
+ "bucketPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\"]},\"Action\":[\"s3:PutObject\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/*\"}]}",
"bucketAclGrants": [
{
"permission": "READ",
diff --git a/awscli/examples/accessanalyzer/get-analyzed-resource.rst b/awscli/examples/accessanalyzer/get-analyzed-resource.rst
index 50f3eb9092ac..b05ac7fffab9 100644
--- a/awscli/examples/accessanalyzer/get-analyzed-resource.rst
+++ b/awscli/examples/accessanalyzer/get-analyzed-resource.rst
@@ -4,7 +4,7 @@ The following ``get-analyzed-resource`` example retrieves information about a re
aws accessanalyzer get-analyzed-resource \
--analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \
- --resource-arn arn:aws:s3:::DOC-EXAMPLE-BUCKET
+ --resource-arn arn:aws:s3:::amzn-s3-demo-bucket
Output::
@@ -12,7 +12,7 @@ Output::
"resource": {
"analyzedAt": "2024-02-15T18:01:53.002000+00:00",
"isPublic": false,
- "resourceArn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
+ "resourceArn": "arn:aws:s3:::amzn-s3-demo-bucket",
"resourceOwnerAccount": "111122223333",
"resourceType": "AWS::S3::Bucket"
}
diff --git a/awscli/examples/accessanalyzer/list-access-preview-findings.rst b/awscli/examples/accessanalyzer/list-access-preview-findings.rst
index cc814303985c..23383c510767 100644
--- a/awscli/examples/accessanalyzer/list-access-preview-findings.rst
+++ b/awscli/examples/accessanalyzer/list-access-preview-findings.rst
@@ -20,7 +20,7 @@ Output::
"s3:PutObjectAcl"
],
"condition": {},
- "resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
+ "resource": "arn:aws:s3:::amzn-s3-demo-bucket",
"isPublic": false,
"resourceType": "AWS::S3::Bucket",
"createdAt": "2024-02-17T00:18:46+00:00",
diff --git a/awscli/examples/accessanalyzer/list-analyzers.rst b/awscli/examples/accessanalyzer/list-analyzers.rst
index b2c68ea8134c..95b595c7e420 100644
--- a/awscli/examples/accessanalyzer/list-analyzers.rst
+++ b/awscli/examples/accessanalyzer/list-analyzers.rst
@@ -21,7 +21,7 @@ Output::
{
"arn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-organization",
"createdAt": "2020-04-25T07:43:28+00:00",
- "lastResourceAnalyzed": "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
+ "lastResourceAnalyzed": "arn:aws:s3:::amzn-s3-demo-bucket",
"lastResourceAnalyzedAt": "2024-02-15T21:51:56.517000+00:00",
"name": "ConsoleAnalyzer-organization",
"status": "ACTIVE",
diff --git a/awscli/examples/apigateway/create-domain-name-access-association.rst b/awscli/examples/apigateway/create-domain-name-access-association.rst
new file mode 100644
index 000000000000..6f09062431a7
--- /dev/null
+++ b/awscli/examples/apigateway/create-domain-name-access-association.rst
@@ -0,0 +1,19 @@
+**To create a domain name access association**
+
+The following ``create-domain-name-access-association`` example creates a domain name access association between a private custom domain name and VPC endpoint. ::
+
+ aws apigateway create-domain-name-access-association \
+ --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/my.private.domain.tld+abcd1234 \
+ --access-association-source vpce-abcd1234efg \
+ --access-association-source-type VPCE
+
+Output::
+
+ {
+ "domainNameAccessAssociationArn": "arn:aws:apigateway:us-west-2:012345678910:/domainnameaccessassociations/domainname/my.private.domain.tld/vpcesource/vpce-abcd1234efg
+ "accessAssociationSource": "vpce-abcd1234efg",
+ "accessAssociationSourceType": "VPCE",
+ "domainNameArn" : "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
+ }
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/create-domain-name.rst b/awscli/examples/apigateway/create-domain-name.rst
index 96f62d02f541..9970cbf30c25 100644
--- a/awscli/examples/apigateway/create-domain-name.rst
+++ b/awscli/examples/apigateway/create-domain-name.rst
@@ -1,5 +1,89 @@
-**To create the custom domain name**
+**Example 1: To create a public custom domain name**
-Command::
+The following ``create-domain-name`` example creates a public custom domain name. ::
- aws apigateway create-domain-name --domain-name 'my.domain.tld' --certificate-name 'my.domain.tld cert' --certificate-arn 'arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3'
+ aws apigateway create-domain-name \
+ --domain-name 'my.domain.tld' \
+ --certificate-name 'my.domain.tld cert'\
+ --certificate-arn 'arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3'
+
+Output::
+
+ {
+ "domainName": "my.domain.tld",
+ "certificateName": "my.domain.tld cert",
+ "certificateArn": "arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3",
+ "certificateUploadDate": "2024-10-08T11:29:49-07:00",
+ "distributionDomainName": "abcd1234.cloudfront.net",
+ "distributionHostedZoneId": "Z2FDTNDATAQYW2",
+ "endpointConfiguration": {
+ "types": [
+ "EDGE"
+ ]
+ },
+ "domainNameStatus": "AVAILABLE",
+ "securityPolicy": "TLS_1_2"
+ }
+
+For more information, see `Custom domain name for public REST APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
+
+**Example 2: To create a private custom domain name**
+
+The following ``create-domain-name`` example creates a private custom domain name. ::
+
+ aws apigateway create-domain-name \
+ --domain-name 'my.private.domain.tld' \
+ --certificate-name 'my.domain.tld cert' \
+ --certificate-arn 'arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3' \
+ --endpoint-configuration '{"types": ["PRIVATE"]}' \
+ --security-policy 'TLS_1_2' \
+ --policy file://policy.json
+
+Contents of ``policy.json``::
+
+ {
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Principal": "*",
+ "Action": "execute-api:Invoke",
+ "Resource": [
+ "execute-api:/*"
+ ]
+ },
+ {
+ "Effect": "Deny",
+ "Principal": "*",
+ "Action": "execute-api:Invoke",
+ "Resource": [
+ "execute-api:/*"
+ ],
+ "Condition" : {
+ "StringNotEquals": {
+ "aws:SourceVpce": "vpce-abcd1234efg"
+ }
+ }
+ }
+ ]
+ }
+
+Output::
+
+ {
+ "domainName": "my.private.domain.tld",
+ "domainNameId": "abcd1234",
+ "domainNameArn": "arn:aws:apigateway:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234",
+ "certificateArn": "arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3",
+ "certificateUploadDate": "2024-09-10T10:31:20-07:00",
+ "endpointConfiguration": {
+ "types": [
+ "PRIVATE"
+ ]
+ },
+ "domainNameStatus": "AVAILABLE",
+ "securityPolicy": "TLS_1_2",
+ "policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpc\":\"vpc-1a2b3c4d\"}}}]}"
+ }
+
+For more information, see `Custom domain name for public REST APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/delete-domain-name-access-association.rst b/awscli/examples/apigateway/delete-domain-name-access-association.rst
new file mode 100644
index 000000000000..a958eff6dd5b
--- /dev/null
+++ b/awscli/examples/apigateway/delete-domain-name-access-association.rst
@@ -0,0 +1,10 @@
+**To delete a domain name access association**
+
+The following ``delete-domain-name-access-association`` example deletes a domain name access association between a private custom domain name and VPC endpoint. ::
+
+ aws apigateway delete-domain-name-access-association \
+ --domain-name-access-association-arn arn:aws:apigateway:us-west-2:012345678910:/domainnameaccessassociations/domainname/my.private.domain.tld/vpcesource/vpce-abcd1234efg
+
+This command produces no output.
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/flush-stage-cache.rst b/awscli/examples/apigateway/flush-stage-cache.rst
index 3fdae72763f1..57bd049418c6 100644
--- a/awscli/examples/apigateway/flush-stage-cache.rst
+++ b/awscli/examples/apigateway/flush-stage-cache.rst
@@ -1,5 +1,11 @@
**To flush the cache for an API's stage**
-Command::
+The following ``flush-stage-cache`` example flushes the cache of a stage. ::
- aws apigateway flush-stage-cache --rest-api-id 1234123412 --stage-name dev
+ aws apigateway flush-stage-cache \
+ --rest-api-id 1234123412 \
+ --stage-name dev
+
+This command produces no output.
+
+For more information, see `Flush the API stage cache in API Gateway `_ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/get-domain-name-access-associations.rst b/awscli/examples/apigateway/get-domain-name-access-associations.rst
new file mode 100644
index 000000000000..a0954fc9f7e8
--- /dev/null
+++ b/awscli/examples/apigateway/get-domain-name-access-associations.rst
@@ -0,0 +1,42 @@
+**Example 1: To list all domain name access associations**
+
+The following ``get-domain-name-access-associations`` example lists all domain name access associations. ::
+
+ aws apigateway get-domain-name-access-associations
+
+Output::
+
+ {
+ "items": [
+ {
+ "domainNameAccessAssociationArn": "arn:aws:apigateway:us-west-2:012345678910:/domainnameaccessassociations/domainname/my.private.domain.tld/vpcesource/vpce-abcd1234efg
+ "accessAssociationSource": "vpce-abcd1234efg",
+ "accessAssociationSourceType": "VPCE",
+ "domainNameArn" : "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
+ }
+ ]
+ }
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
+
+**Example 2: To list all domain name access associations owned by this AWS account**
+
+The following ``get-domain-name-access-associations`` example lists all the domain name access associations owned by the current AWS account. ::
+
+ aws apigateway get-domain-name-access-associations \
+ --resource-owner SELF
+
+Output::
+
+ {
+ "items": [
+ {
+ "domainNameAccessAssociationArn": "arn:aws:apigateway:us-west-2:012345678910:/domainnameaccessassociations/domainname/my.private.domain.tld/vpcesource/vpce-abcd1234efg
+ "accessAssociationSource": "vpce-abcd1234efg",
+ "accessAssociationSourceType": "VPCE",
+ "domainNameArn" : "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
+ }
+ ]
+ }
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/get-domain-name.rst b/awscli/examples/apigateway/get-domain-name.rst
index ac87fd04f646..0a53f006c23a 100644
--- a/awscli/examples/apigateway/get-domain-name.rst
+++ b/awscli/examples/apigateway/get-domain-name.rst
@@ -1,14 +1,45 @@
-**To get information about a custom domain name**
+**Example 1: To get information about a public custom domain name**
-Command::
+The following ``get-domain-name`` example gets information about a public custom domain name. ::
- aws apigateway get-domain-name --domain-name api.domain.tld
+ aws apigateway get-domain-name \
+ --domain-name api.domain.tld
Output::
- {
- "domainName": "api.domain.tld",
- "distributionDomainName": "d1a2f3a4c5o6d.cloudfront.net",
- "certificateName": "uploadedCertificate",
- "certificateUploadDate": 1462565487
- }
+ {
+ "domainName": "api.domain.tld",
+ "distributionDomainName": "d1a2f3a4c5o6d.cloudfront.net",
+ "certificateName": "uploadedCertificate",
+ "certificateUploadDate": 1462565487
+ }
+
+For more information, see `Custom domain name for public REST APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
+
+**Example 2: To get information about a private custom domain name**
+
+The following ``get-domain-name`` example gets information about a private custom domain name. ::
+
+ aws apigateway get-domain-name \
+ --domain-name api.private.domain.tld \
+ --domain-name-id abcd1234
+
+Output::
+
+ {
+ "domainName": "my.private.domain.tld",
+ "domainNameId": "abcd1234",
+ "domainNameArn": "arn:aws:apigateway:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234",
+ "certificateArn": "arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3",
+ "certificateUploadDate": "2024-09-10T10:31:20-07:00",
+ "endpointConfiguration": {
+ "types": [
+ "PRIVATE"
+ ]
+ },
+ "domainNameStatus": "AVAILABLE",
+ "securityPolicy": "TLS_1_2",
+ "policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpc\":\"vpc-1a2b3c4d\"}}}]}"
+ }
+
+For more information, see `Custom domain name for public REST APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/get-domain-names.rst b/awscli/examples/apigateway/get-domain-names.rst
index b3d2b4a33e2f..fe6444fe6820 100644
--- a/awscli/examples/apigateway/get-domain-names.rst
+++ b/awscli/examples/apigateway/get-domain-names.rst
@@ -1,18 +1,86 @@
-**To get a list of custom domain names**
+**Example 1: To get a list of custom domain names**
-Command::
+The following ``get-domain-names`` command gets a list of domain names. ::
- aws apigateway get-domain-names
+ aws apigateway get-domain-names
Output::
- {
- "items": [
- {
- "distributionDomainName": "d9511k3l09bkd.cloudfront.net",
- "certificateUploadDate": 1452812505,
- "certificateName": "my_custom_domain-certificate",
- "domainName": "subdomain.domain.tld"
- }
- ]
- }
+ {
+ "items": [
+ {
+ "distributionDomainName": "d9511k3l09bkd.cloudfront.net",
+ "certificateUploadDate": 1452812505,
+ "certificateName": "my_custom_domain-certificate",
+ "domainName": "subdomain.domain.tld"
+ }
+ ]
+ }
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
+
+**Example 2: To get a list of custom domain names owned by this AWS account**
+
+The following ``get-domain-names`` command gets a list of domain names owned by this AWS account. ::
+
+ aws apigateway get-domain-names \
+ --resource-owner SELF
+
+Output::
+
+ {
+ "items": [
+ {
+ "domainName": "my.domain.tld",
+ "domainNameArn": "arn:aws:apigateway:us-east-1::/domainnames/my.private.domain.tld",
+ "certificateUploadDate": "2024-08-15T17:02:55-07:00",
+ "regionalDomainName": "d-abcd1234.execute-api.us-east-1.amazonaws.com",
+ "regionalHostedZoneId": "Z1UJRXOUMOOFQ8",
+ "regionalCertificateArn": "arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3",
+ "endpointConfiguration": {
+ "types": [
+ "REGIONAL"
+ ]
+ },
+ "domainNameStatus": "AVAILABLE",
+ "securityPolicy": "TLS_1_2"
+ },
+ {
+ "domainName": "my.private.domain.tld",
+ "domainNameId": "abcd1234",
+ "domainNameArn": "arn:aws:apigateway:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234",
+ "certificateArn": "arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3",
+ "certificateUploadDate": "2024-11-26T11:44:40-08:00",
+ "endpointConfiguration": {
+ "types": [
+ "PRIVATE"
+ ]
+ },
+ "domainNameStatus": "AVAILABLE",
+ "securityPolicy": "TLS_1_2"
+ }
+ ]
+ }
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
+
+**Example 3: To get a list of custom domain names owned by other AWS accounts that you can create a domain name access association with.**
+
+The following ``get-domain-names`` command gets a list of domain names owned by other AWS accounts that you have access to create a domain name access association with. ::
+
+ aws apigateway get-domain-names \
+ --resource-owner OTHER_ACCOUNTS
+
+Output::
+
+ {
+ "items": [
+ {
+ "domainName": "my.private.domain.tld",
+ "domainNameId": "abcd1234",
+ "domainNameArn": "arn:aws:apigateway:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234"
+ }
+ ]
+ }
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/apigateway/get-export.rst b/awscli/examples/apigateway/get-export.rst
index 557424024d41..1b329726f8c2 100644
--- a/awscli/examples/apigateway/get-export.rst
+++ b/awscli/examples/apigateway/get-export.rst
@@ -4,7 +4,7 @@ Command::
aws apigateway get-export --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger /path/to/filename.json
-**To get the JSON Swagger template + API Gateway Extentions for a stage**
+**To get the JSON Swagger template + API Gateway Extensions for a stage**
Command::
diff --git a/awscli/examples/apigateway/reject-domain-name-access-association.rst b/awscli/examples/apigateway/reject-domain-name-access-association.rst
new file mode 100644
index 000000000000..2c8b3f983ea8
--- /dev/null
+++ b/awscli/examples/apigateway/reject-domain-name-access-association.rst
@@ -0,0 +1,11 @@
+**To reject a domain name access association**
+
+The following ``reject-domain-name-access-association`` example rejects a domain name access association between a private custom domain name and VPC endpoint. ::
+
+ aws apigateway reject-domain-name-access-association \
+ --domain-name-access-association-arn arn:aws:apigateway:us-west-2:012345678910:/domainnameaccessassociations/domainname/my.private.domain.tld/vpcesource/vpce-abcd1234efg \
+ --domain-name-arn arn:aws:apigateway:us-east-1:012345678910:/domainnames/my.private.domain.tld+abcd1234
+
+This command produces no output.
+
+For more information, see `Custom domain names for private APIs in API Gateway `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigateway/update-vpc-link.rst b/awscli/examples/apigateway/update-vpc-link.rst
new file mode 100644
index 000000000000..19c86490b815
--- /dev/null
+++ b/awscli/examples/apigateway/update-vpc-link.rst
@@ -0,0 +1,47 @@
+**Example 1: To update an existing VPC link name**
+
+The following ``update-vpc-link`` example updates the name of the specified VPC link. ::
+
+ aws apigateway update-vpc-link \
+ --vpc-link-id ab3de6 \
+ --patch-operations op=replace,path=/name,value=my-vpc-link
+
+Output::
+
+ {
+ "id": "ab3de6",
+ "name": "my-vpc-link",
+ "targetArns": [
+ "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-lb/12a456s89aaa12345"
+ ],
+ "status": "AVAILABLE",
+ "statusMessage": "Your vpc link is ready for use",
+ "tags": {}
+ }
+
+For more information, see `Updating existing VPC link `__ in the *AWS CLI Command Reference*.
+
+
+**Example 2: To update an existing VPC link name and description**
+
+The following ``update-vpc-link`` example updates name of the specified VPC link. ::
+
+ aws apigateway update-vpc-link \
+ --vpc-link-id ab3de6 \
+ --patch-operations op=replace,path=/name,value=my-vpc-link op=replace,path=/description,value="My custom description"
+
+Output::
+
+ {
+ "id": "ab3de6",
+ "name": "my-vpc-link",
+ "description": "My custom description",
+ "targetArns": [
+ "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-lb/12a456s89aaa12345"
+ ],
+ "status": "AVAILABLE",
+ "statusMessage": "Your vpc link is ready for use",
+ "tags": {}
+ }
+
+For more information, see `Updating existing VPC link `__ in the *AWS CLI Command Reference*.
diff --git a/awscli/examples/apigatewayv2/create-routing-rule.rst b/awscli/examples/apigatewayv2/create-routing-rule.rst
new file mode 100644
index 000000000000..c333827f979d
--- /dev/null
+++ b/awscli/examples/apigatewayv2/create-routing-rule.rst
@@ -0,0 +1,52 @@
+**To create a routing rule**
+
+The following ``create-routing-rule`` example creates a routing rule with a priority of ``50``. ::
+
+ aws apigatewayv2 create-routing-rule \
+ --domain-name 'regional.example.com' \
+ --priority 50 \
+ --conditions '[ \
+ { \
+ "MatchBasePaths": { \
+ "AnyOf": [ \
+ "PetStoreShopper" \
+ ] \
+ } \
+ } \
+ ]' \
+ --actions '[ \
+ { \
+ "InvokeApi": { \
+ "ApiId": "abcd1234", \
+ "Stage": "prod" \
+ } \
+ } \
+ ]'
+
+Output::
+
+ {
+ "Actions": [
+ {
+ "InvokeApi": {
+ "ApiId": "abcd1234",
+ "Stage": "prod",
+ "StripBasePath": false
+ }
+ }
+ ],
+ "Conditions": [
+ {
+ "MatchBasePaths": {
+ "AnyOf": [
+ "PetStoreShopper"
+ ]
+ }
+ }
+ ],
+ "Priority": 50,
+ "RoutingRuleArn": "arn:aws:apigateway:us-east-2:123456789012:/domainnames/regional.example.com/routingrules/aaa111",
+ "RoutingRuleId": "aaa111"
+ }
+
+For more information, see `Routing rules to connect API stages to a custom domain name for REST APIs `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/apigatewayv2/delete-access-log-settings.rst b/awscli/examples/apigatewayv2/delete-access-log-settings.rst
index de19c1d281c3..f6f897078a61 100644
--- a/awscli/examples/apigatewayv2/delete-access-log-settings.rst
+++ b/awscli/examples/apigatewayv2/delete-access-log-settings.rst
@@ -1,11 +1,11 @@
-**To disable access logging for an API**
-
-The following ``delete-access-log-settings`` example deletes the access log settings for the ``$default`` stage of an API. To disable access logging for a stage, delete its access log settings. ::
-
- aws apigatewayv2 delete-access-log-settings \
- --api-id a1b2c3d4 \
- --stage-name '$default'
-
-This command produces no output.
-
-For more information, see `Configuring logging for an HTTP API `__ in the *Amazon API Gateway Developer Guide*.
+**To disable access logging for an API**
+
+The following ``delete-access-log-settings`` example deletes the access log settings for the ``$default`` stage of an API. To disable access logging for a stage, delete its access log settings. ::
+
+ aws apigatewayv2 delete-access-log-settings \
+ --api-id a1b2c3d4 \
+ --stage-name '$default'
+
+This command produces no output.
+
+For more information, see `Configuring logging for an HTTP API `__ in the *Amazon API Gateway Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/apigatewayv2/delete-routing-rule.rst b/awscli/examples/apigatewayv2/delete-routing-rule.rst
new file mode 100644
index 000000000000..cb1ef1ffd88f
--- /dev/null
+++ b/awscli/examples/apigatewayv2/delete-routing-rule.rst
@@ -0,0 +1,11 @@
+**To delete a routing rule**
+
+The following ``delete-routing-rule`` example deletes a routing rule for a custom domain name. ::
+
+ aws apigatewayv2 delete-routing-rule \
+ --domain-name 'regional.example.com' \
+ --routing-rule-id aaa111
+
+This command produces no output.
+
+For more information, see `Routing rules to connect API stages to a custom domain name for REST APIs `__ in the *Amazon API Gateway Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/apigatewayv2/get-api-mapping.rst b/awscli/examples/apigatewayv2/get-api-mapping.rst
index 46ac4f368d4a..16b5b3372cc2 100644
--- a/awscli/examples/apigatewayv2/get-api-mapping.rst
+++ b/awscli/examples/apigatewayv2/get-api-mapping.rst
@@ -1,6 +1,6 @@
**To get information about an API mapping for a custom domain name**
-The following ``get-api-mapping`` example displays infomation about an API mapping for the ``api.example.com`` custom domain name. ::
+The following ``get-api-mapping`` example displays information about an API mapping for the ``api.example.com`` custom domain name. ::
aws apigatewayv2 get-api-mapping \
--api-mapping-id a1b2c3 \
diff --git a/awscli/examples/apigatewayv2/get-routing-rule.rst b/awscli/examples/apigatewayv2/get-routing-rule.rst
new file mode 100644
index 000000000000..03b1f3edbbdc
--- /dev/null
+++ b/awscli/examples/apigatewayv2/get-routing-rule.rst
@@ -0,0 +1,35 @@
+**To get a routing rule**
+
+The following ``get-routing-rule`` example gets a routing rule for a domain name. ::
+
+ aws apigatewayv2 get-routing-rule \
+ --domain-name 'regional.example.com' \
+ --routing-rule-id aaa111
+
+Output::
+
+ {
+ "Actions": [
+ {
+ "InvokeApi": {
+ "ApiId": "abcd1234",
+ "Stage": "prod",
+ "StripBasePath": false
+ }
+ }
+ ],
+ "Conditions": [
+ {
+ "MatchBasePaths": {
+ "AnyOf": [
+ "PetStoreShopper"
+ ]
+ }
+ }
+ ],
+ "Priority": 50,
+ "RoutingRuleArn": "arn:aws:apigateway:us-east-2:123456789012:/domainnames/regional.example.com/routingrules/aaa111",
+ "RoutingRuleId": "aaa111"
+ }
+
+For more information, see `Routing rules to connect API stages to a custom domain name for REST APIs `__ in the *Amazon API Gateway Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/apigatewayv2/list-routing-rules.rst b/awscli/examples/apigatewayv2/list-routing-rules.rst
new file mode 100644
index 000000000000..3cd9c707be69
--- /dev/null
+++ b/awscli/examples/apigatewayv2/list-routing-rules.rst
@@ -0,0 +1,38 @@
+**To list routing rules**
+
+The following ``list-routing-rules`` example lists the routing rules for a domain name. ::
+
+ aws apigatewayv2 list-routing-rules \
+ --domain-name 'regional.example.com'
+
+Output::
+
+ {
+ "RoutingRules": [
+ {
+ "Actions": [
+ {
+ "InvokeApi": {
+ "ApiId": "abcd1234",
+ "Stage": "prod",
+ "StripBasePath": false
+ }
+ }
+ ],
+ "Conditions": [
+ {
+ "MatchBasePaths": {
+ "AnyOf": [
+ "PetStoreShopper"
+ ]
+ }
+ }
+ ],
+ "Priority": 150,
+ "RoutingRuleArn": "arn:aws:apigateway:us-east-1:123456789012:/domainnames/regional.example.com/routingrules/aaa111",
+ "RoutingRuleId": "aaa111"
+ }
+ ]
+ }
+
+For more information, see `Routing rules to connect API stages to a custom domain name for REST APIs `__ in the *Amazon API Gateway Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/apigatewayv2/put-routing-rule.rst b/awscli/examples/apigatewayv2/put-routing-rule.rst
new file mode 100644
index 000000000000..c65634c4eb3d
--- /dev/null
+++ b/awscli/examples/apigatewayv2/put-routing-rule.rst
@@ -0,0 +1,52 @@
+**To update a routing rule**
+
+The following ``put-routing-rule`` example updates the priority of a routing rule. ::
+
+ aws apigatewayv2 put-routing-rule \
+ --domain-name 'regional.example.com' \
+ --priority 150 \
+ --conditions '[ \
+ { \
+ "MatchBasePaths": { \
+ "AnyOf": [ \
+ "PetStoreShopper" \
+ ] \
+ } \
+ } \
+ ]' \
+ --actions '[ \
+ { \
+ "InvokeApi": { \
+ "ApiId": "abcd1234", \
+ "Stage": "prod" \
+ } \
+ } \
+ ]'
+
+Output::
+
+ {
+ "Actions": [
+ {
+ "InvokeApi": {
+ "ApiId": "abcd1234",
+ "Stage": "prod",
+ "StripBasePath": false
+ }
+ }
+ ],
+ "Conditions": [
+ {
+ "MatchBasePaths": {
+ "AnyOf": [
+ "PetStoreShopper"
+ ]
+ }
+ }
+ ],
+ "Priority": 150,
+ "RoutingRuleArn": "arn:aws:apigateway:us-east-2:123456789012:/domainnames/regional.example.com/routingrules/aaa111",
+ "RoutingRuleId": "aaa111"
+ }
+
+For more information, see `Routing rules to connect API stages to a custom domain name for REST APIs `__ in the *Amazon API Gateway Developer Guide*.
diff --git a/awscli/examples/appconfig/get-hosted-configuration-version.rst b/awscli/examples/appconfig/get-hosted-configuration-version.rst
index 2200b1245d03..051acae0425b 100644
--- a/awscli/examples/appconfig/get-hosted-configuration-version.rst
+++ b/awscli/examples/appconfig/get-hosted-configuration-version.rst
@@ -1,4 +1,4 @@
-**To retreive hosted configuration details**
+**To retrieve hosted configuration details**
The following ``get-hosted-configuration-version`` example retrieves the configuration details of the AWS AppConfig hosted configuration. ::
diff --git a/awscli/examples/application-autoscaling/delete-scheduled-action.rst b/awscli/examples/application-autoscaling/delete-scheduled-action.rst
index 6f3aacaf7120..874e43bc28a4 100644
--- a/awscli/examples/application-autoscaling/delete-scheduled-action.rst
+++ b/awscli/examples/application-autoscaling/delete-scheduled-action.rst
@@ -1,6 +1,6 @@
**To delete a scheduled action**
-The follwing ``delete-scheduled-action`` example deletes the specified scheduled action from the specified Amazon AppStream 2.0 fleet::
+The following ``delete-scheduled-action`` example deletes the specified scheduled action from the specified Amazon AppStream 2.0 fleet::
aws application-autoscaling delete-scheduled-action \
--service-namespace appstream \
diff --git a/awscli/examples/application-signals/batch-get-service-level-objective-budget-report.rst b/awscli/examples/application-signals/batch-get-service-level-objective-budget-report.rst
new file mode 100644
index 000000000000..92768a110176
--- /dev/null
+++ b/awscli/examples/application-signals/batch-get-service-level-objective-budget-report.rst
@@ -0,0 +1,99 @@
+**To retrieve one or more service level objective (SLO) budget reports.**
+
+The following ``batch-get-service-level-objective-budget-report`` example retrieves one or more service level objective (SLO) budget reports. ::
+
+ aws application-signals batch-get-service-level-objective-budget-report \
+ --timestamp 1735059869 \
+ --slo-ids "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName1" "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName2"
+
+Output::
+
+ {
+ "Timestamp": "2024-12-24T22:34:29+05:30",
+ "Reports": [{
+ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName1",
+ "Name": "Your SLO Name",
+ "EvaluationType": "PeriodBased",
+ "BudgetStatus": "OK",
+ "Attainment": 100.0,
+ "TotalBudgetSeconds": 6048,
+ "BudgetSecondsRemaining": 6048,
+ "Sli": {
+ "SliMetric": {
+ "MetricDataQueries": [{
+ "Id": "m1",
+ "MetricStat": {
+ "Metric": {
+ "Namespace": "AWS/EC2",
+ "MetricName": "CPUUtilization",
+ "Dimensions": [{
+ "Name": "InstanceId",
+ "Value": "i-0e098765432522"
+ }]
+ },
+ "Period": 60,
+ "Stat": "Average"
+ },
+ "ReturnData": true
+ }]
+ },
+ "MetricThreshold": 200.0,
+ "ComparisonOperator": "LessThanOrEqualTo"
+ },
+ "Goal": {
+ "Interval": {
+ "RollingInterval": {
+ "DurationUnit": "DAY",
+ "Duration": 7
+ }
+ },
+ "AttainmentGoal": 99.0,
+ "WarningThreshold": 50.0
+ }
+ },
+ {
+ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName2",
+ "Name": "test",
+ "EvaluationType": "PeriodBased",
+ "BudgetStatus": "BREACHED",
+ "Attainment": 97.39583275,
+ "TotalBudgetSeconds": 86,
+ "BudgetSecondsRemaining": -2154,
+ "Sli": {
+ "SliMetric": {
+ "MetricDataQueries": [{
+ "Id": "cwMetric",
+ "MetricStat": {
+ "Metric": {
+ "Namespace": "AWS/EC2",
+ "MetricName": "CPUUtilization",
+ "Dimensions": [{
+ "Name": "InstanceId",
+ "Value": "i-0e12345678922"
+ }]
+ },
+ "Period": 300,
+ "Stat": "Average"
+ },
+ "ReturnData": true
+ }]
+ },
+ "MetricThreshold": 5.0,
+ "ComparisonOperator": "GreaterThan"
+ },
+ "Goal": {
+ "Interval": {
+ "RollingInterval": {
+ "DurationUnit": "DAY",
+ "Duration": 1
+ }
+ },
+ "AttainmentGoal": 99.9,
+ "WarningThreshold": 30.0
+ }
+ }
+ ],
+ "Errors": []
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/create-service-level-objective.rst b/awscli/examples/application-signals/create-service-level-objective.rst
new file mode 100644
index 000000000000..bb6aed94cee0
--- /dev/null
+++ b/awscli/examples/application-signals/create-service-level-objective.rst
@@ -0,0 +1,88 @@
+**To create a service level objective (SLO)**
+
+The following ``create-service-level-objective`` example creates a service level objective (SLO), which can help you ensure that your critical business operations are meeting customer expectations. ::
+
+ aws application-signals create-service-level-objective \
+ --name "SLOName" \
+ --description "Description of your SLO" \
+ --sli-config file://sli-config.json
+
+Contents of ``sli-config.json``::
+
+ {
+ "SliMetricConfig": {
+ "MetricDataQueries": [
+ {
+ "Id": "m1",
+ "MetricStat": {
+ "Metric": {
+ "Namespace": "AWS/EC2",
+ "MetricName": "CPUUtilization",
+ "Dimensions": [
+ {
+ "Name": "InstanceId",
+ "Value": "i-0e5a1234561522"
+ }
+ ]
+ },
+ "Period": 60,
+ "Stat": "Average"
+ },
+ "ReturnData": true
+ }
+ ]
+ },
+ "MetricThreshold": 200,
+ "ComparisonOperator": "LessThanOrEqualTo"
+ }
+
+Output::
+
+ {
+ "Slo": {
+ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName",
+ "Name": "SLOName",
+ "Description": "Description of your SLO",
+ "CreatedTime": "2024-12-27T08:16:09.032000+05:30",
+ "LastUpdatedTime": "2024-12-27T08:16:09.032000+05:30",
+ "Sli": {
+ "SliMetric": {
+ "MetricDataQueries": [
+ {
+ "Id": "m1",
+ "MetricStat": {
+ "Metric": {
+ "Namespace": "AWS/EC2",
+ "MetricName": "CPUUtilization",
+ "Dimensions": [
+ {
+ "Name": "InstanceId",
+ "Value": "i-0e59876543234522"
+ }
+ ]
+ },
+ "Period": 60,
+ "Stat": "Average"
+ },
+ "ReturnData": true
+ }
+ ]
+ },
+ "MetricThreshold": 200.0,
+ "ComparisonOperator": "LessThanOrEqualTo"
+ },
+ "EvaluationType": "PeriodBased",
+ "Goal": {
+ "Interval": {
+ "RollingInterval": {
+ "DurationUnit": "DAY",
+ "Duration": 7
+ }
+ },
+ "AttainmentGoal": 99.0,
+ "WarningThreshold": 50.0
+ }
+ }
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/delete-service-level-objective.rst b/awscli/examples/application-signals/delete-service-level-objective.rst
new file mode 100644
index 000000000000..0305c19ee29b
--- /dev/null
+++ b/awscli/examples/application-signals/delete-service-level-objective.rst
@@ -0,0 +1,10 @@
+**To delete the specified service level objective.**
+
+The following ``delete-service-level-objective`` example deletes the specified service level objective. ::
+
+ aws application-signals delete-service-level-objective \
+ --id "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
+
+This command produces no output.
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/get-service-level-objective.rst b/awscli/examples/application-signals/get-service-level-objective.rst
new file mode 100644
index 000000000000..078d618064c7
--- /dev/null
+++ b/awscli/examples/application-signals/get-service-level-objective.rst
@@ -0,0 +1,53 @@
+**To return information about one SLO created in the account**
+
+The following ``get-service-level-objective`` example returns information about one SLO created in the account. ::
+
+ aws application-signals get-service-level-objective \
+ --id "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
+
+Output::
+
+ {
+ "Slo": {
+ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName",
+ "Name": "SLOName",
+ "Description": "Description of your SLO",
+ "CreatedTime": "2024-12-24T22:19:18.624000+05:30",
+ "LastUpdatedTime": "2024-12-24T22:19:55.280000+05:30",
+ "Sli": {
+ "SliMetric": {
+ "MetricDataQueries": [{
+ "Id": "m1",
+ "MetricStat": {
+ "Metric": {
+ "Namespace": "AWS/EC2",
+ "MetricName": "CPUUtilization",
+ "Dimensions": [{
+ "Name": "InstanceId",
+ "Value": "i-0e0987654321522"
+ }]
+ },
+ "Period": 60,
+ "Stat": "Average"
+ },
+ "ReturnData": true
+ }]
+ },
+ "MetricThreshold": 200.0,
+ "ComparisonOperator": "LessThanOrEqualTo"
+ },
+ "EvaluationType": "PeriodBased",
+ "Goal": {
+ "Interval": {
+ "RollingInterval": {
+ "DurationUnit": "DAY",
+ "Duration": 7
+ }
+ },
+ "AttainmentGoal": 99.0,
+ "WarningThreshold": 50.0
+ }
+ }
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/get-service.rst b/awscli/examples/application-signals/get-service.rst
new file mode 100644
index 000000000000..699f23ec8472
--- /dev/null
+++ b/awscli/examples/application-signals/get-service.rst
@@ -0,0 +1,72 @@
+**To return information about a service discovered by Application Signals**
+
+The following ``get-service`` example returns information about a service discovered by Application Signals. ::
+
+ aws application-signals get-service \
+ --start-time 1732704000 \
+ --end-time 1732714500 \
+ --key-attributes Environment=lambda:default,Name=hello-world-python,Type=Service
+
+Output::
+
+ {
+ "Service": {
+ "KeyAttributes": {
+ "Environment": "lambda:default",
+ "Name": "hello-world-python",
+ "Type": "Service"
+ },
+ "AttributeMaps": [{
+ "Lambda.Function.Name": "hello-world-python",
+ "PlatformType": "AWS::Lambda"
+ }],
+ "MetricReferences": [{
+ "Namespace": "ApplicationSignals",
+ "MetricType": "LATENCY",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "Service",
+ "Value": "hello-world-python"
+ }],
+ "MetricName": "Latency"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "FAULT",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "Service",
+ "Value": "hello-world-python"
+ }],
+ "MetricName": "Fault"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "ERROR",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "Service",
+ "Value": "hello-world-python"
+ }],
+ "MetricName": "Error"
+ }],
+ "LogGroupReferences": [{
+ "Identifier": "/aws/lambda/hello-world-python",
+ "ResourceType": "AWS::Logs::LogGroup",
+ "Type": "AWS::Resource"
+ }]
+ },
+ "StartTime": "2024-11-27T10:00:00+00:00",
+ "EndTime": "2024-11-27T14:00:01+00:00",
+ "LogGroupReferences": [{
+ "Identifier": "/aws/lambda/hello-world-python",
+ "ResourceType": "AWS::Logs::LogGroup",
+ "Type": "AWS::Resource"
+ }]
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/list-service-dependencies.rst b/awscli/examples/application-signals/list-service-dependencies.rst
new file mode 100644
index 000000000000..8759d0709424
--- /dev/null
+++ b/awscli/examples/application-signals/list-service-dependencies.rst
@@ -0,0 +1,96 @@
+**To return a list of service dependencies of the service that you specify**
+
+The following ``list-service-dependencies`` example returns a list of service dependencies of the service that you specify. ::
+
+ aws application-signals list-service-dependencies \
+ --start-time 1732021200 \
+ --end-time 1732107600 \
+ --key-attributes Environment=api-gateway:prod, Name=PetAdoptionStatusUpdater,Type=Service
+
+Output::
+
+ {
+ "ServiceDependencies": [{
+ "OperationName": "PUT /prod",
+ "DependencyKeyAttributes": {
+ "Environment": "lambda:default",
+ "Name": "Services-name",
+ "Type": "Service"
+ },
+ "DependencyOperationName": "Invoke",
+ "MetricReferences": [{
+ "Namespace": "ApplicationSignals",
+ "MetricType": "LATENCY",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "api-gateway:prod"
+ }, {
+ "Name": "Operation",
+ "Value": "PUT /prod"
+ }, {
+ "Name": "RemoteEnvironment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "RemoteOperation",
+ "Value": "Invoke"
+ }, {
+ "Name": "RemoteService",
+ "Value": "Services-name"
+ }, {
+ "Name": "Service",
+ "Value": "PetAdoptionStatusUpdater"
+ }],
+ "MetricName": "Latency"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "FAULT",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "api-gateway:prod"
+ }, {
+ "Name": "Operation",
+ "Value": "PUT /prod"
+ }, {
+ "Name": "RemoteEnvironment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "RemoteOperation",
+ "Value": "Invoke"
+ }, {
+ "Name": "RemoteService",
+ "Value": "Services-name"
+ }, {
+ "Name": "Service",
+ "Value": "PetAdoptionStatusUpdater"
+ }],
+ "MetricName": "Fault"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "ERROR",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "api-gateway:prod"
+ }, {
+ "Name": "Operation",
+ "Value": "PUT /prod"
+ }, {
+ "Name": "RemoteEnvironment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "RemoteOperation",
+ "Value": "Invoke"
+ }, {
+ "Name": "RemoteService",
+ "Value": "Services-name"
+ }, {
+ "Name": "Service",
+ "Value": "PetAdoptionStatusUpdater"
+ }],
+ "MetricName": "Error"
+ }]
+ }],
+ "StartTime": "2024-11-19T13:00:00+00:00",
+ "EndTime": "2024-11-20T13:00:01+00:00"
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/list-service-dependents.rst b/awscli/examples/application-signals/list-service-dependents.rst
new file mode 100644
index 000000000000..3f5bfd72e628
--- /dev/null
+++ b/awscli/examples/application-signals/list-service-dependents.rst
@@ -0,0 +1,36 @@
+**To return the list of dependents that invoked the specified service during the provided time range**
+
+The following ``list-service-dependents`` example returns the list of dependents that invoked the specified service during the provided time range. ::
+
+ aws application-signals list-service-dependents \
+ --start-time 1732021200 \
+ --end-time 1732107600 \
+ --key-attributes Environment=generic:default,Name=PetSite,Type=Service
+
+Output::
+
+ {
+ "ServiceDependents": [{
+ "OperationName": "",
+ "DependentKeyAttributes": {
+ "Identifier": "pet-api-canary-hao",
+ "ResourceType": "AWS::Synthetics::Canary",
+ "Type": "AWS::Resource"
+ },
+ "DependentOperationName": "",
+ "MetricReferences": []
+ }, {
+ "OperationName": "",
+ "DependentKeyAttributes": {
+ "Identifier": "PetSite",
+ "ResourceType": "AWS::Synthetics::Canary",
+ "Type": "AWS::Resource"
+ },
+ "DependentOperationName": "",
+ "MetricReferences": []
+ }],
+ "StartTime": "2024-12-24T05:00:00+00:00",
+ "EndTime": "2024-12-25T06:00:01+00:00"
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/list-service-level-objectives.rst b/awscli/examples/application-signals/list-service-level-objectives.rst
new file mode 100644
index 000000000000..c96de5744c14
--- /dev/null
+++ b/awscli/examples/application-signals/list-service-level-objectives.rst
@@ -0,0 +1,17 @@
+**To return a list of SLOs created in this account.**
+
+The following ``list-service-level-objectives`` example returns a list of SLOs created in this account. ::
+
+ aws application-signals list-service-level-objectives
+
+Output::
+
+ {
+ "SloSummaries": [{
+ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/test",
+ "Name": "test",
+ "CreatedTime": "2024-12-24T22:01:21.116000+05:30"
+ }]
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/list-service-operations.rst b/awscli/examples/application-signals/list-service-operations.rst
new file mode 100644
index 000000000000..4a779c690df5
--- /dev/null
+++ b/awscli/examples/application-signals/list-service-operations.rst
@@ -0,0 +1,63 @@
+**To return a list of the operations of this service that have been discovered by Application Signals**
+
+The following ``list-service-operations`` example returns a list of the operations of this service that have been discovered by Application Signals. ::
+
+ aws application-signals list-service-operations \
+ --start-time 1735017423 \
+ --end-time 1735103823 \
+ --key-attributes Environment=generic:default,Name=payforadoption,Type=Service
+
+Output::
+
+ {
+ "ServiceOperations": [{
+ "Name": "POST /api",
+ "MetricReferences": [{
+ "Namespace": "ApplicationSignals",
+ "MetricType": "LATENCY",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "generic:default"
+ }, {
+ "Name": "Operation",
+ "Value": "POST /api"
+ }, {
+ "Name": "Service",
+ "Value": "payforadoption"
+ }],
+ "MetricName": "Latency"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "FAULT",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "generic:default"
+ }, {
+ "Name": "Operation",
+ "Value": "POST /api"
+ }, {
+ "Name": "Service",
+ "Value": "payforadoption"
+ }],
+ "MetricName": "Fault"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "ERROR",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "generic:default"
+ }, {
+ "Name": "Operation",
+ "Value": "POST /api"
+ }, {
+ "Name": "Service",
+ "Value": "payforadoption"
+ }],
+ "MetricName": "Error"
+ }]
+ }],
+ "StartTime": "2024-12-24T05:00:00+00:00",
+ "EndTime": "2024-12-25T06:00:01+00:00"
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/list-services.rst b/awscli/examples/application-signals/list-services.rst
new file mode 100644
index 000000000000..dad259f2a342
--- /dev/null
+++ b/awscli/examples/application-signals/list-services.rst
@@ -0,0 +1,61 @@
+**To return a list of services that have been discovered by Application Signals**
+
+The following ``list-services`` example returns a list of services that have been discovered by Application Signals. ::
+
+ aws application-signals list-services \
+ --start-time 1734918791 \
+ --end-time 1734965591
+
+Output::
+
+ {
+ "ServiceSummaries": [{
+ "KeyAttributes": {
+ "Environment": "lambda:default",
+ "Name": "hello-world-python",
+ "Type": "Service"
+ },
+ "AttributeMaps": [{
+ "Lambda.Function.Name": "hello-world-python",
+ "PlatformType": "AWS::Lambda"
+ }],
+ "MetricReferences": [{
+ "Namespace": "ApplicationSignals",
+ "MetricType": "LATENCY",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "Service",
+ "Value": "hello-world-python"
+ }],
+ "MetricName": "Latency"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "FAULT",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "Service",
+ "Value": "hello-world-python"
+ }],
+ "MetricName": "Fault"
+ }, {
+ "Namespace": "ApplicationSignals",
+ "MetricType": "ERROR",
+ "Dimensions": [{
+ "Name": "Environment",
+ "Value": "lambda:default"
+ }, {
+ "Name": "Service",
+ "Value": "hello-world-python"
+ }],
+ "MetricName": "Error"
+ }]
+ }],
+ "StartTime": "2024-11-27T10:00:00+00:00",
+ "EndTime": "2024-11-27T14:00:01+00:00"
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/list-tags-for-resource.rst b/awscli/examples/application-signals/list-tags-for-resource.rst
new file mode 100644
index 000000000000..e8bb1d50b982
--- /dev/null
+++ b/awscli/examples/application-signals/list-tags-for-resource.rst
@@ -0,0 +1,17 @@
+**To display the tags associated with a CloudWatch resource**
+
+The following ``list-tags-for-resource`` example displays the tags associated with a CloudWatch resource. ::
+
+ aws application-signals list-tags-for-resource \
+ --resource-arn "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
+
+Output::
+
+ {
+ "Tags": [{
+ "Key": "test",
+ "Value": "value"
+ }]
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/start-discovery.rst b/awscli/examples/application-signals/start-discovery.rst
new file mode 100644
index 000000000000..f17cef4555fd
--- /dev/null
+++ b/awscli/examples/application-signals/start-discovery.rst
@@ -0,0 +1,9 @@
+**To enable this Amazon Web Services account to be able to use CloudWatch Application Signals**
+
+The following ``start-discovery`` example enables this Amazon Web Services account to be able to use CloudWatch Application Signals by creating the *AWSServiceRoleForCloudWatchApplicationSignals* service-linked role. ::
+
+ aws application-signals start-discovery
+
+This command produces no output.
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/tag-resource.rst b/awscli/examples/application-signals/tag-resource.rst
new file mode 100644
index 000000000000..361123afe4e3
--- /dev/null
+++ b/awscli/examples/application-signals/tag-resource.rst
@@ -0,0 +1,11 @@
+**To assigns one or more tags (key-value pairs) to the specified CloudWatch resource, such as a service level objective**
+
+The following ``tag-resource`` example assigns one or more tags (key-value pairs) to the specified CloudWatch resource, such as a service level objective. ::
+
+ aws application-signals tag-resource \
+ --resource-arn "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName" \
+ --tags '{"Key":"test","Value":"value"}'
+
+This command produces no output.
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/untag-resource.rst b/awscli/examples/application-signals/untag-resource.rst
new file mode 100644
index 000000000000..c352c58de4d2
--- /dev/null
+++ b/awscli/examples/application-signals/untag-resource.rst
@@ -0,0 +1,11 @@
+**To remove one or more tags from the specified resource**
+
+The following ``untag-resource`` example removes one or more tags from the specified resource. ::
+
+ aws application-signals untag-resource \
+ --resource-arn "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName" \
+ --tag-keys "test"
+
+This command produces no output.
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/application-signals/update-service-level-objective.rst b/awscli/examples/application-signals/update-service-level-objective.rst
new file mode 100644
index 000000000000..da8d84c382ab
--- /dev/null
+++ b/awscli/examples/application-signals/update-service-level-objective.rst
@@ -0,0 +1,69 @@
+**To update an existing service level objective (SLO)**
+
+The following ``update-service-level-objective`` example updates an existing service level objective (SLO). ::
+
+ aws application-signals update-service-level-objective \
+ --cli-input-json file://update-slo.json
+
+Contents of ``update-slo.json``::
+
+ {
+ "id": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName",
+ "goal": {
+ "Interval": {
+ "RollingInterval": {
+ "DurationUnit": "DAY",
+ "Duration": 7
+ }
+ },
+ "AttainmentGoal": 90.0,
+ "WarningThreshold": 50.0
+ }
+ }
+
+Output::
+
+ {
+ "Slo": {
+ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName",
+ "Name": "SLOName",
+ "Description": "Description of your SLO",
+ "CreatedTime": "2024-12-24T22:19:18.624000+05:30",
+ "LastUpdatedTime": "2024-12-27T08:51:38.278000+05:30",
+ "Sli": {
+ "SliMetric": {
+ "MetricDataQueries": [{
+ "Id": "m1",
+ "MetricStat": {
+ "Metric": {
+ "Namespace": "AWS/EC2",
+ "MetricName": "CPUUtilization",
+ "Dimensions": [{
+ "Name": "InstanceId",
+ "Value": "i-00987654345222"
+ }]
+ },
+ "Period": 60,
+ "Stat": "Average"
+ },
+ "ReturnData": true
+ }]
+ },
+ "MetricThreshold": 200.0,
+ "ComparisonOperator": "LessThanOrEqualTo"
+ },
+ "EvaluationType": "PeriodBased",
+ "Goal": {
+ "Interval": {
+ "RollingInterval": {
+ "DurationUnit": "DAY",
+ "Duration": 7
+ }
+ },
+ "AttainmentGoal": 90.0,
+ "WarningThreshold": 50.0
+ }
+ }
+ }
+
+For more information, see `Application Signals `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/athena/batch-get-query-execution.rst b/awscli/examples/athena/batch-get-query-execution.rst
index 39ff3a295984..e42c36633438 100644
--- a/awscli/examples/athena/batch-get-query-execution.rst
+++ b/awscli/examples/athena/batch-get-query-execution.rst
@@ -14,7 +14,7 @@ Output::
"Query": "create database if not exists webdata",
"StatementType": "DDL",
"ResultConfiguration": {
- "OutputLocation": "s3://awsdoc-example-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.txt"
+ "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.txt"
},
"QueryExecutionContext": {},
"Status": {
@@ -38,7 +38,7 @@ Output::
"Query": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10",
"StatementType": "DML",
"ResultConfiguration": {
- "OutputLocation": "s3://awsdoc-example-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222.csv"
+ "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222.csv"
},
"QueryExecutionContext": {
"Database": "mydatabase",
@@ -62,4 +62,4 @@ Output::
"UnprocessedQueryExecutionIds": []
}
-For more information, see `Running SQL Queries Using Amazon Athena `__ in the *Amazon Athena User Guide*.
\ No newline at end of file
+For more information, see `Running SQL Queries Using Amazon Athena `__ in the *Amazon Athena User Guide*.
diff --git a/awscli/examples/athena/create-work-group.rst b/awscli/examples/athena/create-work-group.rst
index 14cd639e6861..5ecd82e91267 100644
--- a/awscli/examples/athena/create-work-group.rst
+++ b/awscli/examples/athena/create-work-group.rst
@@ -1,13 +1,13 @@
**To create a workgroup**
-The following ``create-work-group`` example creates a workgroup called ``Data_Analyst_Group`` that has the query results output location ``s3://awsdoc-example-bucket``. The command creates a workgroup that overrides client configuration settings, which includes the query results output location. The command also enables CloudWatch metrics and adds three key-value tag pairs to the workgroup to distinguish it from other workgroups. Note that the ``--configuration`` argument has no spaces before the commas that separate its options. ::
+The following ``create-work-group`` example creates a workgroup called ``Data_Analyst_Group`` that has the query results output location ``s3://amzn-s3-demo-bucket``. The command creates a workgroup that overrides client configuration settings, which includes the query results output location. The command also enables CloudWatch metrics and adds three key-value tag pairs to the workgroup to distinguish it from other workgroups. Note that the ``--configuration`` argument has no spaces before the commas that separate its options. ::
aws athena create-work-group \
--name Data_Analyst_Group \
- --configuration ResultConfiguration={OutputLocation="s3://awsdoc-example-bucket"},EnforceWorkGroupConfiguration="true",PublishCloudWatchMetricsEnabled="true" \
+ --configuration ResultConfiguration={OutputLocation="s3://amzn-s3-demo-bucket"},EnforceWorkGroupConfiguration="true",PublishCloudWatchMetricsEnabled="true" \
--description "Workgroup for data analysts" \
--tags Key=Division,Value=West Key=Location,Value=Seattle Key=Team,Value="Big Data"
This command produces no output. To see the results, use ``aws athena get-work-group --work-group Data_Analyst_Group``.
-For more information, see `Managing Workgroups `__ in the *Amazon Athena User Guide*.
\ No newline at end of file
+For more information, see `Managing Workgroups `__ in the *Amazon Athena User Guide*.
diff --git a/awscli/examples/athena/get-query-execution.rst b/awscli/examples/athena/get-query-execution.rst
index b409a4e9b44a..3b68fd274210 100644
--- a/awscli/examples/athena/get-query-execution.rst
+++ b/awscli/examples/athena/get-query-execution.rst
@@ -14,7 +14,7 @@ Output::
' and status = 200 and location like 'SFO%' limit 10",
"StatementType": "DML",
"ResultConfiguration": {
- "OutputLocation": "s3://awsdoc-example-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.csv"
+ "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.csv"
},
"QueryExecutionContext": {
"Database": "mydatabase",
@@ -36,4 +36,4 @@ Output::
}
}
-For more information, see `Running SQL Queries Using Amazon Athena `__ in the *Amazon Athena User Guide*.
\ No newline at end of file
+For more information, see `Running SQL Queries Using Amazon Athena `__ in the *Amazon Athena User Guide*.
diff --git a/awscli/examples/athena/get-table-metadata.rst b/awscli/examples/athena/get-table-metadata.rst
index a377298ea388..c690d8580cce 100644
--- a/awscli/examples/athena/get-table-metadata.rst
+++ b/awscli/examples/athena/get-table-metadata.rst
@@ -41,7 +41,7 @@ Output::
"Parameters": {
"EXTERNAL": "TRUE",
"inputformat": "com.esri.json.hadoop.EnclosedJsonInputFormat",
- "location": "s3://awsdoc-example-bucket/json",
+ "location": "s3://amzn-s3-demo-bucket/json",
"outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
"serde.param.serialization.format": "1",
"serde.serialization.lib": "com.esri.hadoop.hive.serde.JsonSerde",
@@ -50,4 +50,4 @@ Output::
}
}
-For more information, see `Showing Table Details: get-table-metadata `__ in the *Amazon Athena User Guide*.
\ No newline at end of file
+For more information, see `Showing Table Details: get-table-metadata `__ in the *Amazon Athena User Guide*.
diff --git a/awscli/examples/athena/get-work-group.rst b/awscli/examples/athena/get-work-group.rst
index 469f1f859b25..77d07aaf33d6 100644
--- a/awscli/examples/athena/get-work-group.rst
+++ b/awscli/examples/athena/get-work-group.rst
@@ -13,7 +13,7 @@ Output::
"State": "ENABLED",
"Configuration": {
"ResultConfiguration": {
- "OutputLocation": "s3://awsdoc-example-bucket/"
+ "OutputLocation": "s3://amzn-s3-demo-bucket/"
},
"EnforceWorkGroupConfiguration": false,
"PublishCloudWatchMetricsEnabled": true,
@@ -24,4 +24,4 @@ Output::
}
}
-For more information, see `Managing Workgroups `__ in the *Amazon Athena User Guide*.
\ No newline at end of file
+For more information, see `Managing Workgroups `__ in the *Amazon Athena User Guide*.
diff --git a/awscli/examples/athena/list-table-metadata.rst b/awscli/examples/athena/list-table-metadata.rst
index 7f602cb40918..56bd18d51dcd 100644
--- a/awscli/examples/athena/list-table-metadata.rst
+++ b/awscli/examples/athena/list-table-metadata.rst
@@ -54,7 +54,7 @@ Output::
"delimiter": ",",
"has_encrypted_data": "false",
"inputformat": "org.apache.hadoop.mapred.TextInputFormat",
- "location": "s3://awsdoc-example-bucket/csv/countrycode",
+ "location": "s3://amzn-s3-demo-bucket/csv/countrycode",
"outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
"serde.param.field.delim": ",",
"serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
@@ -102,7 +102,7 @@ Output::
"delimiter": ",",
"has_encrypted_data": "false",
"inputformat": "org.apache.hadoop.mapred.TextInputFormat",
- "location": "s3://awsdoc-example-bucket/csv/CountyPopulation",
+ "location": "s3://amzn-s3-demo-bucket/csv/CountyPopulation",
"outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
"serde.param.field.delim": ",",
"serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
diff --git a/awscli/examples/autoscaling/create-launch-configuration.rst b/awscli/examples/autoscaling/create-launch-configuration.rst
index 213f10fbeb87..51a566c0b3b1 100644
--- a/awscli/examples/autoscaling/create-launch-configuration.rst
+++ b/awscli/examples/autoscaling/create-launch-configuration.rst
@@ -11,9 +11,9 @@ This command produces no output.
For more information, see `Creating a launch configuration `__ in the *Amazon EC2 Auto Scaling User Guide*.
-**Example 2: To create a launch configuration with a security group, key pair, and bootrapping script**
+**Example 2: To create a launch configuration with a security group, key pair, and bootstrapping script**
-This example creates a launch configuration with a security group, a key pair, and a bootrapping script contained in the user data. ::
+This example creates a launch configuration with a security group, a key pair, and a bootstrapping script contained in the user data. ::
aws autoscaling create-launch-configuration \
--launch-configuration-name my-lc \
diff --git a/awscli/examples/autoscaling/describe-auto-scaling-groups.rst b/awscli/examples/autoscaling/describe-auto-scaling-groups.rst
index c009486d0c22..2b45661175f4 100644
--- a/awscli/examples/autoscaling/describe-auto-scaling-groups.rst
+++ b/awscli/examples/autoscaling/describe-auto-scaling-groups.rst
@@ -3,7 +3,7 @@
This example describes the specified Auto Scaling group. ::
aws autoscaling describe-auto-scaling-groups \
- --auto-scaling-group-name my-asg
+ --auto-scaling-group-names my-asg
Output::
@@ -66,7 +66,7 @@ This example describes the specified Auto Scaling groups. It allows you to speci
aws autoscaling describe-auto-scaling-groups \
--max-items 100 \
- --auto-scaling-group-name "group1" "group2" "group3" "group4"
+ --auto-scaling-group-names "group1" "group2" "group3" "group4"
See example 1 for sample output.
diff --git a/awscli/examples/chime/associate-phone-numbers-with-voice-connector-group.rst b/awscli/examples/chime/associate-phone-numbers-with-voice-connector-group.rst
deleted file mode 100644
index 8d1569fa9e22..000000000000
--- a/awscli/examples/chime/associate-phone-numbers-with-voice-connector-group.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-**To associate phone numbers with an Amazon Chime Voice Connector group**
-
-The following ``associate-phone-numbers-with-voice-connector-group`` example associates the specified phone numbers with an Amazon Chime Voice Connector group. ::
-
- aws chime associate-phone-numbers-with-voice-connector-group \
- --voice-connector-group-id 123a456b-c7d8-90e1-fg23-4h567jkl8901 \
- --e164-phone-numbers "+12065550100" "+12065550101" \
- --force-associate
-
-Output::
-
- {
- "PhoneNumberErrors": []
- }
-
-For more information, see `Working with Amazon Chime Voice Connector groups `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/associate-phone-numbers-with-voice-connector.rst b/awscli/examples/chime/associate-phone-numbers-with-voice-connector.rst
deleted file mode 100644
index 65f4c9598155..000000000000
--- a/awscli/examples/chime/associate-phone-numbers-with-voice-connector.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-**To associate phone numbers with an Amazon Chime Voice Connector**
-
-The following ``associate-phone-numbers-with-voice-connector`` example associates the specified phone numbers with an Amazon Chime Voice Connector. ::
-
- aws chime associate-phone-numbers-with-voice-connector \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --e164-phone-numbers "+12065550100" "+12065550101"
- --force-associate
-
-Output::
-
- {
- "PhoneNumberErrors": []
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/create-proxy-session.rst b/awscli/examples/chime/create-proxy-session.rst
deleted file mode 100644
index 267390a22c9d..000000000000
--- a/awscli/examples/chime/create-proxy-session.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-**To create a proxy session**
-
-The following ``create-proxy-session`` example creates a proxy session with voice and SMS capabilities. ::
-
- aws chime create-proxy-session \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --participant-phone-numbers "+14015550101" "+12065550100" \
- --capabilities "Voice" "SMS"
-
-Output::
-
- {
- "ProxySession": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "ProxySessionId": "123a4bc5-67d8-901e-2f3g-h4ghjk56789l",
- "Status": "Open",
- "ExpiryMinutes": 60,
- "Capabilities": [
- "SMS",
- "Voice"
- ],
- "CreatedTimestamp": "2020-04-15T16:10:10.288Z",
- "UpdatedTimestamp": "2020-04-15T16:10:10.288Z",
- "Participants": [
- {
- "PhoneNumber": "+12065550100",
- "ProxyPhoneNumber": "+19135550199"
- },
- {
- "PhoneNumber": "+14015550101",
- "ProxyPhoneNumber": "+19135550199"
- }
- ]
- }
- }
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/create-voice-connector-group.rst b/awscli/examples/chime/create-voice-connector-group.rst
deleted file mode 100644
index 126c8fc9ea5c..000000000000
--- a/awscli/examples/chime/create-voice-connector-group.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-**To create an Amazon Chime Voice Connector group**
-
-The following ``create-voice-connector-group`` example creates an Amazon Chime Voice Connector group that includes the specified Amazon Chime Voice Connector. ::
-
- aws chime create-voice-connector-group \
- --name myGroup \
- --voice-connector-items VoiceConnectorId=abcdef1ghij2klmno3pqr4,Priority=2
-
-Output::
-
- {
- "VoiceConnectorGroup": {
- "VoiceConnectorGroupId": "123a456b-c7d8-90e1-fg23-4h567jkl8901",
- "Name": "myGroup",
- "VoiceConnectorItems": [],
- "CreatedTimestamp": "2019-09-18T16:38:34.734Z",
- "UpdatedTimestamp": "2019-09-18T16:38:34.734Z"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connector Groups `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/create-voice-connector.rst b/awscli/examples/chime/create-voice-connector.rst
deleted file mode 100644
index fffc0af2ca01..000000000000
--- a/awscli/examples/chime/create-voice-connector.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-**To create an Amazon Chime Voice Connector**
-
-The following ``create-voice-connector`` example creates an Amazon Chime Voice Connector in the specified AWS Region, with encryption enabled. ::
-
- aws chime create-voice-connector \
- --name newVoiceConnector \
- --aws-region us-west-2 \
- --require-encryption
-
-Output::
-
- {
- "VoiceConnector": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "AwsRegion": "us-west-2",
- "Name": "newVoiceConnector",
- "OutboundHostName": "abcdef1ghij2klmno3pqr4.voiceconnector.chime.aws",
- "RequireEncryption": true,
- "CreatedTimestamp": "2019-09-18T20:34:01.352Z",
- "UpdatedTimestamp": "2019-09-18T20:34:01.352Z"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/delete-proxy-session.rst b/awscli/examples/chime/delete-proxy-session.rst
deleted file mode 100644
index bb6a6770dda4..000000000000
--- a/awscli/examples/chime/delete-proxy-session.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-**To delete a proxy session**
-
-The following ``delete-proxy-session`` example deletes the specified proxy session. ::
-
- aws chime delete-proxy-session \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --proxy-session-id 123a4bc5-67d8-901e-2f3g-h4ghjk56789l
-
-This command produces no output.
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/delete-voice-connector-group.rst b/awscli/examples/chime/delete-voice-connector-group.rst
deleted file mode 100644
index e7ff6da11de1..000000000000
--- a/awscli/examples/chime/delete-voice-connector-group.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**title**
-
-The following ``delete-voice-connector-group`` example deletes the specified Amazon Chime Voice Connector group. ::
-
- aws chime delete-voice-connector-group \
- --voice-connector-group-id 123a456b-c7d8-90e1-fg23-4h567jkl8901
-
-This command produces no output.
-
-For more information, see `Working with Amazon Chime Voice Connector Groups `__ in the *Amazon Chime Administration Guide*.
\ No newline at end of file
diff --git a/awscli/examples/chime/delete-voice-connector-origination.rst b/awscli/examples/chime/delete-voice-connector-origination.rst
deleted file mode 100644
index 76221faf2d0f..000000000000
--- a/awscli/examples/chime/delete-voice-connector-origination.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**To delete origination settings**
-
-The following ``delete-voice-connector-origination`` example deletes the origination host, port, protocol, priority, and weight from the specified Amazon Chime Voice Connector. ::
-
- aws chime delete-voice-connector-origination \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/delete-voice-connector-proxy.rst b/awscli/examples/chime/delete-voice-connector-proxy.rst
deleted file mode 100644
index d48f030d804b..000000000000
--- a/awscli/examples/chime/delete-voice-connector-proxy.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**To delete a proxy configuration**
-
-The following ``delete-voice-connector-proxy`` example deletes the proxy configuration from your Amazon Chime Voice Connector. ::
-
- aws chime delete-voice-connector-proxy \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/delete-voice-connector-streaming-configuration.rst b/awscli/examples/chime/delete-voice-connector-streaming-configuration.rst
deleted file mode 100644
index 957b4c9f93c7..000000000000
--- a/awscli/examples/chime/delete-voice-connector-streaming-configuration.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**To delete a streaming configuration**
-
-The following ``delete-voice-connector-streaming-configuration`` example deletes the streaming configuration for the specified Amazon Chime Voice Connector. ::
-
- aws chime delete-voice-connector-streaming-configuration \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-
-For more information, see `Streaming Amazon Chime Voice Connector Data to Kinesis `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/delete-voice-connector-termination-credentials.rst b/awscli/examples/chime/delete-voice-connector-termination-credentials.rst
deleted file mode 100644
index ba0e11a2402f..000000000000
--- a/awscli/examples/chime/delete-voice-connector-termination-credentials.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-**To delete termination credentials**
-
-The following ``delete-voice-connector-termination-credentials`` example deletes the termination credentials for the specified user name and Amazon Chime Voice Connector. ::
-
- aws chime delete-voice-connector-termination-credentials \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --usernames "jdoe"
-
-This command produces no output.
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/delete-voice-connector-termination.rst b/awscli/examples/chime/delete-voice-connector-termination.rst
deleted file mode 100644
index fb7dc10aaef0..000000000000
--- a/awscli/examples/chime/delete-voice-connector-termination.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**To delete termination settings**
-
-The following ``delete-voice-connector-termination`` example deletes the termination settings for the specified Amazon Chime Voice Connector. ::
-
- aws chime delete-voice-connector-termination \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/delete-voice-connector.rst b/awscli/examples/chime/delete-voice-connector.rst
deleted file mode 100644
index 6ff00b2e334e..000000000000
--- a/awscli/examples/chime/delete-voice-connector.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**To delete an Amazon Chime Voice Connector**
-
-The following ``delete-voice-connector`` example doesthis ::
-
- aws chime delete-voice-connector \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/disassociate-phone-numbers-from-voice-connector-group.rst b/awscli/examples/chime/disassociate-phone-numbers-from-voice-connector-group.rst
deleted file mode 100644
index 96ac4ea58984..000000000000
--- a/awscli/examples/chime/disassociate-phone-numbers-from-voice-connector-group.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-**To disassociate phone numbers from an Amazon Chime Voice Connector group**
-
-The following ``disassociate-phone-numbers-from-voice-connector-group`` example disassociates the specified phone numbers from an Amazon Chime Voice Connector group. ::
-
- aws chime disassociate-phone-numbers-from-voice-connector-group \
- --voice-connector-group-id 123a456b-c7d8-90e1-fg23-4h567jkl8901 \
- --e164-phone-numbers "+12065550100" "+12065550101"
-
-Output::
-
- {
- "PhoneNumberErrors": []
- }
-
-For more information, see `Working with Amazon Chime Voice Connector Groups `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/disassociate-phone-numbers-from-voice-connector.rst b/awscli/examples/chime/disassociate-phone-numbers-from-voice-connector.rst
deleted file mode 100644
index 1a002ed8d141..000000000000
--- a/awscli/examples/chime/disassociate-phone-numbers-from-voice-connector.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-**To disassociate phone numbers from an Amazon Chime Voice Connector**
-
-The following ``disassociate-phone-numbers-from-voice-connector`` example disassociates the specified phone numbers from an Amazon Chime Voice Connector. ::
-
- aws chime disassociate-phone-numbers-from-voice-connector \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --e164-phone-numbers "+12065550100" "+12065550101"
-
-Output::
-
- {
- "PhoneNumberErrors": []
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/get-proxy-session.rst b/awscli/examples/chime/get-proxy-session.rst
deleted file mode 100644
index 0cff43880c34..000000000000
--- a/awscli/examples/chime/get-proxy-session.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-**To get proxy session details**
-
-The following ``get-proxy-session`` example lists the details of the specified proxy session. ::
-
- aws chime get-proxy-session \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --proxy-session-id 123a4bc5-67d8-901e-2f3g-h4ghjk56789l
-
-Output::
-
- {
- "ProxySession": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "ProxySessionId": "123a4bc5-67d8-901e-2f3g-h4ghjk56789l",
- "Status": "Open",
- "ExpiryMinutes": 60,
- "Capabilities": [
- "SMS",
- "Voice"
- ],
- "CreatedTimestamp": "2020-04-15T16:10:10.288Z",
- "UpdatedTimestamp": "2020-04-15T16:10:10.288Z",
- "Participants": [
- {
- "PhoneNumber": "+12065550100",
- "ProxyPhoneNumber": "+19135550199"
- },
- {
- "PhoneNumber": "+14015550101",
- "ProxyPhoneNumber": "+19135550199"
- }
- ]
- }
- }
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/get-voice-connector-group.rst b/awscli/examples/chime/get-voice-connector-group.rst
deleted file mode 100644
index 5194851ae6ec..000000000000
--- a/awscli/examples/chime/get-voice-connector-group.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-**To get details for an Amazon Chime Voice Connector group**
-
-The following ``get-voice-connector-group`` example displays details for the specified Amazon Chime Voice Connector group. ::
-
- aws chime get-voice-connector-group \
- --voice-connector-group-id 123a456b-c7d8-90e1-fg23-4h567jkl8901
-
-Output::
-
- {
- "VoiceConnectorGroup": {
- "VoiceConnectorGroupId": "123a456b-c7d8-90e1-fg23-4h567jkl8901",
- "Name": "myGroup",
- "VoiceConnectorItems": [],
- "CreatedTimestamp": "2019-09-18T16:38:34.734Z",
- "UpdatedTimestamp": "2019-09-18T16:38:34.734Z"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connector Groups `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/get-voice-connector-logging-configuration.rst b/awscli/examples/chime/get-voice-connector-logging-configuration.rst
deleted file mode 100644
index 1d33ec358849..000000000000
--- a/awscli/examples/chime/get-voice-connector-logging-configuration.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To get logging configuration details**
-
-The following ``get-voice-connector-logging-configuration`` example retreives the logging configuration details for the specified Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector-logging-configuration \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "LoggingConfiguration": {
- "EnableSIPLogs": true
- }
- }
-
-
-For more information, see `Streaming Amazon Chime Voice Connector Media to Kinesis `__ in the *Amazon Chime Administration Guide*.
\ No newline at end of file
diff --git a/awscli/examples/chime/get-voice-connector-origination.rst b/awscli/examples/chime/get-voice-connector-origination.rst
deleted file mode 100644
index e3c6cd099b22..000000000000
--- a/awscli/examples/chime/get-voice-connector-origination.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-**To retrieve origination settings**
-
-The following ``get-voice-connector-origination`` example retrieves the origination host, port, protocol, priority, and weight for the specified Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector-origination \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "Origination": {
- "Routes": [
- {
- "Host": "10.24.34.0",
- "Port": 1234,
- "Protocol": "TCP",
- "Priority": 1,
- "Weight": 5
- }
- ],
- "Disabled": false
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/get-voice-connector-proxy.rst b/awscli/examples/chime/get-voice-connector-proxy.rst
deleted file mode 100644
index 1ebab68d853c..000000000000
--- a/awscli/examples/chime/get-voice-connector-proxy.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-**To get proxy configuration details**
-
-The following ``get-voice-connector-proxy`` example gets the proxy configuration details for your Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector-proxy \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "Proxy": {
- "DefaultSessionExpiryMinutes": 60,
- "Disabled": false,
- "PhoneNumberCountries": [
- "US"
- ]
- }
- }
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/get-voice-connector-streaming-configuration.rst b/awscli/examples/chime/get-voice-connector-streaming-configuration.rst
deleted file mode 100644
index f2d2130d7fa9..000000000000
--- a/awscli/examples/chime/get-voice-connector-streaming-configuration.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To get streaming configuration details**
-
-The following ``get-voice-connector-streaming-configuration`` example gets the streaming configuration details for the specified Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector-streaming-configuration \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "StreamingConfiguration": {
- "DataRetentionInHours": 24,
- "Disabled": false
- }
- }
-
-For more information, see `Streaming Amazon Chime Voice Connector Data to Kinesis `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/get-voice-connector-termination-health.rst b/awscli/examples/chime/get-voice-connector-termination-health.rst
deleted file mode 100644
index 16865be603a4..000000000000
--- a/awscli/examples/chime/get-voice-connector-termination-health.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To retrieve termination health details**
-
-The following ``get-voice-connector-termination-health`` example retrieves the termination health details for the specified Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector-termination-health \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "TerminationHealth": {
- "Timestamp": "Fri Aug 23 16:45:55 UTC 2019",
- "Source": "10.24.34.0"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/get-voice-connector-termination.rst b/awscli/examples/chime/get-voice-connector-termination.rst
deleted file mode 100644
index f0c7f663cb70..000000000000
--- a/awscli/examples/chime/get-voice-connector-termination.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-**To retrieve termination settings**
-
-The following ``get-voice-connector-termination`` example retrieves the termination settings for the specified Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector-termination \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-Output::
-
- {
- "Termination": {
- "CpsLimit": 1,
- "DefaultPhoneNumber": "+12065550100",
- "CallingRegions": [
- "US"
- ],
- "CidrAllowedList": [
- "10.24.34.0/23"
- ],
- "Disabled": false
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/get-voice-connector.rst b/awscli/examples/chime/get-voice-connector.rst
deleted file mode 100644
index e949829f1e07..000000000000
--- a/awscli/examples/chime/get-voice-connector.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-**To get details for an Amazon Chime Voice Connector**
-
-The following ``get-voice-connector`` example displays the details of the specified Amazon Chime Voice Connector. ::
-
- aws chime get-voice-connector \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "VoiceConnector": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "AwsRegion": "us-west-2",
- "Name": "newVoiceConnector",
- "OutboundHostName": "abcdef1ghij2klmno3pqr4.voiceconnector.chime.aws",
- "RequireEncryption": true,
- "CreatedTimestamp": "2019-09-18T20:34:01.352Z",
- "UpdatedTimestamp": "2019-09-18T20:34:01.352Z"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/list-proxy-sessions.rst b/awscli/examples/chime/list-proxy-sessions.rst
deleted file mode 100644
index 45cd08efbd89..000000000000
--- a/awscli/examples/chime/list-proxy-sessions.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-**To list proxy sessions**
-
-The following ``list-proxy-sessions`` example lists the proxy sessions for your Amazon Chime Voice Connector. ::
-
- aws chime list-proxy-sessions \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-Output::
-
- {
- "ProxySession": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "ProxySessionId": "123a4bc5-67d8-901e-2f3g-h4ghjk56789l",
- "Status": "Open",
- "ExpiryMinutes": 60,
- "Capabilities": [
- "SMS",
- "Voice"
- ],
- "CreatedTimestamp": "2020-04-15T16:10:10.288Z",
- "UpdatedTimestamp": "2020-04-15T16:10:10.288Z",
- "Participants": [
- {
- "PhoneNumber": "+12065550100",
- "ProxyPhoneNumber": "+19135550199"
- },
- {
- "PhoneNumber": "+14015550101",
- "ProxyPhoneNumber": "+19135550199"
- }
- ]
- }
- }
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/list-voice-connector-groups.rst b/awscli/examples/chime/list-voice-connector-groups.rst
deleted file mode 100644
index 74a83dea413e..000000000000
--- a/awscli/examples/chime/list-voice-connector-groups.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-**To list Amazon Chime Voice Connector groups for an Amazon Chime account**
-
-The following ``list-voice-connector-groups`` example lists the Amazon Chime Voice Connector groups associated with the administrator's Amazon Chime account. ::
-
- aws chime list-voice-connector-groups
-
-Output::
-
- {
- "VoiceConnectorGroups": [
- {
- "VoiceConnectorGroupId": "123a456b-c7d8-90e1-fg23-4h567jkl8901",
- "Name": "myGroup",
- "VoiceConnectorItems": [],
- "CreatedTimestamp": "2019-09-18T16:38:34.734Z",
- "UpdatedTimestamp": "2019-09-18T16:38:34.734Z"
- }
- ]
- }
-
-For more information, see `Working with Amazon Chime Voice Connector groups `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/list-voice-connector-termination-credentials.rst b/awscli/examples/chime/list-voice-connector-termination-credentials.rst
deleted file mode 100644
index c52ca1efd046..000000000000
--- a/awscli/examples/chime/list-voice-connector-termination-credentials.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To retrieve a list of termination credentials**
-
-The following ``list-voice-connector-termination-credentials`` example retrieves a list of the termination credentials for the specified Amazon Chime Voice Connector. ::
-
- aws chime list-voice-connector-termination-credentials \
- --voice-connector-id abcdef1ghij2klmno3pqr4
-
-This command produces no output.
-Output::
-
- {
- "Usernames": [
- "jdoe"
- ]
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/list-voice-connectors.rst b/awscli/examples/chime/list-voice-connectors.rst
deleted file mode 100644
index 748d14086de3..000000000000
--- a/awscli/examples/chime/list-voice-connectors.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-**To list Amazon Chime Voice Connectors for an account**
-
-The following ``list-voice-connectors`` example lists the Amazon Chime Voice Connectors associated with the caller's account. ::
-
- aws chime list-voice-connectors
-
-Output::
-
- {
- "VoiceConnectors": [
- {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "AwsRegion": "us-east-1",
- "Name": "MyVoiceConnector",
- "OutboundHostName": "abcdef1ghij2klmno3pqr4.voiceconnector.chime.aws",
- "RequireEncryption": true,
- "CreatedTimestamp": "2019-06-04T18:46:56.508Z",
- "UpdatedTimestamp": "2019-09-18T16:33:00.806Z"
- },
- {
- "VoiceConnectorId": "cbadef1ghij2klmno3pqr5",
- "AwsRegion": "us-west-2",
- "Name": "newVoiceConnector",
- "OutboundHostName": "cbadef1ghij2klmno3pqr5.voiceconnector.chime.aws",
- "RequireEncryption": true,
- "CreatedTimestamp": "2019-09-18T20:34:01.352Z",
- "UpdatedTimestamp": "2019-09-18T20:34:01.352Z"
- }
- ]
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/put-voice-connector-logging-configuration.rst b/awscli/examples/chime/put-voice-connector-logging-configuration.rst
deleted file mode 100644
index b448491370e8..000000000000
--- a/awscli/examples/chime/put-voice-connector-logging-configuration.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To add a logging configuration for an Amazon Chime Voice Connector**
-
-The following ``put-voice-connector-logging-configuration`` example turns on the SIP logging configuration for the specified Amazon Chime Voice Connector. ::
-
- aws chime put-voice-connector-logging-configuration \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --logging-configuration EnableSIPLogs=true
-
-Output::
-
- {
- "LoggingConfiguration": {
- "EnableSIPLogs": true
- }
- }
-
-For more information, see `Streaming Amazon Chime Voice Connector Media to Kinesis `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/put-voice-connector-origination.rst b/awscli/examples/chime/put-voice-connector-origination.rst
deleted file mode 100644
index a125fe342905..000000000000
--- a/awscli/examples/chime/put-voice-connector-origination.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-**To set up origination settings**
-
-The following ``put-voice-connector-origination`` example sets up the origination host, port, protocol, priority, and weight for the specified Amazon Chime Voice Connector. ::
-
- aws chime put-voice-connector-origination \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --origination Routes=[{Host="10.24.34.0",Port=1234,Protocol="TCP",Priority=1,Weight=5}],Disabled=false
-
-Output::
-
- {
- "Origination": {
- "Routes": [
- {
- "Host": "10.24.34.0",
- "Port": 1234,
- "Protocol": "TCP",
- "Priority": 1,
- "Weight": 5
- }
- ],
- "Disabled": false
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/put-voice-connector-proxy.rst b/awscli/examples/chime/put-voice-connector-proxy.rst
deleted file mode 100644
index a1496d64d84f..000000000000
--- a/awscli/examples/chime/put-voice-connector-proxy.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-**To put a proxy configuration**
-
-The following ``put-voice-connector-proxy`` example sets a proxy configuration to your Amazon Chime Voice Connector. ::
-
- aws chime put-voice-connector-proxy \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --default-session-expiry-minutes 60 \
- --phone-number-pool-countries "US"
-
-Output::
-
- {
- "Proxy": {
- "DefaultSessionExpiryMinutes": 60,
- "Disabled": false,
- "PhoneNumberCountries": [
- "US"
- ]
- }
- }
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/put-voice-connector-streaming-configuration.rst b/awscli/examples/chime/put-voice-connector-streaming-configuration.rst
deleted file mode 100644
index 8c05056a2de0..000000000000
--- a/awscli/examples/chime/put-voice-connector-streaming-configuration.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-**To create a streaming configuration**
-
-The following ``put-voice-connector-streaming-configuration`` example creates a streaming configuration for the specified Amazon Chime Voice Connector. It enables media streaming from the Amazon Chime Voice Connector to Amazon Kinesis, and sets the data retention period to 24 hours. ::
-
- aws chime put-voice-connector-streaming-configuration \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --streaming-configuration DataRetentionInHours=24,Disabled=false
-
-Output::
-
- {
- "StreamingConfiguration": {
- "DataRetentionInHours": 24,
- "Disabled": false
- }
- }
-
-For more information, see `Streaming Amazon Chime Voice Connector Data to Kinesis `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/put-voice-connector-termination-credentials.rst b/awscli/examples/chime/put-voice-connector-termination-credentials.rst
deleted file mode 100644
index b42f7f6f6fc3..000000000000
--- a/awscli/examples/chime/put-voice-connector-termination-credentials.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-**To set up termination credentials**
-
-The following ``put-voice-connector-termination-credentials`` example sets termination credentials for the specified Amazon Chime Voice Connector. ::
-
- aws chime put-voice-connector-termination-credentials \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --credentials Username="jdoe",Password="XXXXXXXX"
-
-This command produces no output.
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/put-voice-connector-termination.rst b/awscli/examples/chime/put-voice-connector-termination.rst
deleted file mode 100644
index fb0093e0e41f..000000000000
--- a/awscli/examples/chime/put-voice-connector-termination.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-**To set up termination settings**
-
-The following ``put-voice-connector-termination`` example sets the calling regions and allowed IP host termination settings for the specified Amazon Chime Voice Connector. ::
-
- aws chime put-voice-connector-termination \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --termination CallingRegions="US",CidrAllowedList="10.24.34.0/23",Disabled=false
-
-Output::
-
- {
- "Termination": {
- "CpsLimit": 0,
- "CallingRegions": [
- "US"
- ],
- "CidrAllowedList": [
- "10.24.34.0/23"
- ],
- "Disabled": false
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/update-proxy-session.rst b/awscli/examples/chime/update-proxy-session.rst
deleted file mode 100644
index 94099230ede9..000000000000
--- a/awscli/examples/chime/update-proxy-session.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-**To update a proxy session**
-
-The following ``update-proxy-session`` example updates the proxy session capabilities. ::
-
- aws chime update-proxy-session \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --proxy-session-id 123a4bc5-67d8-901e-2f3g-h4ghjk56789l \
- --capabilities "Voice"
-
-Output::
-
- {
- "ProxySession": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "ProxySessionId": "123a4bc5-67d8-901e-2f3g-h4ghjk56789l",
- "Status": "Open",
- "ExpiryMinutes": 60,
- "Capabilities": [
- "Voice"
- ],
- "CreatedTimestamp": "2020-04-15T16:10:10.288Z",
- "UpdatedTimestamp": "2020-04-15T16:10:10.288Z",
- "Participants": [
- {
- "PhoneNumber": "+12065550100",
- "ProxyPhoneNumber": "+19135550199"
- },
- {
- "PhoneNumber": "+14015550101",
- "ProxyPhoneNumber": "+19135550199"
- }
- ]
- }
- }
-
-For more information, see `Proxy Phone Sessions `__ in the *Amazon Chime Developer Guide*.
diff --git a/awscli/examples/chime/update-voice-connector-group.rst b/awscli/examples/chime/update-voice-connector-group.rst
deleted file mode 100644
index 428ac65e5b3f..000000000000
--- a/awscli/examples/chime/update-voice-connector-group.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-**To update the details for an Amazon Chime Voice Connector group**
-
-The following ``update-voice-connector-group`` example updates the details of the specified Amazon Chime Voice Connector group. ::
-
- aws chime update-voice-connector-group \
- --voice-connector-group-id 123a456b-c7d8-90e1-fg23-4h567jkl8901 \
- --name "newGroupName" \
- --voice-connector-items VoiceConnectorId=abcdef1ghij2klmno3pqr4,Priority=1
-
-Output::
-
- {
- "VoiceConnectorGroup": {
- "VoiceConnectorGroupId": "123a456b-c7d8-90e1-fg23-4h567jkl8901",
- "Name": "newGroupName",
- "VoiceConnectorItems": [
- {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "Priority": 1
- }
- ],
- "CreatedTimestamp": "2019-09-18T16:38:34.734Z",
- "UpdatedTimestamp": "2019-10-28T19:00:57.081Z"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connector Groups `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/chime/update-voice-connector.rst b/awscli/examples/chime/update-voice-connector.rst
deleted file mode 100644
index a80223f3383e..000000000000
--- a/awscli/examples/chime/update-voice-connector.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-**To update the details for an Amazon Chime Voice Connector**
-
-The following ``update-voice-connector`` example updates the name of the specified Amazon Chime Voice Connector. ::
-
- aws chime update-voice-connector \
- --voice-connector-id abcdef1ghij2klmno3pqr4 \
- --name newName \
- --require-encryption
-
-Output::
-
- {
- "VoiceConnector": {
- "VoiceConnectorId": "abcdef1ghij2klmno3pqr4",
- "AwsRegion": "us-west-2",
- "Name": "newName",
- "OutboundHostName": "abcdef1ghij2klmno3pqr4.voiceconnector.chime.aws",
- "RequireEncryption": true,
- "CreatedTimestamp": "2019-09-18T20:34:01.352Z",
- "UpdatedTimestamp": "2019-09-18T20:40:52.895Z"
- }
- }
-
-For more information, see `Working with Amazon Chime Voice Connectors `__ in the *Amazon Chime Administration Guide*.
diff --git a/awscli/examples/cloudformation/_package_description.rst b/awscli/examples/cloudformation/_package_description.rst
index f47ec2212916..2eff27560b1c 100644
--- a/awscli/examples/cloudformation/_package_description.rst
+++ b/awscli/examples/cloudformation/_package_description.rst
@@ -40,7 +40,7 @@ For example, if your AWS Lambda function source code is in the
``/home/user/code/lambdafunction/`` folder, specify
``CodeUri: /home/user/code/lambdafunction`` for the
``AWS::Serverless::Function`` resource. The command returns a template and replaces
-the local path with the S3 location: ``CodeUri: s3://mybucket/lambdafunction.zip``.
+the local path with the S3 location: ``CodeUri: s3://amzn-s3-demo-bucket/lambdafunction.zip``.
If you specify a file, the command directly uploads it to the S3 bucket. If you
specify a folder, the command zips the folder and then uploads the .zip file.
@@ -49,8 +49,8 @@ current working directory. The exception is ``AWS::ApiGateway::RestApi``;
if you don't specify a ``BodyS3Location``, this command will not upload an artifact to S3.
Before the command uploads artifacts, it checks if the artifacts are already
-present in the S3 bucket to prevent unnecessary uploads. The command uses MD5
-checksums to compare files. If the values match, the command doesn't upload the
-artifacts. Use the ``--force-upload flag`` to skip this check and always upload the
-artifacts.
+present in the S3 bucket to prevent unnecessary uploads. If the values match, the
+command doesn't upload the artifacts. Use the ``--force-upload flag`` to skip this
+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.
diff --git a/awscli/examples/cloudformation/create-generated-template.rst b/awscli/examples/cloudformation/create-generated-template.rst
new file mode 100644
index 000000000000..9f321fcba5c1
--- /dev/null
+++ b/awscli/examples/cloudformation/create-generated-template.rst
@@ -0,0 +1,50 @@
+**To create a generated template from scanned resources**
+
+The following ``create-generated-template`` example creates a generated template named ``MyTemplate`` from scanned resources. ::
+
+ aws cloudformation create-generated-template \
+ --generated-template-name MyTemplate \
+ --resources file://resources.json
+
+Contents of ``resources.json``::
+
+ [
+ {
+ "ResourceType": "AWS::EKS::Cluster",
+ "LogicalResourceId":"MyCluster",
+ "ResourceIdentifier": {
+ "ClusterName": "MyAppClusterName"
+ }
+ },
+ {
+ "ResourceType": "AWS::AutoScaling::AutoScalingGroup",
+ "LogicalResourceId":"MyASG",
+ "ResourceIdentifier": {
+ "AutoScalingGroupName": "MyAppASGName"
+ }
+ },
+ {
+ "ResourceType": "AWS::EKS::Nodegroup",
+ "LogicalResourceId":"MyNodegroup",
+ "ResourceIdentifier": {
+ "NodegroupName": "MyAppNodegroupName"
+ }
+ },
+ {
+ "ResourceType": "AWS::IAM::Role",
+ "LogicalResourceId":"MyRole",
+ "ResourceIdentifier": {
+ "RoleId": "arn:aws::iam::123456789012:role/MyAppIAMRole"
+ }
+ }
+ ]
+
+Output::
+
+ {
+ "Arn":
+ "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/7fc8512c-d8cb-4e02-b266-d39c48344e48",
+ "Name": "MyTemplate"
+ }
+
+For more information, see `Create a CloudFormation template from resources scanned with IaC generator `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/create-stack-refactor.rst b/awscli/examples/cloudformation/create-stack-refactor.rst
new file mode 100644
index 000000000000..0e2d974df7d6
--- /dev/null
+++ b/awscli/examples/cloudformation/create-stack-refactor.rst
@@ -0,0 +1,16 @@
+**To create the stack definition for a stack refactor operation**
+
+The following ``create-stack-refactor`` example creates the stack definition for stack refactoring. ::
+
+ aws cloudformation create-stack-refactor \
+ --stack-definitions \
+ StackName=Stack1,TemplateBody@=file://template1-updated.yaml \
+ StackName=Stack2,TemplateBody@=file://template2-updated.yaml
+
+Output::
+
+ {
+ "StackRefactorId": "9c384f70-4e07-4ed7-a65d-fee5eb430841"
+ }
+
+For more information, see `Stack refactoring `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/delete-generated-template.rst b/awscli/examples/cloudformation/delete-generated-template.rst
new file mode 100644
index 000000000000..817305663b49
--- /dev/null
+++ b/awscli/examples/cloudformation/delete-generated-template.rst
@@ -0,0 +1,10 @@
+**To delete a generated template**
+
+The following ``delete-generated-template`` example deletes the specified template. ::
+
+ aws cloudformation delete-generated-template \
+ --generated-template-name MyTemplate
+
+This command produces no output.
+
+For more information, see `Generating templates from existing resources `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/describe-generated-template.rst b/awscli/examples/cloudformation/describe-generated-template.rst
new file mode 100644
index 000000000000..e66305302b62
--- /dev/null
+++ b/awscli/examples/cloudformation/describe-generated-template.rst
@@ -0,0 +1,62 @@
+**To describe a generated template**
+
+The following ``describe-generated-template`` example describes the specified template. ::
+
+ aws cloudformation describe-generated-template \
+ --generated-template-name MyTemplate
+
+Output::
+
+ {
+ "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedTemplate/7d881acf-f307-4ded-910e-f8fb49b96894",
+ "GeneratedTemplateName": "MyTemplate",
+ "Resources": [
+ {
+ "ResourceType": "AWS::EC2::SecurityGroup",
+ "LogicalResourceId": "EC2SecurityGroup",
+ "ResourceIdentifier": {
+ "Id": "sg-1234567890abcdef0"
+ },
+ "ResourceStatus": "COMPLETE",
+ "ResourceStatusReason": "Resource Template complete",
+ "Warnings": []
+ },
+ {
+ "ResourceType": "AWS::EC2::Instance",
+ "LogicalResourceId": "EC2Instance",
+ "ResourceIdentifier": {
+ "InstanceId": "i-1234567890abcdef0"
+ },
+ "ResourceStatus": "COMPLETE",
+ "ResourceStatusReason": "Resource Template complete",
+ "Warnings": []
+ },
+ {
+ "ResourceType": "AWS::EC2::KeyPair",
+ "LogicalResourceId": "EC2KeyPairSshkeypair",
+ "ResourceIdentifier": {
+ "KeyName": "sshkeypair"
+ },
+ "ResourceStatus": "COMPLETE",
+ "ResourceStatusReason": "Resource Template complete",
+ "Warnings": []
+ }
+ ],
+ "Status": "COMPLETE",
+ "StatusReason": "All resources complete",
+ "CreationTime": "2025-09-23T19:38:06.435000+00:00",
+ "LastUpdatedTime": "2025-09-23T19:38:10.798000+00:00",
+ "Progress": {
+ "ResourcesSucceeded": 3,
+ "ResourcesFailed": 0,
+ "ResourcesProcessing": 0,
+ "ResourcesPending": 0
+ },
+ "TemplateConfiguration": {
+ "DeletionPolicy": "RETAIN",
+ "UpdateReplacePolicy": "RETAIN"
+ },
+ "TotalWarnings": 0
+ }
+
+For more information, see `Generating templates from existing resources `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/describe-resource-scan.rst b/awscli/examples/cloudformation/describe-resource-scan.rst
new file mode 100644
index 000000000000..bda035638add
--- /dev/null
+++ b/awscli/examples/cloudformation/describe-resource-scan.rst
@@ -0,0 +1,38 @@
+**To describe a resource scan**
+
+The following ``describe-resource-scan`` example describes the resource scan with the specified scan ID. ::
+
+ aws cloudformation describe-resource-scan --region \
+ --resource-scan-id arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60
+
+Output::
+
+ {
+ "ResourceScanId": "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60",
+ "Status": "COMPLETE",
+ "StartTime": "2025-08-21T03:10:38.485000+00:00",
+ "EndTime": "2025-08-21T03:20:28.485000+00:00",
+ "PercentageCompleted": 100.0,
+ "ResourceTypes": [
+ "AWS::CloudFront::CachePolicy",
+ "AWS::CloudFront::OriginRequestPolicy",
+ "AWS::EC2::DHCPOptions",
+ "AWS::EC2::InternetGateway",
+ "AWS::EC2::KeyPair",
+ "AWS::EC2::NetworkAcl",
+ "AWS::EC2::NetworkInsightsPath",
+ "AWS::EC2::NetworkInterface",
+ "AWS::EC2::PlacementGroup",
+ "AWS::EC2::Route",
+ "AWS::EC2::RouteTable",
+ "AWS::EC2::SecurityGroup",
+ "AWS::EC2::Subnet",
+ "AWS::EC2::SubnetCidrBlock",
+ "AWS::EC2::SubnetNetworkAclAssociation",
+ "AWS::EC2::SubnetRouteTableAssociation",
+ ...
+ ],
+ "ResourcesRead": 676
+ }
+
+For more information, see `Generating templates from existing resources `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/describe-stack-refactor.rst b/awscli/examples/cloudformation/describe-stack-refactor.rst
new file mode 100644
index 000000000000..fa3612dd6982
--- /dev/null
+++ b/awscli/examples/cloudformation/describe-stack-refactor.rst
@@ -0,0 +1,20 @@
+**To describe a stack refactor operation**
+
+The following ``describe-stack-refactor`` example describes the stack refactor operation with the specified stack refactor ID. ::
+
+ aws cloudformation describe-stack-refactor \
+ --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
+
+Output::
+
+ {
+ "StackRefactorId": "9c384f70-4e07-4ed7-a65d-fee5eb430841",
+ "StackIds": [
+ "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
+ "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b"
+ ],
+ "ExecutionStatus": "AVAILABLE",
+ "Status": "CREATE_COMPLETE"
+ }
+
+For more information, see `Stack refactoring `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/execute-stack-refactor.rst b/awscli/examples/cloudformation/execute-stack-refactor.rst
new file mode 100644
index 000000000000..e083bd3b913e
--- /dev/null
+++ b/awscli/examples/cloudformation/execute-stack-refactor.rst
@@ -0,0 +1,10 @@
+**To complete a stack refactor operation**
+
+The following ``execute-stack-refactor`` example completes the stack refactor operation with the specified stack refactor ID. ::
+
+ aws cloudformation execute-stack-refactor \
+ --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
+
+This command produces no output.
+
+For more information, see `Stack refactoring `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/list-generated-templates.rst b/awscli/examples/cloudformation/list-generated-templates.rst
new file mode 100644
index 000000000000..30ae27d0d65d
--- /dev/null
+++ b/awscli/examples/cloudformation/list-generated-templates.rst
@@ -0,0 +1,41 @@
+**To list generated templates**
+
+The following ``list-generated-templates`` example lists all generated templates. ::
+
+ aws cloudformation list-generated-templates
+
+Output::
+
+ {
+ "Summaries": [
+ {
+ "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/7fc8512c-d8cb-4e02-b266-d39c48344e48",
+ "GeneratedTemplateName": "MyTemplate",
+ "Status": "COMPLETE",
+ "StatusReason": "All resources complete",
+ "CreationTime": "2025-09-23T20:13:24.283000+00:00",
+ "LastUpdatedTime": "2025-09-23T20:13:28.610000+00:00",
+ "NumberOfResources": 4
+ },
+ {
+ "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedTemplate/f10dd1c4-edc6-4823-8153-ab6112b8d051",
+ "GeneratedTemplateName": "MyEC2InstanceTemplate",
+ "Status": "COMPLETE",
+ "StatusReason": "All resources complete",
+ "CreationTime": "2024-08-08T19:35:49.790000+00:00",
+ "LastUpdatedTime": "2024-08-08T19:35:52.207000+00:00",
+ "NumberOfResources": 3
+ },
+ {
+ "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedTemplate/e5a1c89f-7ce2-41bd-9bdf-75b7c852e3ca",
+ "GeneratedTemplateName": "MyEKSNodeGroupTemplate",
+ "Status": "COMPLETE",
+ "StatusReason": "All resources complete",
+ "CreationTime": "2024-07-16T20:39:27.883000+00:00",
+ "LastUpdatedTime": "2024-07-16T20:39:35.766000+00:00",
+ "NumberOfResources": 4
+ }
+ ]
+ }
+
+For more information, see `Generating templates from existing resources `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/list-resource-scan-related-resources.rst b/awscli/examples/cloudformation/list-resource-scan-related-resources.rst
new file mode 100644
index 000000000000..1150d4799d30
--- /dev/null
+++ b/awscli/examples/cloudformation/list-resource-scan-related-resources.rst
@@ -0,0 +1,47 @@
+**To list related resources from a resource scan**
+
+The following ``list-resource-scan-related-resources`` example lists resources from the specified resource scan that are related to resources in ``resources.json``. ::
+
+ aws cloudformation list-resource-scan-related-resources \
+ --resource-scan-id arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60 \
+ --resources file://resources.json
+
+Contents of ``resources.json``::
+
+ [
+ {
+ "ResourceType": "AWS::EKS::Cluster",
+ "ResourceIdentifier": {
+ "ClusterName": "MyAppClusterName"
+ }
+ },
+ {
+ "ResourceType": "AWS::AutoScaling::AutoScalingGroup",
+ "ResourceIdentifier": {
+ "AutoScalingGroupName": "MyAppASGName"
+ }
+ }
+ ]
+
+Output::
+
+ {
+ "RelatedResources": [
+ {
+ "ResourceType": "AWS::EKS::Nodegroup",
+ "ResourceIdentifier": {
+ "NodegroupName": "MyAppNodegroupName"
+ },
+ "ManagedByStack": false
+ },
+ {
+ "ResourceType": "AWS::IAM::Role",
+ "ResourceIdentifier": {
+ "RoleId": "arn:aws::iam::123456789012:role/MyAppIAMRole"
+ },
+ "ManagedByStack": false
+ }
+ ]
+ }
+
+For more information, see `Create a CloudFormation template from resources scanned with IaC generator `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/list-resource-scan-resources.rst b/awscli/examples/cloudformation/list-resource-scan-resources.rst
new file mode 100644
index 000000000000..1b072381806a
--- /dev/null
+++ b/awscli/examples/cloudformation/list-resource-scan-resources.rst
@@ -0,0 +1,30 @@
+**To list resources from a resource scan**
+
+The following ``list-resource-scan-resources`` example lists resources from the specified resource scan, filtered by resource identifier. ::
+
+ aws cloudformation list-resource-scan-resources \
+ --resource-scan-id arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60 \
+ --resource-identifier MyApp
+
+Output::
+
+ {
+ "Resources": [
+ {
+ "ResourceType": "AWS::EKS::Cluster",
+ "ResourceIdentifier": {
+ "ClusterName": "MyAppClusterName"
+ },
+ "ManagedByStack": false
+ },
+ {
+ "ResourceType": "AWS::AutoScaling::AutoScalingGroup",
+ "ResourceIdentifier": {
+ "AutoScalingGroupName": "MyAppASGName"
+ },
+ "ManagedByStack": false
+ }
+ ]
+ }
+
+For more information, see `Create a CloudFormation template from resources scanned with IaC generator `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/list-stack-refactor-actions.rst b/awscli/examples/cloudformation/list-stack-refactor-actions.rst
new file mode 100644
index 000000000000..1e0c4e06ae16
--- /dev/null
+++ b/awscli/examples/cloudformation/list-stack-refactor-actions.rst
@@ -0,0 +1,71 @@
+**To list actions for a stack refactor operation**
+
+The following ``list-stack-refactor-actions`` example lists actions for the stack refactor operation with the specified stack refactor ID. ::
+
+ aws cloudformation list-stack-refactor-actions \
+ --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
+
+Output::
+
+ {
+ "StackRefactorActions": [
+ {
+ "Action": "MOVE",
+ "Entity": "RESOURCE",
+ "PhysicalResourceId": "MyTestLambdaRole",
+ "Description": "No configuration changes detected.",
+ "Detection": "AUTO",
+ "TagResources": [],
+ "UntagResources": [],
+ "ResourceMapping": {
+ "Source": {
+ "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
+ "LogicalResourceId": "MyLambdaRole"
+ },
+ "Destination": {
+ "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b",
+ "LogicalResourceId": "MyLambdaRole"
+ }
+ }
+ },
+ {
+ "Action": "MOVE",
+ "Entity": "RESOURCE",
+ "PhysicalResourceId": "MyTestFunction",
+ "Description": "Resource configuration changes will be validated during refactor execution.",
+ "Detection": "AUTO",
+ "TagResources": [
+ {
+ "Key": "aws:cloudformation:stack-name",
+ "Value": "Stack2"
+ },
+ {
+ "Key": "aws:cloudformation:logical-id",
+ "Value": "MyFunction"
+ },
+ {
+ "Key": "aws:cloudformation:stack-id",
+ "Value": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b"
+ }
+ ],
+ "UntagResources": [
+ "aws:cloudformation:stack-name",
+ "aws:cloudformation:logical-id",
+ "aws:cloudformation:stack-id"
+ ],
+ "ResourceMapping": {
+ "Source": {
+ "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
+ "LogicalResourceId": "MyFunction"
+ },
+ "Destination": {
+ "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b",
+ "LogicalResourceId": "MyFunction"
+ }
+ }
+ }
+ ]
+ }
+
+
+For more information, see `Stack refactoring `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudformation/start-resource-scan.rst b/awscli/examples/cloudformation/start-resource-scan.rst
new file mode 100644
index 000000000000..5b26692dd015
--- /dev/null
+++ b/awscli/examples/cloudformation/start-resource-scan.rst
@@ -0,0 +1,14 @@
+**To start a resource scan**
+
+The following ``start-resource-scan`` example starts a resource scan that scans all existing resources in the current account and Region. ::
+
+ aws cloudformation start-resource-scan
+
+Output::
+
+ {
+ "ResourceScanId":
+ "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60"
+ }
+
+For more information, see `Start a resource scan with CloudFormation IaC generator `__ in the *AWS CloudFormation User Guide*.
diff --git a/awscli/examples/cloudfront/associate-distribution-tenant-web-acl.rst b/awscli/examples/cloudfront/associate-distribution-tenant-web-acl.rst
new file mode 100644
index 000000000000..3763f9c86de3
--- /dev/null
+++ b/awscli/examples/cloudfront/associate-distribution-tenant-web-acl.rst
@@ -0,0 +1,18 @@
+**To associate a web ACL with a CloudFront distribution tenant**
+
+The following ``associate-distribution-tenant-web-acl`` example associates a web ACL with a CloudFront distribution with ETag ``E13V1IB3VIYABC``. ::
+
+ aws cloudfront associate-distribution-tenant-web-acl \
+ --id dt_2wjDZi3hD1ivOXf6rpZJO1AB \
+ --if-match E13V1IB3VIYABC \
+ --web-acl-arn arn:aws:wafv2:us-east-1:123456789012:global/webacl/web-global-example/626900da-5f64-418b-ba9b-743f37123ABC
+
+Output::
+
+ {
+ "ETag": "E1VC38T7YXBABC",
+ "Id": "dt_2wjDZi3hD1ivOXf6rpZJO1AB",
+ "WebACLArn": "arn:aws:wafv2:us-east-1:123456789012:global/webacl/web-global-example/626900da-5f64-418b-ba9b-743f37123ABC"
+ }
+
+For more information, see `Use AWS WAF protections `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/associate-distribution-web-acl.rst b/awscli/examples/cloudfront/associate-distribution-web-acl.rst
new file mode 100644
index 000000000000..cf1a469496d5
--- /dev/null
+++ b/awscli/examples/cloudfront/associate-distribution-web-acl.rst
@@ -0,0 +1,18 @@
+**To associate a web ACL with a CloudFront distribution**
+
+The following ``associate-distribution-web-acl`` example associates a web ACL with a CloudFront distribution. ::
+
+ aws cloudfront associate-distribution-web-acl \
+ --id E1XNX8R2GOAABC \
+ --if-match E2YWS1C2J3OABC \
+ --web-acl-arn arn:aws:wafv2:us-east-1:123456789012:global/webacl/web-global-example/626900da-5f64-418b-ba9b-743f3746cABC
+
+Output::
+
+ {
+ "ETag": "E3QE7ED60U0ABC",
+ "Id": "E1XNX8R2GOAABC",
+ "WebACLArn": "arn:aws:wafv2:us-east-1:123456789012:global/webacl/web-global-example/626900da-5f64-418b-ba9b-743f3746cABC"
+ }
+
+For more information, see `Use AWS WAF protections `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/create-connection-group.rst b/awscli/examples/cloudfront/create-connection-group.rst
new file mode 100644
index 000000000000..a9f3e3b6459a
--- /dev/null
+++ b/awscli/examples/cloudfront/create-connection-group.rst
@@ -0,0 +1,39 @@
+**To create a connection group in CloudFront**
+
+The following ``create-connection-group`` example creates an enabled connection group, specifies an Anycast static IP list, and disables IPv6. ::
+
+ aws cloudfront create-connection-group \
+ --name cg-with-anycast-ip-list \
+ --no-ipv6-enabled \
+ --enabled \
+ --anycast-ip-list-id aip_CCkW6gKrDiBD4n78123ABC \
+ --tags "Items=[{Key=abc,Value=123}]"
+
+Output::
+
+ {
+ "ETag": "E23ZP02F085ABC",
+ "ConnectionGroup": {
+ "Id": "cg_2yb6uj74B4PCbfhT31WFdiSABC",
+ "Name": "cg-with-anycast-ip-list",
+ "Arn": "arn:aws:cloudfront::123456789012:connection-group/cg_2yb6uj74B4PCbfhT31WFdiSABC",
+ "CreatedTime": "2025-06-16T16:25:50.061000+00:00",
+ "LastModifiedTime": "2025-06-16T16:25:50.061000+00:00",
+ "Tags": {
+ "Items": [
+ {
+ "Key": "abc",
+ "Value": "123"
+ }
+ ]
+ },
+ "Ipv6Enabled": false,
+ "RoutingEndpoint": "dj6xusxq65abc.cloudfront.net",
+ "AnycastIpListId": "aip_CCkW6gKrDiBD4n78123ABC",
+ "Status": "InProgress",
+ "Enabled": true,
+ "IsDefault": false
+ }
+ }
+
+For more information, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/create-distribution-tenant.rst b/awscli/examples/cloudfront/create-distribution-tenant.rst
new file mode 100644
index 000000000000..86bab8d1b594
--- /dev/null
+++ b/awscli/examples/cloudfront/create-distribution-tenant.rst
@@ -0,0 +1,275 @@
+**Example 1: To create a CloudFront distribution tenant that uses a custom certificate**
+
+The following ``create-distribution-tenant`` example creates a CloudFront distribution tenant that specifies customizations to disable WAF, add geo-restrictions, and uses another TLS certificate. ::
+
+ aws cloudfront create-distribution-tenant \
+ --cli-input-json file://tenant.json
+
+Contents of ``tenant.json``::
+
+ {
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Domains": [
+ {
+ "Domain": "example.com"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "testParam",
+ "Value": "defaultValue"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "Enabled": false,
+ "Tags": {
+ "Items": [
+ {
+ "Key": "tag",
+ "Value": "tagValue"
+ }
+ ]
+ },
+ "Name": "new-tenant-customizations",
+ "Customizations": {
+ "GeoRestrictions": {
+ "Locations": ["DE"],
+ "RestrictionType": "whitelist"
+ },
+ "WebAcl": {
+ "Action": "disable"
+ },
+ "Certificate": {
+ "Arn": "arn:aws:acm:us-east-1:123456789012:certificate/ec53f564-ea5a-4e4a-a0a2-e3c989449abc"
+ }
+ }
+ }
+
+Output::
+
+ {
+ "ETag": "E23ZP02F085ABC",
+ "DistributionTenant": {
+ "Id": "dt_2yN5tYwVbPKr7m2IB69M1yp1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "new-tenant-customizations",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2yN5tYwVbPKr7m2IB69M1yp1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "active"
+ }
+ ],
+ "Tags": {
+ "Items": [
+ {
+ "Key": "tag",
+ "Value": "tagValue"
+ }
+ ]
+ },
+ "Customizations": {
+ "WebAcl": {
+ "Action": "disable"
+ },
+ "Certificate": {
+ "Arn": "arn:aws:acm:us-east-1:123456789012:certificate/ec53f564-ea5a-4e4a-a0a2-e3c989449abc"
+ },
+ "GeoRestrictions": {
+ "RestrictionType": "whitelist",
+ "Locations": [
+ "DE"
+ ]
+ }
+ },
+ "Parameters": [
+ {
+ "Name": "testParam",
+ "Value": "defaultValue"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "CreatedTime": "2025-06-11T17:20:06.432000+00:00",
+ "LastModifiedTime": "2025-06-11T17:20:06.432000+00:00",
+ "Enabled": false,
+ "Status": "InProgress"
+ }
+ }
+
+**Example 2: To create a distribution tenant with an inherited certificate**
+
+The following ``create-distribution-tenant`` example creates a distribution tenant and specifies an inherited TLS certificate from the multi-tenant distribution. ::
+
+ aws cloudfront create-distribution-tenant \
+ --cli-input-json file://tenant.json
+
+Contents of ``tenant.json``::
+
+ {
+ "DistributionId": "E1HVIAU7U12ABC",
+ "Domains": [
+ {
+ "Domain": "example.com"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "tenantName",
+ "Value": "first-tenant"
+ }
+ ],
+ "Enabled": true,
+ "Name": "new-tenant-no-cert"
+ }
+
+Output::
+
+ {
+ "ETag": "E23ZP02F0ABC",
+ "DistributionTenant": {
+ "Id": "dt_2zhRB0vBe0B72LZCVy1mgzI1AB",
+ "DistributionId": "E1HVIAU7U12ABC",
+ "Name": "new-tenant-no-cert",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2zhRB0vBe0B72LZCVy1mgzI1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "active"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "tenantName",
+ "Value": "first-tenant"
+ }
+ ],
+ "ConnectionGroupId": "cg_2yQEwpipGFN0hhA0ZemPabOABC",
+ "CreatedTime": "2025-07-10T20:59:38.414000+00:00",
+ "LastModifiedTime": "2025-07-10T20:59:38.414000+00:00",
+ "Enabled": true,
+ "Status": "InProgress"
+ }
+ }
+
+**Example 3: To create a CloudFront distribution tenant using a CloudFront-hosted validation token**
+
+The following ``create-distribution-tenant`` example creates a distribution tenant and uses a CloudFront-hosted validation token for your domain name. ::
+
+ aws cloudfront create-distribution-tenant \
+ --cli-input-json file://tenant.json
+
+Contents of ``tenant.json``::
+
+ {
+ "DistributionId": "E2GJ5J9QN12ABC",
+ "Domains": [
+ {
+ "Domain": "example.com"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "tenantName",
+ "Value": "first-tenant"
+ }
+ ],
+ "ConnectionGroupId": "cg_2yQEwpipGFN0hhA0ZemPabOABC",
+ "Enabled": true,
+ "Name": "new-tenant-cf-hosted",
+ "ManagedCertificateRequest": {
+ "ValidationTokenHost": "cloudfront"
+ }
+ }
+
+**Important:** To successfully run this command, you must configure a CNAME DNS record that points your new domain (example.com) to the routing endpoint of the connection group that is associated with the distribution tenant. This CNAME record must also be propagated before CloudFront can successfully complete this request.
+
+Output::
+
+ {
+ "ETag": "E23ZP02F0ABC",
+ "DistributionTenant": {
+ "Id": "dt_2zhStKrA524GvvTWJX92Ozl1AB",
+ "DistributionId": "E2GJ5J9QN12ABC",
+ "Name": "new-tenant-cf-hosted",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2zhStKrA524GvvTWJX92Ozl1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "inactive"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "tenantName",
+ "Value": "first-tenant"
+ }
+ ],
+ "ConnectionGroupId": "cg_2zhSaGatwwXjTjE42nneZzqABC",
+ "CreatedTime": "2025-07-10T21:13:46.416000+00:00",
+ "LastModifiedTime": "2025-07-10T21:13:46.416000+00:00",
+ "Enabled": true,
+ "Status": "InProgress"
+ }
+ }
+
+**Example 4: To create a CloudFront distribution tenant using a self-hosted validation token**
+
+The following ``create-distribution-tenant`` example creates a CloudFront distribution tenant and uses a self-hosted validation token. ::
+
+ aws cloudfront create-distribution-tenant \
+ --cli-input-json file://tenant.json
+
+Contents of ``tenant.json``::
+
+ {
+ "DistributionId": "E2GJ5J9QN12ABC",
+ "Domains": [
+ {
+ "Domain": "example.com"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "tenantName",
+ "Value": "first-tenant"
+ }
+ ],
+ "Enabled": true,
+ "Name": "new-tenant-self-hosted",
+ "ManagedCertificateRequest": {
+ "ValidationTokenHost": "self-hosted"
+ }
+ }
+
+Output::
+
+ {
+ "ETag": "E23ZP02F0ABC",
+ "DistributionTenant": {
+ "Id": "dt_2zhTFBV93OfFJJ3YMdNM5BC1AB",
+ "DistributionId": "E2GJ5J9QN12ABC",
+ "Name": "new-tenant-self-hosted",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2zhTFBV93OfFJJ3YMdNM5BC1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "inactive"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "tenantName",
+ "Value": "first-tenant"
+ }
+ ],
+ "ConnectionGroupId": "cg_2yQEwpipGFN0hhA0ZemPabOABC",
+ "CreatedTime": "2025-07-10T21:16:39.828000+00:00",
+ "LastModifiedTime": "2025-07-10T21:16:39.828000+00:00",
+ "Enabled": true,
+ "Status": "InProgress"
+ }
+ }
+
+**Important:** After you run this command, the distribution tenant will be created without validation. To validate the managed certificate request and configure the DNS when you're ready to start receiving traffic, see `Complete domain setup `__ in the *Amazon CloudFront Developer Guide*.
+
+For more information about creating distribution tenants, see `Create a distribution `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/create-distribution-with-tags.rst b/awscli/examples/cloudfront/create-distribution-with-tags.rst
index 889c289c2613..c9d8944b803e 100644
--- a/awscli/examples/cloudfront/create-distribution-with-tags.rst
+++ b/awscli/examples/cloudfront/create-distribution-with-tags.rst
@@ -1,20 +1,16 @@
**To create a CloudFront distribution with tags**
-The following example creates a distribution with two tags by providing the
-distribution configuration and tags in a JSON file named
-``dist-config-with-tags.json``::
+The following ``create-distribution-with-tags`` example creates a distribution with two tags by providing the distribution configuration and tags in a JSON file named ``dist-config-with-tags.json``. ::
aws cloudfront create-distribution-with-tags \
--distribution-config-with-tags file://dist-config-with-tags.json
-The file ``dist-config-with-tags.json`` is a JSON document in the current
-folder that contains the following. Note the ``Tags`` object at the top of
-the file, which contains two tags:
+The file ``dist-config-with-tags.json`` is a JSON document in the current folder. Note the ``Tags`` object at the top of the file, which contains two tags:
- ``Name = ExampleDistribution``
- ``Project = ExampleProject``
-::
+Contents of ``dist-config-with-tags.json``::
{
"Tags": {
@@ -39,8 +35,8 @@ the file, which contains two tags:
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
@@ -55,7 +51,7 @@ the file, which contains two tags:
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
"ForwardedValues": {
"QueryString": false,
"Cookies": {
@@ -155,8 +151,8 @@ Output::
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
@@ -171,7 +167,7 @@ Output::
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
"ForwardedValues": {
"QueryString": false,
"Cookies": {
diff --git a/awscli/examples/cloudfront/create-distribution.rst b/awscli/examples/cloudfront/create-distribution.rst
index f316ee43603a..daa501e56aa6 100644
--- a/awscli/examples/cloudfront/create-distribution.rst
+++ b/awscli/examples/cloudfront/create-distribution.rst
@@ -1,235 +1,625 @@
-**To create a CloudFront distribution**
-
-The following example creates a distribution for an S3 bucket named
-``awsexamplebucket``, and also specifies ``index.html`` as the default root
-object, using command line arguments::
-
- aws cloudfront create-distribution \
- --origin-domain-name awsexamplebucket.s3.amazonaws.com \
- --default-root-object index.html
-
-Instead of using command line arguments, you can provide the distribution
-configuration in a JSON file, as shown in the following example::
-
- aws cloudfront create-distribution \
- --distribution-config file://dist-config.json
-
-The file ``dist-config.json`` is a JSON document in the current folder that
-contains the following::
-
- {
- "CallerReference": "cli-example",
- "Aliases": {
- "Quantity": 0
- },
- "DefaultRootObject": "index.html",
- "Origins": {
- "Quantity": 1,
- "Items": [
- {
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
- "OriginPath": "",
- "CustomHeaders": {
- "Quantity": 0
- },
- "S3OriginConfig": {
- "OriginAccessIdentity": ""
- }
- }
- ]
- },
- "OriginGroups": {
- "Quantity": 0
- },
- "DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "ForwardedValues": {
- "QueryString": false,
- "Cookies": {
- "Forward": "none"
- },
- "Headers": {
- "Quantity": 0
- },
- "QueryStringCacheKeys": {
- "Quantity": 0
- }
- },
- "TrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "ViewerProtocolPolicy": "allow-all",
- "MinTTL": 0,
- "AllowedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ],
- "CachedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ]
- }
- },
- "SmoothStreaming": false,
- "DefaultTTL": 86400,
- "MaxTTL": 31536000,
- "Compress": false,
- "LambdaFunctionAssociations": {
- "Quantity": 0
- },
- "FieldLevelEncryptionId": ""
- },
- "CacheBehaviors": {
- "Quantity": 0
- },
- "CustomErrorResponses": {
- "Quantity": 0
- },
- "Comment": "",
- "Logging": {
- "Enabled": false,
- "IncludeCookies": false,
- "Bucket": "",
- "Prefix": ""
- },
- "PriceClass": "PriceClass_All",
- "Enabled": true,
- "ViewerCertificate": {
- "CloudFrontDefaultCertificate": true,
- "MinimumProtocolVersion": "TLSv1",
- "CertificateSource": "cloudfront"
- },
- "Restrictions": {
- "GeoRestriction": {
- "RestrictionType": "none",
- "Quantity": 0
- }
- },
- "WebACLId": "",
- "HttpVersion": "http2",
- "IsIPV6Enabled": true
- }
-
-Whether you provide the distribution information with a command line argument
-or a JSON file, the output is the same::
-
- {
- "Location": "https://cloudfront.amazonaws.com/2019-03-26/distribution/EMLARXS9EXAMPLE",
- "ETag": "E9LHASXEXAMPLE",
- "Distribution": {
- "Id": "EMLARXS9EXAMPLE",
- "ARN": "arn:aws:cloudfront::123456789012:distribution/EMLARXS9EXAMPLE",
- "Status": "InProgress",
- "LastModifiedTime": "2019-11-22T00:55:15.705Z",
- "InProgressInvalidationBatches": 0,
- "DomainName": "d111111abcdef8.cloudfront.net",
- "ActiveTrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "DistributionConfig": {
- "CallerReference": "cli-example",
- "Aliases": {
- "Quantity": 0
- },
- "DefaultRootObject": "index.html",
- "Origins": {
- "Quantity": 1,
- "Items": [
- {
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
- "OriginPath": "",
- "CustomHeaders": {
- "Quantity": 0
- },
- "S3OriginConfig": {
- "OriginAccessIdentity": ""
- }
- }
- ]
- },
- "OriginGroups": {
- "Quantity": 0
- },
- "DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "ForwardedValues": {
- "QueryString": false,
- "Cookies": {
- "Forward": "none"
- },
- "Headers": {
- "Quantity": 0
- },
- "QueryStringCacheKeys": {
- "Quantity": 0
- }
- },
- "TrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "ViewerProtocolPolicy": "allow-all",
- "MinTTL": 0,
- "AllowedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ],
- "CachedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ]
- }
- },
- "SmoothStreaming": false,
- "DefaultTTL": 86400,
- "MaxTTL": 31536000,
- "Compress": false,
- "LambdaFunctionAssociations": {
- "Quantity": 0
- },
- "FieldLevelEncryptionId": ""
- },
- "CacheBehaviors": {
- "Quantity": 0
- },
- "CustomErrorResponses": {
- "Quantity": 0
- },
- "Comment": "",
- "Logging": {
- "Enabled": false,
- "IncludeCookies": false,
- "Bucket": "",
- "Prefix": ""
- },
- "PriceClass": "PriceClass_All",
- "Enabled": true,
- "ViewerCertificate": {
- "CloudFrontDefaultCertificate": true,
- "MinimumProtocolVersion": "TLSv1",
- "CertificateSource": "cloudfront"
- },
- "Restrictions": {
- "GeoRestriction": {
- "RestrictionType": "none",
- "Quantity": 0
- }
- },
- "WebACLId": "",
- "HttpVersion": "http2",
- "IsIPV6Enabled": true
- }
- }
- }
+**Example 1: To create a CloudFront distribution**
+
+The following ``create-distribution`` example creates a distribution for an S3 bucket named ``amzn-s3-demo-bucket``, and also specifies ``index.html`` as the default root object, using command line arguments. ::
+
+ aws cloudfront create-distribution \
+ --origin-domain-name amzn-s3-demo-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+
+Output::
+
+ {
+ "Location": "https://cloudfront.amazonaws.com/2019-03-26/distribution/EMLARXS9EXAMPLE",
+ "ETag": "E9LHASXEXAMPLE",
+ "Distribution": {
+ "Id": "EMLARXS9EXAMPLE",
+ "ARN": "arn:aws:cloudfront::123456789012:distribution/EMLARXS9EXAMPLE",
+ "Status": "InProgress",
+ "LastModifiedTime": "2019-11-22T00:55:15.705Z",
+ "InProgressInvalidationBatches": 0,
+ "DomainName": "d111111abcdef8.cloudfront.net",
+ "ActiveTrustedSigners": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "DistributionConfig": {
+ "CallerReference": "cli-example",
+ "Aliases": {
+ "Quantity": 0
+ },
+ "DefaultRootObject": "index.html",
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
+ "OriginPath": "",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ }
+ }
+ ]
+ },
+ "OriginGroups": {
+ "Quantity": 0
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "ForwardedValues": {
+ "QueryString": false,
+ "Cookies": {
+ "Forward": "none"
+ },
+ "Headers": {
+ "Quantity": 0
+ },
+ "QueryStringCacheKeys": {
+ "Quantity": 0
+ }
+ },
+ "TrustedSigners": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ViewerProtocolPolicy": "allow-all",
+ "MinTTL": 0,
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ]
+ }
+ },
+ "SmoothStreaming": false,
+ "DefaultTTL": 86400,
+ "MaxTTL": 31536000,
+ "Compress": false,
+ "LambdaFunctionAssociations": {
+ "Quantity": 0
+ },
+ "FieldLevelEncryptionId": ""
+ },
+ "CacheBehaviors": {
+ "Quantity": 0
+ },
+ "CustomErrorResponses": {
+ "Quantity": 0
+ },
+ "Comment": "",
+ "Logging": {
+ "Enabled": false,
+ "IncludeCookies": false,
+ "Bucket": "",
+ "Prefix": ""
+ },
+ "PriceClass": "PriceClass_All",
+ "Enabled": true,
+ "ViewerCertificate": {
+ "CloudFrontDefaultCertificate": true,
+ "MinimumProtocolVersion": "TLSv1",
+ "CertificateSource": "cloudfront"
+ },
+ "Restrictions": {
+ "GeoRestriction": {
+ "RestrictionType": "none",
+ "Quantity": 0
+ }
+ },
+ "WebACLId": "",
+ "HttpVersion": "http2",
+ "IsIPV6Enabled": true
+ }
+ }
+ }
+
+**Example 2: To create a CloudFront distribution using a JSON file**
+
+The following ``create-distribution`` example creates a distribution for an S3 bucket named ``amzn-s3-demo-bucket``, and also specifies ``index.html`` as the default root object, using a JSON file. ::
+
+ aws cloudfront create-distribution \
+ --distribution-config file://dist-config.json
+
+
+Contents of ``dist-config.json``::
+
+ {
+ "CallerReference": "cli-example",
+ "Aliases": {
+ "Quantity": 0
+ },
+ "DefaultRootObject": "index.html",
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
+ "OriginPath": "",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ }
+ }
+ ]
+ },
+ "OriginGroups": {
+ "Quantity": 0
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "ForwardedValues": {
+ "QueryString": false,
+ "Cookies": {
+ "Forward": "none"
+ },
+ "Headers": {
+ "Quantity": 0
+ },
+ "QueryStringCacheKeys": {
+ "Quantity": 0
+ }
+ },
+ "TrustedSigners": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ViewerProtocolPolicy": "allow-all",
+ "MinTTL": 0,
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ]
+ }
+ },
+ "SmoothStreaming": false,
+ "DefaultTTL": 86400,
+ "MaxTTL": 31536000,
+ "Compress": false,
+ "LambdaFunctionAssociations": {
+ "Quantity": 0
+ },
+ "FieldLevelEncryptionId": ""
+ },
+ "CacheBehaviors": {
+ "Quantity": 0
+ },
+ "CustomErrorResponses": {
+ "Quantity": 0
+ },
+ "Comment": "",
+ "Logging": {
+ "Enabled": false,
+ "IncludeCookies": false,
+ "Bucket": "",
+ "Prefix": ""
+ },
+ "PriceClass": "PriceClass_All",
+ "Enabled": true,
+ "ViewerCertificate": {
+ "CloudFrontDefaultCertificate": true,
+ "MinimumProtocolVersion": "TLSv1",
+ "CertificateSource": "cloudfront"
+ },
+ "Restrictions": {
+ "GeoRestriction": {
+ "RestrictionType": "none",
+ "Quantity": 0
+ }
+ },
+ "WebACLId": "",
+ "HttpVersion": "http2",
+ "IsIPV6Enabled": true
+ }
+
+See Example 1 for sample output.
+
+**Example 3: To create a CloudFront multi-tenant distribution with a certificate**
+
+The following ``create-distribution`` example creates a CloudFront distribution with multi-tenant support and a specifies a TLS certificate. ::
+
+ aws cloudfront create-distribution \
+ --distribution-config file://dist-config.json
+
+Contents of ``dist-config.json``::
+
+ {
+ "CallerReference": "cli-example-with-cert",
+ "Comment": "CLI example distribution",
+ "DefaultRootObject": "index.html",
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "DomainName": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "OriginPath": "/{{tenantName}}",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ }
+ }
+ ]
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e5ABC",
+ "ViewerProtocolPolicy": "allow-all",
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": ["HEAD", "GET"],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": ["HEAD", "GET"]
+ }
+ }
+ },
+ "Enabled": true,
+ "ViewerCertificate": {
+ "ACMCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/191306a1-db01-49ca-90ef-fc414ee5dabc",
+ "SSLSupportMethod": "sni-only"
+ },
+ "HttpVersion": "http2",
+ "ConnectionMode": "tenant-only",
+ "TenantConfig": {
+ "ParameterDefinitions": [
+ {
+ "Name": "tenantName",
+ "Definition": {
+ "StringSchema": {
+ "Comment": "tenantName parameter",
+ "DefaultValue": "root",
+ "Required": false
+ }
+ }
+ }
+ ]
+ }
+ }
+
+Output::
+
+ {
+ "Location": "https://cloudfront.amazonaws.com/2020-05-31/distribution/E1HVIAU7UABC",
+ "ETag": "E20LT7R1BABC",
+ "Distribution": {
+ "Id": "E1HVIAU7U12ABC",
+ "ARN": "arn:aws:cloudfront::123456789012:distribution/E1HVIAU7U12ABC",
+ "Status": "InProgress",
+ "LastModifiedTime": "2025-07-10T20:33:31.117000+00:00",
+ "InProgressInvalidationBatches": 0,
+ "DomainName": "example.com",
+ "ActiveTrustedSigners": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ActiveTrustedKeyGroups": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "DistributionConfig": {
+ "CallerReference": "cli-example-with-cert",
+ "DefaultRootObject": "index.html",
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "DomainName": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "OriginPath": "/{{tenantName}}",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ },
+ "ConnectionAttempts": 3,
+ "ConnectionTimeout": 10,
+ "OriginShield": {
+ "Enabled": false
+ },
+ "OriginAccessControlId": ""
+ }
+ ]
+ },
+ "OriginGroups": {
+ "Quantity": 0
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "TrustedKeyGroups": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ViewerProtocolPolicy": "allow-all",
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": ["HEAD", "GET"],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": ["HEAD", "GET"]
+ }
+ },
+ "Compress": false,
+ "LambdaFunctionAssociations": {
+ "Quantity": 0
+ },
+ "FunctionAssociations": {
+ "Quantity": 0
+ },
+ "FieldLevelEncryptionId": "",
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e5ABC",
+ "GrpcConfig": {
+ "Enabled": false
+ }
+ },
+ "CacheBehaviors": {
+ "Quantity": 0
+ },
+ "CustomErrorResponses": {
+ "Quantity": 0
+ },
+ "Comment": "CLI example distribution",
+ "Logging": {
+ "Enabled": false,
+ "IncludeCookies": false,
+ "Bucket": "",
+ "Prefix": ""
+ },
+ "Enabled": true,
+ "ViewerCertificate": {
+ "CloudFrontDefaultCertificate": false,
+ "ACMCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/1954f095-11b6-4daf-9952-0c308a00abc",
+ "SSLSupportMethod": "sni-only",
+ "MinimumProtocolVersion": "TLSv1.2_2021",
+ "Certificate": "arn:aws:acm:us-east-1:123456789012:certificate/1954f095-11b6-4daf-9952-0c308a00abc",
+ "CertificateSource": "acm"
+ },
+ "Restrictions": {
+ "GeoRestriction": {
+ "RestrictionType": "none",
+ "Quantity": 0
+ }
+ },
+ "WebACLId": "",
+ "HttpVersion": "http2",
+ "TenantConfig": {
+ "ParameterDefinitions": [
+ {
+ "Name": "tenantName",
+ "Definition": {
+ "StringSchema": {
+ "Comment": "tenantName parameter",
+ "DefaultValue": "root",
+ "Required": false
+ }
+ }
+ }
+ ]
+ },
+ "ConnectionMode": "tenant-only"
+ }
+ }
+ }
+
+For more information, see `Working with distributions `__ in the *Amazon CloudFront Developer Guide*.
+
+**Example 4: To create a CloudFront multi-tenant distribution without a certificate**
+
+The following ``create-distribution`` example creates a CloudFront distribution with multi-tenant support but without a TLS certificate. ::
+
+ aws cloudfront create-distribution \
+ --distribution-config file://dist-config.json
+
+Contents of ``dist-config.json``::
+
+ {
+ "CallerReference": "cli-example",
+ "Comment": "CLI example distribution",
+ "DefaultRootObject": "index.html",
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "DomainName": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "OriginPath": "/{{tenantName}}",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ }
+ }
+ ]
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e5ABC",
+ "ViewerProtocolPolicy": "allow-all",
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ]
+ }
+ }
+ },
+ "Enabled": true,
+ "HttpVersion": "http2",
+ "ConnectionMode": "tenant-only",
+ "TenantConfig": {
+ "ParameterDefinitions": [
+ {
+ "Name": "tenantName",
+ "Definition": {
+ "StringSchema": {
+ "Comment": "tenantName parameter",
+ "DefaultValue": "root",
+ "Required": false
+ }
+ }
+ }
+ ]
+ }
+ }
+
+Output::
+
+ {
+ "Location": "https://cloudfront.amazonaws.com/2020-05-31/distribution/E2GJ5J9QN12ABC",
+ "ETag": "E37YLVVQIABC",
+ "Distribution": {
+ "Id": "E2GJ5J9QNABC",
+ "ARN": "arn:aws:cloudfront::123456789012:distribution/E2GJ5J9QN12ABC",
+ "Status": "InProgress",
+ "LastModifiedTime": "2025-07-10T20:35:20.565000+00:00",
+ "InProgressInvalidationBatches": 0,
+ "DomainName": "example.com",
+ "ActiveTrustedSigners": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ActiveTrustedKeyGroups": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "DistributionConfig": {
+ "CallerReference": "cli-example-no-cert",
+ "DefaultRootObject": "index.html",
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "DomainName": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "OriginPath": "/{{tenantName}}",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ },
+ "ConnectionAttempts": 3,
+ "ConnectionTimeout": 10,
+ "OriginShield": {
+ "Enabled": false
+ },
+ "OriginAccessControlId": ""
+ }
+ ]
+ },
+ "OriginGroups": {
+ "Quantity": 0
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "TrustedKeyGroups": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ViewerProtocolPolicy": "allow-all",
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ]
+ }
+ },
+ "Compress": false,
+ "LambdaFunctionAssociations": {
+ "Quantity": 0
+ },
+ "FunctionAssociations": {
+ "Quantity": 0
+ },
+ "FieldLevelEncryptionId": "",
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e5ABC",
+ "GrpcConfig": {
+ "Enabled": false
+ }
+ },
+ "CacheBehaviors": {
+ "Quantity": 0
+ },
+ "CustomErrorResponses": {
+ "Quantity": 0
+ },
+ "Comment": "CLI example distribution",
+ "Logging": {
+ "Enabled": false,
+ "IncludeCookies": false,
+ "Bucket": "",
+ "Prefix": ""
+ },
+ "Enabled": true,
+ "ViewerCertificate": {
+ "CloudFrontDefaultCertificate": true,
+ "SSLSupportMethod": "sni-only",
+ "MinimumProtocolVersion": "TLSv1",
+ "CertificateSource": "cloudfront"
+ },
+ "Restrictions": {
+ "GeoRestriction": {
+ "RestrictionType": "none",
+ "Quantity": 0
+ }
+ },
+ "WebACLId": "",
+ "HttpVersion": "http2",
+ "TenantConfig": {
+ "ParameterDefinitions": [
+ {
+ "Name": "tenantName",
+ "Definition": {
+ "StringSchema": {
+ "Comment": "tenantName parameter",
+ "DefaultValue": "root",
+ "Required": false
+ }
+ }
+ }
+ ]
+ },
+ "ConnectionMode": "tenant-only"
+ }
+ }
+ }
+
+For more information, see `Configure distributions `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/create-invalidation-for-distribution-tenant.rst b/awscli/examples/cloudfront/create-invalidation-for-distribution-tenant.rst
new file mode 100644
index 000000000000..40740c20595e
--- /dev/null
+++ b/awscli/examples/cloudfront/create-invalidation-for-distribution-tenant.rst
@@ -0,0 +1,29 @@
+**To create a CloudFront invalidation for a distribution tenant**
+
+The following ``create-invalidation-for-distribution-tenant`` example creates an invalidation for all files in a CloudFront distribution tenant. ::
+
+ aws cloudfront create-invalidation-for-distribution-tenant \
+ --id dt_2wjDZi3hD1ivOXf6rpZJO1AB \
+ --invalidation-batch '{"Paths": {"Quantity": 1, "Items": ["/*"]}, "CallerReference": "invalidation-$(date +%s)"}'
+
+Output::
+
+ {
+ "Location": "https://cloudfront.amazonaws.com/2020-05-31/distribution-tenant/dt_2wjDZi3hD1ivOXf6rpZJO1AB/invalidation/I2JGL2F1ZAA426PGG0YLLKABC",
+ "Invalidation": {
+ "Id": "I2JGL2F1ZAA426PGG0YLLKABC",
+ "Status": "InProgress",
+ "CreateTime": "2025-05-07T16:59:25.947000+00:00",
+ "InvalidationBatch": {
+ "Paths": {
+ "Quantity": 1,
+ "Items": [
+ "/*"
+ ]
+ },
+ "CallerReference": "invalidation-$(date +%s)"
+ }
+ }
+ }
+
+For more information, see `Invalidate files to remove content `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/delete-connection-group.rst b/awscli/examples/cloudfront/delete-connection-group.rst
new file mode 100644
index 000000000000..1757daff8471
--- /dev/null
+++ b/awscli/examples/cloudfront/delete-connection-group.rst
@@ -0,0 +1,11 @@
+**To delete a connection group**
+
+The following ``delete-connection-group`` example deletes a connection group. The connection group must be disabled and can't be associated with any CloudFront resources. ::
+
+ aws cloudfront delete-connection-group \
+ --id cg_2wjLpjbHkLUdhWAjHllcOeABC \
+ --if-match ETVPDKIKX0DABC
+
+When successful, this command has no output.
+
+For more information about managing connection groups, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/delete-distribution-tenant.rst b/awscli/examples/cloudfront/delete-distribution-tenant.rst
new file mode 100644
index 000000000000..5e0fcae1048e
--- /dev/null
+++ b/awscli/examples/cloudfront/delete-distribution-tenant.rst
@@ -0,0 +1,11 @@
+**To delete a distribution tenant**
+
+The following ``delete-distribution-tenant`` example deletes a distribution tenant with ETag ``ETVPDKIKX0DABC``. The distribution tenant must be disabled and can't be associated with any CloudFront resources. ::
+
+ aws cloudfront delete-distribution-tenant \
+ --id dt_2wjMUbg3NHZEQ7OfoalP5zi1AB \
+ --if-match ETVPDKIKX0DABC
+
+When successful, this command has no output.
+
+For more information, see `Delete a distribution `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/disassociate-distribution-tenant-web-acl.rst b/awscli/examples/cloudfront/disassociate-distribution-tenant-web-acl.rst
new file mode 100644
index 000000000000..ab9b4e2df39e
--- /dev/null
+++ b/awscli/examples/cloudfront/disassociate-distribution-tenant-web-acl.rst
@@ -0,0 +1,16 @@
+**To disassociate a web ACL from a distribution tenant**
+
+The following ``disassociate-distribution-tenant-web-acl`` example disassociates a web ACL from a distribution tenant with ETag ``E1PA6795UKMABC``. ::
+
+ aws cloudfront disassociate-distribution-tenant-web-acl \
+ --id dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB \
+ --if-match E1PA6795UKMABC
+
+Output::
+
+ {
+ "ETag": "E13V1IB3VIYABC",
+ "Id": "dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB"
+ }
+
+For more information, see `Disable AWS WAF security protections `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/disassociate-distribution-web-acl.rst b/awscli/examples/cloudfront/disassociate-distribution-web-acl.rst
new file mode 100644
index 000000000000..3e61e9d51965
--- /dev/null
+++ b/awscli/examples/cloudfront/disassociate-distribution-web-acl.rst
@@ -0,0 +1,16 @@
+**To disassociate a web ACL from a CloudFront distribution**
+
+The following ``disassociate-distribution-web-acl`` example removes the association between a web ACL and a CloudFront distribution with ETag ``E13V1IB3VIYABC``. ::
+
+ aws cloudfront disassociate-distribution-web-acl \
+ --id E1XNX8R2GOAABC \
+ --if-match EEZQ9Z24VM1ABC
+
+Output::
+
+ {
+ "ETag": "E2YWS1C2J3OABC",
+ "Id": "E1XNX8R2GOAABC"
+ }
+
+For more information, see `Disable AWS WAF security protections `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/get-connection-group-by-routing-endpoint.rst b/awscli/examples/cloudfront/get-connection-group-by-routing-endpoint.rst
new file mode 100644
index 000000000000..2d73aa4f9843
--- /dev/null
+++ b/awscli/examples/cloudfront/get-connection-group-by-routing-endpoint.rst
@@ -0,0 +1,26 @@
+**To get a connection group by routing endpoint**
+
+The following ``get-connection-group-by-routing-endpoint`` example retrieves information about a connection group using its routing endpoint. ::
+
+ aws cloudfront get-connection-group-by-routing-endpoint \
+ --routing-endpoint dvdg9gprgabc.cloudfront.net
+
+Output::
+
+ {
+ "ETag": "E23ZP02F085ABC",
+ "ConnectionGroup": {
+ "Id": "cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "Name": "connection-group-2",
+ "Arn": "arn:aws:cloudfront::123456789012:connection-group/cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "CreatedTime": "2025-05-06T15:42:00.790000+00:00",
+ "LastModifiedTime": "2025-05-06T15:42:00.790000+00:00",
+ "Ipv6Enabled": true,
+ "RoutingEndpoint": "dvdg9gprgabc.cloudfront.net",
+ "Status": "Deployed",
+ "Enabled": true,
+ "IsDefault": false
+ }
+ }
+
+For more information, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/get-connection-group.rst b/awscli/examples/cloudfront/get-connection-group.rst
new file mode 100644
index 000000000000..62ab13d92a57
--- /dev/null
+++ b/awscli/examples/cloudfront/get-connection-group.rst
@@ -0,0 +1,26 @@
+**To get a CloudFront connection group**
+
+The following ``get-connection-group`` example retrieves information about a CloudFront connection group. ::
+
+ aws cloudfront get-connection-group \
+ --identifier cg_2wjDWTBKTlRB87cAaUQFaakABC
+
+Output::
+
+ {
+ "ETag": "E23ZP02F085ABC",
+ "ConnectionGroup": {
+ "Id": "cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "Name": "connection-group-2",
+ "Arn": "arn:aws:cloudfront::123456789012:connection-group/cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "CreatedTime": "2025-05-06T15:42:00.790000+00:00",
+ "LastModifiedTime": "2025-05-06T15:42:00.790000+00:00",
+ "Ipv6Enabled": true,
+ "RoutingEndpoint": "dvdg9gprgabc.cloudfront.net",
+ "Status": "Deployed",
+ "Enabled": true,
+ "IsDefault": false
+ }
+ }
+
+For more information, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/get-distribution-config.rst b/awscli/examples/cloudfront/get-distribution-config.rst
index 8fd58446a880..af0192304fb7 100644
--- a/awscli/examples/cloudfront/get-distribution-config.rst
+++ b/awscli/examples/cloudfront/get-distribution-config.rst
@@ -1,13 +1,9 @@
**To get a CloudFront distribution configuration**
-The following example gets metadata about the CloudFront distribution with the
-ID ``EDFDVBD6EXAMPLE``, including its ``ETag``. The distribution ID is returned
-in the `create-distribution `_ and
-`list-distributions `_ commands.
+The following example gets metadata about the CloudFront distribution with the ID ``EDFDVBD6EXAMPLE``, including its ``ETag``. The distribution ID is returned in the `create-distribution `__ and `list-distributions `__ commands. ::
-::
-
- aws cloudfront get-distribution-config --id EDFDVBD6EXAMPLE
+ aws cloudfront get-distribution-config \
+ --id EDFDVBD6EXAMPLE
Output::
@@ -23,8 +19,8 @@ Output::
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
@@ -39,7 +35,7 @@ Output::
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
"ForwardedValues": {
"QueryString": false,
"Cookies": {
diff --git a/awscli/examples/cloudfront/get-distribution-tenant-by-domain.rst b/awscli/examples/cloudfront/get-distribution-tenant-by-domain.rst
new file mode 100644
index 000000000000..23c7214a9f8b
--- /dev/null
+++ b/awscli/examples/cloudfront/get-distribution-tenant-by-domain.rst
@@ -0,0 +1,37 @@
+**To get distribution tenant information by domain**
+
+The following ``get-distribution-tenant-by-domain`` example retrieves information about a distribution tenant using the specified domain. ::
+
+ aws cloudfront get-distribution-tenant-by-domain \
+ --domain example.com
+
+Output::
+
+ {
+ "ETag": "E23ZP02F085ABC",
+ "DistributionTenant": {
+ "Id": "dt_2xVInRKCfUzQHgxosDs9hiLk1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "example-tenant-4",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2xVInRKCfUzQHgxosDs9hiLk1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "active"
+ }
+ ],
+ "Parameters": [
+ {
+ "Name": "testParam",
+ "Value": "defaultValue"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "CreatedTime": "2025-05-23T16:16:20.871000+00:00",
+ "LastModifiedTime": "2025-05-23T16:16:20.871000+00:00",
+ "Enabled": false,
+ "Status": "Deployed"
+ }
+ }
+
+For more information, see `Understand how multi-tenant distributions work `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/get-distribution-tenant.rst b/awscli/examples/cloudfront/get-distribution-tenant.rst
new file mode 100644
index 000000000000..51b67f4d6c1c
--- /dev/null
+++ b/awscli/examples/cloudfront/get-distribution-tenant.rst
@@ -0,0 +1,31 @@
+**To get details about a CloudFront distribution tenant**
+
+The following ``get-distribution-tenant`` example retrieves information about a CloudFront distribution tenant. ::
+
+ aws cloudfront get-distribution-tenant \
+ --id dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB
+
+Output::
+
+ {
+ "ETag": "E23ZP02F085ABC",
+ "DistributionTenant": {
+ "Id": "dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "example-tenant-2",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "inactive"
+ }
+ ],
+ "ConnectionGroupId": "cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "CreatedTime": "2025-05-06T15:42:28.542000+00:00",
+ "LastModifiedTime": "2025-05-06T15:42:37.724000+00:00",
+ "Enabled": true,
+ "Status": "InProgress"
+ }
+ }
+
+For more information, see `Understand how multi-tenant distributions work `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/get-distribution.rst b/awscli/examples/cloudfront/get-distribution.rst
index a881ecae4af2..f536b386f22c 100644
--- a/awscli/examples/cloudfront/get-distribution.rst
+++ b/awscli/examples/cloudfront/get-distribution.rst
@@ -1,13 +1,9 @@
**To get a CloudFront distribution**
-The following example gets the CloudFront distribution with the ID
-``EDFDVBD6EXAMPLE``, including its ``ETag``. The distribution ID is returned in
-the `create-distribution `_ and `list-distributions
-`_ commands.
+The following ``get-distribution`` example gets the CloudFront distribution with the ID ``EDFDVBD6EXAMPLE``, including its ``ETag``. The distribution ID is returned in the `create-distribution `__ and `list-distributions `__ commands. ::
-::
-
- aws cloudfront get-distribution --id EDFDVBD6EXAMPLE
+ aws cloudfront get-distribution \
+ --id EDFDVBD6EXAMPLE
Output::
@@ -34,8 +30,8 @@ Output::
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
@@ -50,7 +46,7 @@ Output::
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-cli-example",
"ForwardedValues": {
"QueryString": false,
"Cookies": {
diff --git a/awscli/examples/cloudfront/get-invalidation-for-distribution-tenant.rst b/awscli/examples/cloudfront/get-invalidation-for-distribution-tenant.rst
new file mode 100644
index 000000000000..38b5ecd575fd
--- /dev/null
+++ b/awscli/examples/cloudfront/get-invalidation-for-distribution-tenant.rst
@@ -0,0 +1,29 @@
+**To get an invalidation for a distribution tenant**
+
+The following ``get-invalidation-for-distribution-tenant`` example gets information about an invalidation for a distribution tenant. ::
+
+ aws cloudfront get-invalidation-for-distribution-tenant \
+ --distribution-tenant-id dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB \
+ --id I4CU23QAPKMUDUU06F9OFGFABC
+
+Output::
+
+ {
+ "Invalidation": {
+ "Id": "I4CU23QAPKMUDUU06F9OFGFABC",
+ "Status": "Completed",
+ "CreateTime": "2025-05-06T15:46:12.824000+00:00",
+ "InvalidationBatch": {
+ "Paths": {
+ "Quantity": 2,
+ "Items": [
+ "/example/invalidation",
+ "/more/invalidations"
+ ]
+ },
+ "CallerReference": "007ee5a6-d0a0-42be-bb61-e7b915969b48"
+ }
+ }
+ }
+
+For more information, see `Invalidate files to remove content `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/get-managed-certificate-details.rst b/awscli/examples/cloudfront/get-managed-certificate-details.rst
new file mode 100644
index 000000000000..613b54995d94
--- /dev/null
+++ b/awscli/examples/cloudfront/get-managed-certificate-details.rst
@@ -0,0 +1,25 @@
+**To get managed certificate details**
+
+The following ``get-managed-certificate-details`` example retrieves the details of a CloudFront managed ACM certificate. ::
+
+ aws cloudfront get-managed-certificate-details \
+ --identifier dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB
+
+Output::
+
+ {
+ "ManagedCertificateDetails": {
+ "CertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/655dc1fe-6d37-451d-a013-c2db3a034abc",
+ "CertificateStatus": "pending-validation",
+ "ValidationTokenHost": "self-hosted",
+ "ValidationTokenDetails": [
+ {
+ "Domain": "example.com",
+ "RedirectTo": "validation.us-east-1.acm-validations.aws/123456789012/.well-known/pki-validation/b315c9ae21284e7918bb9f3f422ab1c7.txt",
+ "RedirectFrom": "example.com/.well-known/pki-validation/b315c9ae21284e7918bb9f3f422ac3c7.txt"
+ }
+ ]
+ }
+ }
+
+For more information, see `Request certificates for your CloudFront distribution tenant `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/list-connection-groups.rst b/awscli/examples/cloudfront/list-connection-groups.rst
new file mode 100644
index 000000000000..4f0187b193cd
--- /dev/null
+++ b/awscli/examples/cloudfront/list-connection-groups.rst
@@ -0,0 +1,38 @@
+**To list connection groups**
+
+The following ``list-connection-groups`` example lists the available connection groups in your AWS account. ::
+
+ aws cloudfront list-connection-groups
+
+Output::
+
+ {
+ "ConnectionGroups": [
+ {
+ "Id": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "Name": "CreatedByCloudFront-cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "Arn": "arn:aws:cloudfront::123456789012:connection-group/cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "RoutingEndpoint": "d3sx0pso7m5abc.cloudfront.net",
+ "CreatedTime": "2025-05-05T22:32:29.630000+00:00",
+ "LastModifiedTime": "2025-05-05T22:32:29.630000+00:00",
+ "ETag": "E23ZP02F085ABC",
+ "Enabled": true,
+ "Status": "Deployed",
+ "IsDefault": true
+ },
+ {
+ "Id": "cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "Name": "connection-group-2",
+ "Arn": "arn:aws:cloudfront::123456789012:connection-group/cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "RoutingEndpoint": "dvdg9gprgabc.cloudfront.net",
+ "CreatedTime": "2025-05-06T15:42:00.790000+00:00",
+ "LastModifiedTime": "2025-05-06T15:42:00.790000+00:00",
+ "ETag": "E23ZP02F085ABC",
+ "Enabled": true,
+ "Status": "Deployed",
+ "IsDefault": false
+ }
+ ]
+ }
+
+For more information, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/list-distribution-tenants-by-customization.rst b/awscli/examples/cloudfront/list-distribution-tenants-by-customization.rst
new file mode 100644
index 000000000000..57a5604bec79
--- /dev/null
+++ b/awscli/examples/cloudfront/list-distribution-tenants-by-customization.rst
@@ -0,0 +1,45 @@
+**To list distribution tenants by customization**
+
+The following ``list-distribution-tenants-by-customization`` example lists distribution tenants that use the specified web ACL. ::
+
+ aws cloudfront list-distribution-tenants-by-customization \
+ --web-acl-arn arn:aws:wafv2:us-east-1:123456789012:global/webacl/CreatedByCloudFront-0273cd2f/a3c19bce-42b5-48a1-a8d4-b2bb2f28eabc
+
+Output::
+
+ {
+ "DistributionTenantList": [
+ {
+ "Id": "dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "example-tenant-2",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "inactive"
+ }
+ ],
+ "ConnectionGroupId": "cg_2wjDWTBKTlRB87cAaUQFaakABC",
+ "Customizations": {
+ "WebAcl": {
+ "Action": "override",
+ "Arn": "arn:aws:wafv2:us-east-1:123456789012:global/webacl/CreatedByCloudFront-0273cd2f/a3c19bce-42b5-48a1-a8d4-b2bb2f28eabc"
+ },
+ "GeoRestrictions": {
+ "RestrictionType": "whitelist",
+ "Locations": [
+ "AL"
+ ]
+ }
+ },
+ "CreatedTime": "2025-05-06T15:42:28.542000+00:00",
+ "LastModifiedTime": "2025-05-06T16:14:08.710000+00:00",
+ "ETag": "E1F83G8C2ARABC",
+ "Enabled": true,
+ "Status": "Deployed"
+ }
+ ]
+ }
+
+For more information, see `Distribution tenant customizations `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/list-distribution-tenants.rst b/awscli/examples/cloudfront/list-distribution-tenants.rst
new file mode 100644
index 000000000000..d8a5fcd446fa
--- /dev/null
+++ b/awscli/examples/cloudfront/list-distribution-tenants.rst
@@ -0,0 +1,90 @@
+**To list CloudFront distribution tenants**
+
+The following ``list-distribution-tenants`` example lists 3 CloudFront distribution tenants in your AWS account by the associated connection group. ::
+
+ aws cloudfront list-distribution-tenants \
+ --association-filter ConnectionGroupId=cg_2whCJoXMYCjHcxaLGrkllvyABC \
+ --max-items 3
+
+Output::
+
+ {
+ "DistributionTenantList": [
+ {
+ "Id": "dt_2yMvQgam3QkJo2z54FDl91dk1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "new-tenant-customizations",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2yMvQgam3QkJo2z54FDl91dk1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "active"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "Customizations": {
+ "WebAcl": {
+ "Action": "disable"
+ },
+ "GeoRestrictions": {
+ "RestrictionType": "whitelist",
+ "Locations": [
+ "DE"
+ ]
+ }
+ },
+ "CreatedTime": "2025-06-11T15:54:02.142000+00:00",
+ "LastModifiedTime": "2025-06-11T15:54:02.142000+00:00",
+ "ETag": "E23ZP02F085ABC",
+ "Enabled": false,
+ "Status": "Deployed"
+ },
+ {
+ "Id": "dt_2yMuV7NJuBcAB0cwwxMCBZQ1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "new-tenant",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2yMuV7NJuBcAB0cwwxMCBZQ1AB",
+ "Domains": [
+ {
+ "Domain": "1.example.com",
+ "Status": "active"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "Customizations": {
+ "GeoRestrictions": {
+ "RestrictionType": "whitelist",
+ "Locations": [
+ "DE"
+ ]
+ }
+ },
+ "CreatedTime": "2025-06-11T15:46:23.466000+00:00",
+ "LastModifiedTime": "2025-06-11T15:46:23.466000+00:00",
+ "ETag": "E23ZP02F085ABC",
+ "Enabled": false,
+ "Status": "Deployed"
+ },
+ {
+ "Id": "dt_2xVInRKCfUzQHgxosDs9hiLk1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "new-tenant-2",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2xVInRKCfUzQHgxosDs9hiLk1AB",
+ "Domains": [
+ {
+ "Domain": "2.example.com",
+ "Status": "active"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "CreatedTime": "2025-05-23T16:16:20.871000+00:00",
+ "LastModifiedTime": "2025-05-23T16:16:20.871000+00:00",
+ "ETag": "E23ZP02F085ABC",
+ "Enabled": false,
+ "Status": "Deployed"
+ }
+ ],
+ "NextToken": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAzfQ=="
+ }
+
+For more information, see `Understand how multi-tenant distributions work `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/list-distributions-by-connection-mode.rst b/awscli/examples/cloudfront/list-distributions-by-connection-mode.rst
new file mode 100644
index 000000000000..5a0d615c9994
--- /dev/null
+++ b/awscli/examples/cloudfront/list-distributions-by-connection-mode.rst
@@ -0,0 +1,115 @@
+**To list CloudFront distributions by connection mode**
+
+The following ``list-distributions-by-connection-mode`` example lists CloudFront distributions with the specified connection mode. ::
+
+ aws cloudfront list-distributions-by-connection-mode \
+ --connection-mode tenant-only
+
+Output::
+
+ {
+ "DistributionList": {
+ "Items": [
+ {
+ "Id": "E1XNX8R2GOAABC",
+ "ARN": "arn:aws:cloudfront::123456789012:distribution/E1XNX8R2GOAABC",
+ "ETag": "EPT4JPJQDY1ABC",
+ "Status": "Deployed",
+ "LastModifiedTime": "2025-05-23T16:16:15.691000+00:00",
+ "DomainName": "-",
+ "Aliases": {
+ "Quantity": 0
+ },
+ "Origins": {
+ "Quantity": 1,
+ "Items": [
+ {
+ "Id": "example-cfn-simple-distribution123",
+ "DomainName": "example.com",
+ "OriginPath": "",
+ "CustomHeaders": {
+ "Quantity": 0
+ },
+ "S3OriginConfig": {
+ "OriginAccessIdentity": ""
+ },
+ "ConnectionAttempts": 3,
+ "ConnectionTimeout": 10,
+ "OriginShield": {
+ "Enabled": false
+ },
+ "OriginAccessControlId": "E2CJRMB5LKEABC"
+ }
+ ]
+ },
+ "OriginGroups": {
+ "Quantity": 0
+ },
+ "DefaultCacheBehavior": {
+ "TargetOriginId": "example-cfn-simple-distribution123",
+ "TrustedKeyGroups": {
+ "Enabled": false,
+ "Quantity": 0
+ },
+ "ViewerProtocolPolicy": "allow-all",
+ "AllowedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ],
+ "CachedMethods": {
+ "Quantity": 2,
+ "Items": [
+ "HEAD",
+ "GET"
+ ]
+ }
+ },
+ "Compress": true,
+ "LambdaFunctionAssociations": {
+ "Quantity": 0
+ },
+ "FunctionAssociations": {
+ "Quantity": 0
+ },
+ "FieldLevelEncryptionId": "",
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e5abc",
+ "GrpcConfig": {
+ "Enabled": false
+ }
+ },
+ "CacheBehaviors": {
+ "Quantity": 0
+ },
+ "CustomErrorResponses": {
+ "Quantity": 0
+ },
+ "Comment": "",
+ "PriceClass": "PriceClass_All",
+ "Enabled": true,
+ "ViewerCertificate": {
+ "CloudFrontDefaultCertificate": false,
+ "ACMCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/ec53f564-ea5a-4e4a-a0a2-e3c989449abc",
+ "SSLSupportMethod": "sni-only",
+ "MinimumProtocolVersion": "TLSv1.2_2021",
+ "Certificate": "arn:aws:acm:us-east-1:123456789012:certificate/ec53f564-ea5a-4e4a-a0a2-e3c989449abc",
+ "CertificateSource": "acm"
+ },
+ "Restrictions": {
+ "GeoRestriction": {
+ "RestrictionType": "none",
+ "Quantity": 0
+ }
+ },
+ "WebACLId": "arn:aws:wafv2:us-east-1:123456789012:global/webacl/web-global-example/626900da-5f64-418b-ba9b-743f3746cabc",
+ "HttpVersion": "http2",
+ "IsIPV6Enabled": false,
+ "Staging": false,
+ "ConnectionMode": "tenant-only"
+ }
+ ]
+ }
+ }
+
+For more information, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/list-distributions.rst b/awscli/examples/cloudfront/list-distributions.rst
index 4fdbaaa12f54..f44982cfd99f 100644
--- a/awscli/examples/cloudfront/list-distributions.rst
+++ b/awscli/examples/cloudfront/list-distributions.rst
@@ -1,7 +1,6 @@
**To list CloudFront distributions**
-The following example gets a list of the CloudFront distributions in your AWS
-account::
+The following example gets a list of the CloudFront distributions in your AWS account. ::
aws cloudfront list-distributions
@@ -11,231 +10,11 @@ Output::
"DistributionList": {
"Items": [
{
- "Id": "EMLARXS9EXAMPLE",
- "ARN": "arn:aws:cloudfront::123456789012:distribution/EMLARXS9EXAMPLE",
- "Status": "InProgress",
- "LastModifiedTime": "2019-11-22T00:55:15.705Z",
- "InProgressInvalidationBatches": 0,
- "DomainName": "d111111abcdef8.cloudfront.net",
- "ActiveTrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "DistributionConfig": {
- "CallerReference": "cli-example",
- "Aliases": {
- "Quantity": 0
- },
- "DefaultRootObject": "index.html",
- "Origins": {
- "Quantity": 1,
- "Items": [
- {
- "Id": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
- "OriginPath": "",
- "CustomHeaders": {
- "Quantity": 0
- },
- "S3OriginConfig": {
- "OriginAccessIdentity": ""
- }
- }
- ]
- },
- "OriginGroups": {
- "Quantity": 0
- },
- "DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-cli-example",
- "ForwardedValues": {
- "QueryString": false,
- "Cookies": {
- "Forward": "none"
- },
- "Headers": {
- "Quantity": 0
- },
- "QueryStringCacheKeys": {
- "Quantity": 0
- }
- },
- "TrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "ViewerProtocolPolicy": "allow-all",
- "MinTTL": 0,
- "AllowedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ],
- "CachedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ]
- }
- },
- "SmoothStreaming": false,
- "DefaultTTL": 86400,
- "MaxTTL": 31536000,
- "Compress": false,
- "LambdaFunctionAssociations": {
- "Quantity": 0
- },
- "FieldLevelEncryptionId": ""
- },
- "CacheBehaviors": {
- "Quantity": 0
- },
- "CustomErrorResponses": {
- "Quantity": 0
- },
- "Comment": "",
- "Logging": {
- "Enabled": false,
- "IncludeCookies": false,
- "Bucket": "",
- "Prefix": ""
- },
- "PriceClass": "PriceClass_All",
- "Enabled": true,
- "ViewerCertificate": {
- "CloudFrontDefaultCertificate": true,
- "MinimumProtocolVersion": "TLSv1",
- "CertificateSource": "cloudfront"
- },
- "Restrictions": {
- "GeoRestriction": {
- "RestrictionType": "none",
- "Quantity": 0
- }
- },
- "WebACLId": "",
- "HttpVersion": "http2",
- "IsIPV6Enabled": true
- }
- },
- {
- "Id": "EDFDVBD6EXAMPLE",
- "ARN": "arn:aws:cloudfront::123456789012:distribution/EDFDVBD6EXAMPLE",
- "Status": "InProgress",
- "LastModifiedTime": "2019-12-04T23:35:41.433Z",
- "InProgressInvalidationBatches": 0,
- "DomainName": "d930174dauwrn8.cloudfront.net",
- "ActiveTrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "DistributionConfig": {
- "CallerReference": "cli-example",
- "Aliases": {
- "Quantity": 0
- },
- "DefaultRootObject": "index.html",
- "Origins": {
- "Quantity": 1,
- "Items": [
- {
- "Id": "awsexamplebucket1.s3.amazonaws.com-cli-example",
- "DomainName": "awsexamplebucket1.s3.amazonaws.com",
- "OriginPath": "",
- "CustomHeaders": {
- "Quantity": 0
- },
- "S3OriginConfig": {
- "OriginAccessIdentity": ""
- }
- }
- ]
- },
- "OriginGroups": {
- "Quantity": 0
- },
- "DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket1.s3.amazonaws.com-cli-example",
- "ForwardedValues": {
- "QueryString": false,
- "Cookies": {
- "Forward": "none"
- },
- "Headers": {
- "Quantity": 0
- },
- "QueryStringCacheKeys": {
- "Quantity": 0
- }
- },
- "TrustedSigners": {
- "Enabled": false,
- "Quantity": 0
- },
- "ViewerProtocolPolicy": "allow-all",
- "MinTTL": 0,
- "AllowedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ],
- "CachedMethods": {
- "Quantity": 2,
- "Items": [
- "HEAD",
- "GET"
- ]
- }
- },
- "SmoothStreaming": false,
- "DefaultTTL": 86400,
- "MaxTTL": 31536000,
- "Compress": false,
- "LambdaFunctionAssociations": {
- "Quantity": 0
- },
- "FieldLevelEncryptionId": ""
- },
- "CacheBehaviors": {
- "Quantity": 0
- },
- "CustomErrorResponses": {
- "Quantity": 0
- },
- "Comment": "",
- "Logging": {
- "Enabled": false,
- "IncludeCookies": false,
- "Bucket": "",
- "Prefix": ""
- },
- "PriceClass": "PriceClass_All",
- "Enabled": true,
- "ViewerCertificate": {
- "CloudFrontDefaultCertificate": true,
- "MinimumProtocolVersion": "TLSv1",
- "CertificateSource": "cloudfront"
- },
- "Restrictions": {
- "GeoRestriction": {
- "RestrictionType": "none",
- "Quantity": 0
- }
- },
- "WebACLId": "",
- "HttpVersion": "http2",
- "IsIPV6Enabled": true
- }
- },
- {
- "Id": "E1X5IZQEXAMPLE",
- "ARN": "arn:aws:cloudfront::123456789012:distribution/E1X5IZQEXAMPLE",
+ "Id": "E23YS8OEXAMPLE",
+ "ARN": "arn:aws:cloudfront::123456789012:distribution/E23YS8OEXAMPLE",
"Status": "Deployed",
- "LastModifiedTime": "2019-11-06T21:31:48.864Z",
- "DomainName": "d2e04y12345678.cloudfront.net",
+ "LastModifiedTime": "2024-08-05T18:23:40.375000+00:00",
+ "DomainName": "abcdefgh12ijk.cloudfront.net",
"Aliases": {
"Quantity": 0
},
@@ -243,15 +22,21 @@ Output::
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket2",
- "DomainName": "awsexamplebucket2.s3.us-west-2.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
+ "DomainName": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
},
"S3OriginConfig": {
"OriginAccessIdentity": ""
- }
+ },
+ "ConnectionAttempts": 3,
+ "ConnectionTimeout": 10,
+ "OriginShield": {
+ "Enabled": false
+ },
+ "OriginAccessControlId": "EIAP8PEXAMPLE"
}
]
},
@@ -259,25 +44,16 @@ Output::
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket2",
- "ForwardedValues": {
- "QueryString": false,
- "Cookies": {
- "Forward": "none"
- },
- "Headers": {
- "Quantity": 0
- },
- "QueryStringCacheKeys": {
- "Quantity": 0
- }
- },
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com",
"TrustedSigners": {
"Enabled": false,
"Quantity": 0
},
+ "TrustedKeyGroups": {
+ "Enabled": false,
+ "Quantity": 0
+ },
"ViewerProtocolPolicy": "allow-all",
- "MinTTL": 0,
"AllowedMethods": {
"Quantity": 2,
"Items": [
@@ -293,13 +69,15 @@ Output::
}
},
"SmoothStreaming": false,
- "DefaultTTL": 86400,
- "MaxTTL": 31536000,
- "Compress": false,
+ "Compress": true,
"LambdaFunctionAssociations": {
"Quantity": 0
},
- "FieldLevelEncryptionId": ""
+ "FunctionAssociations": {
+ "Quantity": 0
+ },
+ "FieldLevelEncryptionId": "",
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e886EXAMPLE"
},
"CacheBehaviors": {
"Quantity": 0
@@ -312,6 +90,7 @@ Output::
"Enabled": true,
"ViewerCertificate": {
"CloudFrontDefaultCertificate": true,
+ "SSLSupportMethod": "vip",
"MinimumProtocolVersion": "TLSv1",
"CertificateSource": "cloudfront"
},
@@ -322,8 +101,9 @@ Output::
}
},
"WebACLId": "",
- "HttpVersion": "HTTP1_1",
- "IsIPV6Enabled": true
+ "HttpVersion": "HTTP2",
+ "IsIPV6Enabled": true,
+ "Staging": false
}
]
}
diff --git a/awscli/examples/cloudfront/list-domain-conflicts.rst b/awscli/examples/cloudfront/list-domain-conflicts.rst
new file mode 100644
index 000000000000..2517c027e1ee
--- /dev/null
+++ b/awscli/examples/cloudfront/list-domain-conflicts.rst
@@ -0,0 +1,22 @@
+**To list domain conflicts for a CloudFront distribution**
+
+The following ``list-domain-conflicts`` example lists domain conflicts for a CloudFront distribution. ::
+
+ aws cloudfront list-domain-conflicts \
+ --domain example.com \
+ --domain-control-validation-resource "DistributionTenantId=dt_2x9GhoK0TZRsohWzv1b9It8J1AB"
+
+Output::
+
+ {
+ "DomainConflicts": [
+ {
+ "Domain": "example.com",
+ "ResourceType": "distribution-tenant",
+ "ResourceId": "***************ohWzv1b9It8J1AB",
+ "AccountId": "123456789012"
+ }
+ ]
+ }
+
+For more information, see `Move an alternate domain name to a different distribution `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/list-invalidations-for-distribution-tenant.rst b/awscli/examples/cloudfront/list-invalidations-for-distribution-tenant.rst
new file mode 100644
index 000000000000..15d57b3370a9
--- /dev/null
+++ b/awscli/examples/cloudfront/list-invalidations-for-distribution-tenant.rst
@@ -0,0 +1,22 @@
+**To list invalidations for a CloudFront distribution tenant**
+
+The following ``list-invalidations-for-distribution-tenant`` example lists the invalidations for a CloudFront distribution tenant. ::
+
+ aws cloudfront list-invalidations-for-distribution-tenant \
+ --id dt_2wjDZi3hD1ivOXf6rpZJOSNE1AB
+
+Output::
+
+ {
+ "InvalidationList": {
+ "Items": [
+ {
+ "Id": "I4CU23QAPKMUDUU06F9OFGFABC",
+ "CreateTime": "2025-05-06T15:46:12.824000+00:00",
+ "Status": "Completed"
+ }
+ ]
+ }
+ }
+
+For more information, see `Invalidate files to remove content `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/update-connection-group.rst b/awscli/examples/cloudfront/update-connection-group.rst
new file mode 100644
index 000000000000..614d710e832b
--- /dev/null
+++ b/awscli/examples/cloudfront/update-connection-group.rst
@@ -0,0 +1,29 @@
+**To update a CloudFront connection group**
+
+The following ``update-connection-group`` example disables a CloudFront connection group and disables IPv6. ::
+
+ aws cloudfront update-connection-group \
+ --id cg_2yHsDkcPKeUlVkk3aEgLKcjABC \
+ --no-ipv6-enabled \
+ --no-enabled \
+ --if-match E3UN6WX5RRO2ABC
+
+Output::
+
+ {
+ "ETag": "E1F83G8C2ARABC",
+ "ConnectionGroup": {
+ "Id": "cg_2yHsDkcPKeUlVkk3aEgLKcjABC",
+ "Name": "cg-example",
+ "Arn": "arn:aws:cloudfront::123456789012:connection-group/cg_2yHsDkcPKeUlVkk3aEgLKcjABC",
+ "CreatedTime": "2025-06-09T20:58:35.481000+00:00",
+ "LastModifiedTime": "2025-06-11T16:25:54.280000+00:00",
+ "Ipv6Enabled": false,
+ "RoutingEndpoint": "du9xp1elo1abc.cloudfront.net",
+ "Status": "InProgress",
+ "Enabled": false,
+ "IsDefault": false
+ }
+ }
+
+For more information, see `Create custom connection group (optional) `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/update-distribution-tenant.rst b/awscli/examples/cloudfront/update-distribution-tenant.rst
new file mode 100644
index 000000000000..72e929b032ae
--- /dev/null
+++ b/awscli/examples/cloudfront/update-distribution-tenant.rst
@@ -0,0 +1,76 @@
+**To update a CloudFront distribution tenant**
+
+The following ``update-distribution-tenant`` example updates a CloudFront distribution tenant with a new parameter value and adds a country to the geo-restrictions. ::
+
+ aws cloudfront update-distribution-tenant \
+ --cli-input-json file://update-tenant.json
+
+Contents of ``update-tenant.json``::
+
+ {
+ "Id": "dt_2yMvQgam3QkJo2z54FDl91dk1AB",
+ "IfMatch": "E1F83G8C2ARABC",
+ "Parameters": [
+ {
+ "Name": "testParam",
+ "Value": "newParameterValue"
+ }
+ ],
+ "Customizations": {
+ "WebAcl": {
+ "Action": "disable"
+ },
+ "GeoRestrictions": {
+ "RestrictionType": "whitelist",
+ "Locations": [
+ "DE",
+ "GB",
+ "ES"
+ ]
+ }
+ }
+ }
+
+Output::
+
+ {
+ "ETag": "E1PA6795UKMABC",
+ "DistributionTenant": {
+ "Id": "dt_2yMvQgam3QkJo2z54FDl91dk1AB",
+ "DistributionId": "E1XNX8R2GOAABC",
+ "Name": "new-tenant-customizations",
+ "Arn": "arn:aws:cloudfront::123456789012:distribution-tenant/dt_2yMvQgam3QkJo2z54FDl91dk1AB",
+ "Domains": [
+ {
+ "Domain": "example.com",
+ "Status": "active"
+ }
+ ],
+ "Customizations": {
+ "WebAcl": {
+ "Action": "disable"
+ },
+ "GeoRestrictions": {
+ "RestrictionType": "whitelist",
+ "Locations": [
+ "DE",
+ "ES",
+ "GB"
+ ]
+ }
+ },
+ "Parameters": [
+ {
+ "Name": "testParam",
+ "Value": "newParameterValue"
+ }
+ ],
+ "ConnectionGroupId": "cg_2whCJoXMYCjHcxaLGrkllvyABC",
+ "CreatedTime": "2025-06-11T15:54:02.142000+00:00",
+ "LastModifiedTime": "2025-06-11T16:42:45.531000+00:00",
+ "Enabled": false,
+ "Status": "InProgress"
+ }
+ }
+
+For more information, see `Distribution tenant customizations `__ in the *Amazon CloudFront Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudfront/update-distribution.rst b/awscli/examples/cloudfront/update-distribution.rst
index 049fa762be24..cf8c9692718e 100644
--- a/awscli/examples/cloudfront/update-distribution.rst
+++ b/awscli/examples/cloudfront/update-distribution.rst
@@ -1,9 +1,9 @@
-**To update a CloudFront distribution's default root object**
+**Example 1: To update a CloudFront distribution's default root object**
-The following example updates the default root object to ``index.html`` for the
-CloudFront distribution with the ID ``EDFDVBD6EXAMPLE``::
+The following example updates the default root object to ``index.html`` for the CloudFront distribution with the ID ``EDFDVBD6EXAMPLE``. ::
- aws cloudfront update-distribution --id EDFDVBD6EXAMPLE \
+ aws cloudfront update-distribution \
+ --id EDFDVBD6EXAMPLE \
--default-root-object index.html
Output::
@@ -136,28 +136,20 @@ Output::
}
}
-**To update a CloudFront distribution**
-
-The following example disables the CloudFront distribution with the ID
-``EMLARXS9EXAMPLE`` by providing the distribution configuration in a JSON file
-named ``dist-config-disable.json``. To update a distribution, you must use the
-``--if-match`` option to provide the distribution's ``ETag``. To get the
-``ETag``, use the `get-distribution `_ or
-`get-distribution-config `_ command.
+**Example 2: To update a CloudFront distribution**
-After you use the following example to disable a distribution, you can use the
-`delete-distribution `_ command to delete it.
+The following example disables the CloudFront distribution with the ID ``EMLARXS9EXAMPLE`` by providing the distribution configuration in a JSON file named ``dist-config-disable.json``. To update a distribution, you must use the ``--if-match`` option to provide the distribution's ``ETag``. To get the
+``ETag``, use the `get-distribution `_ or `get-distribution-config `_ command. Note that the ``Enabled`` field is set to
+``false`` in the JSON file.
-::
+After you use the following example to disable a distribution, you can use the `delete-distribution `_ command to delete it. ::
aws cloudfront update-distribution \
--id EMLARXS9EXAMPLE \
--if-match E2QWRUHEXAMPLE \
--distribution-config file://dist-config-disable.json
-The file ``dist-config-disable.json`` is a JSON document in the current folder
-that contains the following. Note that the ``Enabled`` field is set to
-``false``::
+Contents of ``dist-config-disable.json``::
{
"CallerReference": "cli-1574382155-496510",
@@ -169,8 +161,8 @@ that contains the following. Note that the ``Enabled`` field is set to
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket.s3.amazonaws.com-1574382155-273939",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-1574382155-273939",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
@@ -185,7 +177,7 @@ that contains the following. Note that the ``Enabled`` field is set to
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-1574382155-273939",
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-1574382155-273939",
"ForwardedValues": {
"QueryString": false,
"Cookies": {
@@ -283,8 +275,8 @@ Output::
"Quantity": 1,
"Items": [
{
- "Id": "awsexamplebucket.s3.amazonaws.com-1574382155-273939",
- "DomainName": "awsexamplebucket.s3.amazonaws.com",
+ "Id": "amzn-s3-demo-bucket.s3.amazonaws.com-1574382155-273939",
+ "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
"OriginPath": "",
"CustomHeaders": {
"Quantity": 0
@@ -299,7 +291,7 @@ Output::
"Quantity": 0
},
"DefaultCacheBehavior": {
- "TargetOriginId": "awsexamplebucket.s3.amazonaws.com-1574382155-273939",
+ "TargetOriginId": "amzn-s3-demo-bucket.s3.amazonaws.com-1574382155-273939",
"ForwardedValues": {
"QueryString": false,
"Cookies": {
diff --git a/awscli/examples/cloudfront/update-domain-association.rst b/awscli/examples/cloudfront/update-domain-association.rst
new file mode 100644
index 000000000000..df09343fb3f4
--- /dev/null
+++ b/awscli/examples/cloudfront/update-domain-association.rst
@@ -0,0 +1,18 @@
+**To update a domain association**
+
+The following ``update-domain-association`` example updates a domain association for a distribution tenant with ETag ``E23ZP02F085ABC``. ::
+
+ aws cloudfront update-domain-association \
+ --domain example.com \
+ --target-resource DistributionTenantId=dt_2x9GhoK0TZRsohWzv1b9It8J1AB \
+ --if-match E23ZP02F085ABC
+
+Output::
+
+ {
+ "ETag": "ETVPDKIKX0ABC",
+ "Domain": "example.com",
+ "ResourceId": "dt_2x9GhoK0TZRsohWzv1b9It8J1AB"
+ }
+
+For more information, see `Move an alternate domain name to a different distribution `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudfront/verify-dns-configuration.rst b/awscli/examples/cloudfront/verify-dns-configuration.rst
new file mode 100644
index 000000000000..e011109f754e
--- /dev/null
+++ b/awscli/examples/cloudfront/verify-dns-configuration.rst
@@ -0,0 +1,20 @@
+**To verify DNS configuration for a domain**
+
+The following ``verify-dns-configuration`` example verifies the DNS configuration for a domain. ::
+
+ aws cloudfront verify-dns-configuration \
+ --domain example.com \
+ --identifier dt_2x9GhoK0TZRsohWzv1b9It8J1AB
+
+Output::
+
+ {
+ "DnsConfigurationList": [
+ {
+ "Domain": "example.com",
+ "Status": "valid-configuration"
+ }
+ ]
+ }
+
+For more information, see `Move an alternate domain name to a different distribution `__ in the *Amazon CloudFront Developer Guide*.
diff --git a/awscli/examples/cloudtrail/create-subscription.rst b/awscli/examples/cloudtrail/create-subscription.rst
index b3f2fc0ea4a3..8b285d005281 100644
--- a/awscli/examples/cloudtrail/create-subscription.rst
+++ b/awscli/examples/cloudtrail/create-subscription.rst
@@ -1,32 +1,35 @@
-**To create and configure AWS resources for a trail**
-
-The following ``create-subscription`` command creates a new S3 bucket and SNS topic for ``Trail1``::
-
- aws cloudtrail create-subscription --name Trail1 --s3-new-bucket my-bucket --sns-new-topic my-topic
-
-Output::
-
- Setting up new S3 bucket my-bucket...
- Setting up new SNS topic my-topic...
- Creating/updating CloudTrail configuration...
- CloudTrail configuration:
- {
- "trailList": [
- {
- "IncludeGlobalServiceEvents": true,
- "Name": "Trail1",
- "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1",
- "LogFileValidationEnabled": false,
- "IsMultiRegionTrail": false,
- "S3BucketName": "my-bucket",
- "SnsTopicName": "my-topic",
- "HomeRegion": "us-east-1"
- }
- ],
- "ResponseMetadata": {
- "HTTPStatusCode": 200,
- "RequestId": "f39e51f6-c615-11e5-85bd-d35ca21ee3e2"
- }
- }
- Starting CloudTrail service...
- Logs will be delivered to my-bucket
\ No newline at end of file
+**To create and configure AWS resources for a trail**
+
+The following ``create-subscription`` command creates a new S3 bucket and SNS topic for ``Trail1``. ::
+
+ aws cloudtrail create-subscription \
+ --name Trail1 \
+ --s3-new-bucket amzn-s3-demo-bucket \
+ --sns-new-topic my-topic
+
+Output::
+
+ Setting up new S3 bucket amzn-s3-demo-bucket...
+ Setting up new SNS topic my-topic...
+ Creating/updating CloudTrail configuration...
+ CloudTrail configuration:
+ {
+ "trailList": [
+ {
+ "IncludeGlobalServiceEvents": true,
+ "Name": "Trail1",
+ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1",
+ "LogFileValidationEnabled": false,
+ "IsMultiRegionTrail": false,
+ "S3BucketName": "amzn-s3-demo-bucket",
+ "SnsTopicName": "my-topic",
+ "HomeRegion": "us-east-1"
+ }
+ ],
+ "ResponseMetadata": {
+ "HTTPStatusCode": 200,
+ "RequestId": "f39e51f6-c615-11e5-85bd-d35ca21ee3e2"
+ }
+ }
+ Starting CloudTrail service...
+ Logs will be delivered to my-bucket
\ No newline at end of file
diff --git a/awscli/examples/cloudtrail/create-trail.rst b/awscli/examples/cloudtrail/create-trail.rst
index 95d33cbedde7..0472c5fb2948 100644
--- a/awscli/examples/cloudtrail/create-trail.rst
+++ b/awscli/examples/cloudtrail/create-trail.rst
@@ -1,17 +1,19 @@
-**To create a trail**
-
-The following ``create-trail`` command creates a multi-region trail named ``Trail1`` and specifies an S3 bucket::
-
- aws cloudtrail create-trail --name Trail1 --s3-bucket-name my-bucket --is-multi-region-trail
-
-Output::
-
- {
- "IncludeGlobalServiceEvents": true,
- "Name": "Trail1",
- "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1",
- "LogFileValidationEnabled": false,
- "IsMultiRegionTrail": true,
- "S3BucketName": "my-bucket"
- }
-
\ No newline at end of file
+**To create a trail**
+
+The following ``create-trail`` example creates a multi-region trail named ``Trail1`` and specifies an S3 bucket. ::
+
+ aws cloudtrail create-trail \
+ --name Trail1 \
+ --s3-bucket-name amzn-s3-demo-bucket \
+ --is-multi-region-trail
+
+Output::
+
+ {
+ "IncludeGlobalServiceEvents": true,
+ "Name": "Trail1",
+ "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1",
+ "LogFileValidationEnabled": false,
+ "IsMultiRegionTrail": true,
+ "S3BucketName": "amzn-s3-demo-bucket"
+ }
diff --git a/awscli/examples/cloudtrail/describe-trails.rst b/awscli/examples/cloudtrail/describe-trails.rst
index f09a67b50ff1..d92635af7964 100644
--- a/awscli/examples/cloudtrail/describe-trails.rst
+++ b/awscli/examples/cloudtrail/describe-trails.rst
@@ -1,35 +1,36 @@
-**To describe a trail**
-
-The following ``describe-trails`` command returns the settings for ``Trail1`` and ``Trail2``::
-
- aws cloudtrail describe-trails --trail-name-list Trail1 Trail2
-
-Output::
-
- {
- "trailList": [
- {
- "IncludeGlobalServiceEvents": true,
- "Name": "Trail1",
- "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1",
- "LogFileValidationEnabled": false,
- "IsMultiRegionTrail": false,
- "S3BucketName": "my-bucket",
- "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/CloudTrail_CloudWatchLogs_Role",
- "CloudWatchLogsLogGroupArn": "arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail:*",
- "SnsTopicName": "my-topic",
- "HomeRegion": "us-east-1"
- },
- {
- "IncludeGlobalServiceEvents": true,
- "Name": "Trail2",
- "S3KeyPrefix": "my-prefix",
- "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2",
- "LogFileValidationEnabled": false,
- "IsMultiRegionTrail": false,
- "S3BucketName": "my-bucket",
- "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c5ae5ac-3c13-421e-8335-c7868ef6a769",
- "HomeRegion": "us-east-1"
- }
- ]
- }
\ No newline at end of file
+**To describe a trail**
+
+The following ``describe-trails`` example returns the settings for ``Trail1`` and ``Trail2``. ::
+
+ aws cloudtrail describe-trails \
+ --trail-name-list Trail1 Trail2
+
+Output::
+
+ {
+ "trailList": [
+ {
+ "IncludeGlobalServiceEvents": true,
+ "Name": "Trail1",
+ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1",
+ "LogFileValidationEnabled": false,
+ "IsMultiRegionTrail": false,
+ "S3BucketName": "amzn-s3-demo-bucket",
+ "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/CloudTrail_CloudWatchLogs_Role",
+ "CloudWatchLogsLogGroupArn": "arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail:*",
+ "SnsTopicName": "my-topic",
+ "HomeRegion": "us-east-1"
+ },
+ {
+ "IncludeGlobalServiceEvents": true,
+ "Name": "Trail2",
+ "S3KeyPrefix": "my-prefix",
+ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2",
+ "LogFileValidationEnabled": false,
+ "IsMultiRegionTrail": false,
+ "S3BucketName": "amzn-s3-demo-bucket2",
+ "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c5ae5ac-3c13-421e-8335-c7868ef6a769",
+ "HomeRegion": "us-east-1"
+ }
+ ]
+ }
diff --git a/awscli/examples/cloudtrail/put-event-selectors.rst b/awscli/examples/cloudtrail/put-event-selectors.rst
index 6b3598620695..e43ff6fd153a 100755
--- a/awscli/examples/cloudtrail/put-event-selectors.rst
+++ b/awscli/examples/cloudtrail/put-event-selectors.rst
@@ -1,70 +1,187 @@
-**To configure event selectors for a trail**
+**Example 1: Configure a trail to log management events and data events by using advanced event selectors**
-To create an event selector, run the ''put-event-selectors'' command. When an event occurs in your account, CloudTrail evaluates
-the configuration for your trails. If the event matches any event selector for a trail, the trail processes and logs the event.
-You can configure up to 5 event selectors for a trail and up to 250 data resources for a trail.
+You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use advanced event selectors to log all available data event types. You can use either advanced event selectors or basic event selectors, but not both. If you apply advanced event selectors to a trail, any existing basic event selectors are overwritten.
-The following example creates an event selector for a trail named ''TrailName'' to include read-only and write-only management events,
-data events for two Amazon S3 bucket/prefix combinations, and data events for a single AWS Lambda function named ''hello-world-python-function''::
+The following ``put-event-selectors`` example creates an advanced event selector for a trail named ``myTrail`` to log all management events, log S3 PutObject and DeleteObject API calls for all but one S3 bucket, log data API calls for a Lambda function named ``myFunction``, and log Publish API calls on an SNS topic named ``myTopic``. ::
+ aws cloudtrail put-event-selectors \
+ --trail-name myTrail \
+ --advanced-event-selectors '[{"Name": "Log all management events", "FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Management"] }] },{"Name": "Log PutObject and DeleteObject events for all but one bucket","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::S3::Object"] },{ "Field": "eventName", "Equals": ["PutObject","DeleteObject"] },{ "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::amzn-s3-demo-bucket/"] }]},{"Name": "Log data events for a specific Lambda function","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-1:123456789012:function:myFunction"] }]},{"Name": "Log all Publish API calls on a specific SNS topic","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::SNS::Topic"] },{ "Field": "eventName", "Equals": ["Publish"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:sns:us-east-1:123456789012:myTopic.fifo"] }]}]'
+Output::
+
+ {
+ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/myTrail",
+ "AdvancedEventSelectors": [
+ {
+ "Name": "Log all management events",
+ "FieldSelectors": [
+ {
+ "Field": "eventCategory",
+ "Equals": [
+ "Management"
+ ]
+ }
+ ]
+ },
+ {
+ "Name": "Log PutObject and DeleteObject events for all but one bucket",
+ "FieldSelectors": [
+ {
+ "Field": "eventCategory",
+ "Equals": [
+ "Data"
+ ]
+ },
+ {
+ "Field": "resources.type",
+ "Equals": [
+ "AWS::S3::Object"
+ ]
+ },
+ {
+ "Field": "eventName",
+ "Equals": [
+ "PutObject",
+ "DeleteObject"
+ ]
+ },
+ {
+ "Field": "resources.ARN",
+ "NotStartsWith": [
+ "arn:aws:s3:::amzn-s3-demo-bucket/"
+ ]
+ }
+ ]
+ },
+ {
+ "Name": "Log data events for a specific Lambda function",
+ "FieldSelectors": [
+ {
+ "Field": "eventCategory",
+ "Equals": [
+ "Data"
+ ]
+ },
+ {
+ "Field": "resources.type",
+ "Equals": [
+ "AWS::Lambda::Function"
+ ]
+ },
+ {
+ "Field": "resources.ARN",
+ "Equals": [
+ "arn:aws:lambda:us-east-1:123456789012:function:myFunction"
+ ]
+ }
+ ]
+ },
+ {
+ "Name": "Log all Publish API calls on a specific SNS topic",
+ "FieldSelectors": [
+ {
+ "Field": "eventCategory",
+ "Equals": [
+ "Data"
+ ]
+ },
+ {
+ "Field": "resources.type",
+ "Equals": [
+ "AWS::SNS::Topic"
+ ]
+ },
+ {
+ "Field": "eventName",
+ "Equals": [
+ "Publish"
+ ]
+ },
+ {
+ "Field": "resources.ARN",
+ "Equals": [
+ "arn:aws:sns:us-east-1:123456789012:myTopic.fifo"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+
+For more information, see `Log events by using advanced event selectors `__ in the *AWS CloudTrail User Guide*.
+
+**Example 2: Configure event selectors for a trail to log all management events and data events**
+
+You can configure up to 5 event selectors for a trail and up to 250 data resources for a trail. Event selectors are also referred to as basic event selectors. You can use event selectors to log management events and data events for S3 objects, Lambda functions, and DynnamoDB tables. To log data events for other resource types, you must use advanced event selectors.
+
+The following ``put-event-selectors`` example creates an event selector for a trail named ``TrailName`` to include all management events, data events for two Amazon S3 bucket/prefix combinations, and data events for a single AWS Lambda function named ``hello-world-python-function``. ::
- aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'
+ aws cloudtrail put-event-selectors \
+ --trail-name TrailName \
+ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::amzn-s3-demo-bucket/prefix","arn:aws:s3:::amzn-s3-demo-bucket2/prefix2"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'
Output::
- {
- "EventSelectors": [
- {
- "IncludeManagementEvents": true,
- "DataResources": [
- {
- "Values": [
- "arn:aws:s3:::mybucket/prefix",
- "arn:aws:s3:::mybucket2/prefix2"
- ],
- "Type": "AWS::S3::Object"
- },
- {
- "Values": [
- "arn:aws:lambda:us-west-2:123456789012:function:hello-world-python-function"
- ],
- "Type": "AWS::Lambda::Function"
- },
- ],
- "ReadWriteType": "All"
- }
- ],
- "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName"
- }
-
-The following example creates an event selector for a trail named ''TrailName2'' that includes all events, including read-only and write-only management events, and all data events for all Amazon S3 buckets and AWS Lambda functions in the AWS account::
-
- aws cloudtrail put-event-selectors --trail-name TrailName2 --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]}]}]'
+ {
+ "EventSelectors": [
+ {
+ "IncludeManagementEvents": true,
+ "DataResources": [
+ {
+ "Values": [
+ "arn:aws:s3:::amzn-s3-demo-bucket/prefix",
+ "arn:aws:s3:::amzn-s3-demo-bucket2/prefix2"
+ ],
+ "Type": "AWS::S3::Object"
+ },
+ {
+ "Values": [
+ "arn:aws:lambda:us-west-2:123456789012:function:hello-world-python-function"
+ ],
+ "Type": "AWS::Lambda::Function"
+ },
+ ],
+ "ReadWriteType": "All"
+ }
+ ],
+ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName"
+ }
+
+For more information, see `Log events by using basic event selectors `__ in the *AWS CloudTrail User Guide*.
+
+**Example 3: Configure event selectors for a trail to log management events, all S3 data events on S3 objects, and all Lambda data events on functions in your account**
+
+The following ``put-event-selectors`` example creates an event selector for a trail named ``TrailName2`` that includes all management events, and all data events for all Amazon S3 buckets and AWS Lambda functions in the AWS account. ::
+
+ aws cloudtrail put-event-selectors \
+ --trail-name TrailName2 \
+ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]}]}]'
Output::
- {
- "EventSelectors": [
- {
- "IncludeManagementEvents": true,
- "DataResources": [
- {
- "Values": [
- "arn:aws:s3:::"
- ],
- "Type": "AWS::S3::Object"
- },
- {
- "Values": [
- "arn:aws:lambda"
- ],
- "Type": "AWS::Lambda::Function"
- },
- ],
- "ReadWriteType": "All"
- }
- ],
- "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2"
- }
-
\ No newline at end of file
+ {
+ "EventSelectors": [
+ {
+ "IncludeManagementEvents": true,
+ "DataResources": [
+ {
+ "Values": [
+ "arn:aws:s3"
+ ],
+ "Type": "AWS::S3::Object"
+ },
+ {
+ "Values": [
+ "arn:aws:lambda"
+ ],
+ "Type": "AWS::Lambda::Function"
+ },
+ ],
+ "ReadWriteType": "All"
+ }
+ ],
+ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2"
+ }
+
+For more information, see `Log events by using basic event selectors `__ in the *AWS CloudTrail User Guide*.
diff --git a/awscli/examples/cloudtrail/update-subscription.rst b/awscli/examples/cloudtrail/update-subscription.rst
index fb0316a5f89b..f1b7df74b997 100644
--- a/awscli/examples/cloudtrail/update-subscription.rst
+++ b/awscli/examples/cloudtrail/update-subscription.rst
@@ -1,30 +1,33 @@
-**To update the configuration settings for a trail**
-
-The following ``update-subscription`` command updates the trail to specify a new S3 bucket and SNS topic::
-
- aws cloudtrail update-subscription --name Trail1 --s3-new-bucket my-bucket-new --sns-new-topic my-topic-new
-
-Output::
-
- Setting up new S3 bucket my-bucket-new...
- Setting up new SNS topic my-topic-new...
- Creating/updating CloudTrail configuration...
- CloudTrail configuration:
- {
- "trailList": [
- {
- "IncludeGlobalServiceEvents": true,
- "Name": "Trail1",
- "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1",
- "LogFileValidationEnabled": false,
- "IsMultiRegionTrail": false,
- "S3BucketName": "my-bucket-new",
- "SnsTopicName": "my-topic-new",
- "HomeRegion": "us-east-1"
- }
- ],
- "ResponseMetadata": {
- "HTTPStatusCode": 200,
- "RequestId": "31126f8a-c616-11e5-9cc6-2fd637936879"
- }
- }
\ No newline at end of file
+**To update the configuration settings for a trail**
+
+The following ``update-subscription`` example updates the trail to specify a new S3 bucket and SNS topic. ::
+
+ aws cloudtrail update-subscription \
+ --name Trail1 \
+ --s3-new-bucket amzn-s3-demo-bucket \
+ --sns-new-topic my-topic-new
+
+Output::
+
+ Setting up new S3 bucket amzn-s3-demo-bucket...
+ Setting up new SNS topic my-topic-new...
+ Creating/updating CloudTrail configuration...
+ CloudTrail configuration:
+ {
+ "trailList": [
+ {
+ "IncludeGlobalServiceEvents": true,
+ "Name": "Trail1",
+ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1",
+ "LogFileValidationEnabled": false,
+ "IsMultiRegionTrail": false,
+ "S3BucketName": "amzn-s3-demo-bucket",
+ "SnsTopicName": "my-topic-new",
+ "HomeRegion": "us-east-1"
+ }
+ ],
+ "ResponseMetadata": {
+ "HTTPStatusCode": 200,
+ "RequestId": "31126f8a-c616-11e5-9cc6-2fd637936879"
+ }
+ }
diff --git a/awscli/examples/cloudtrail/update-trail.rst b/awscli/examples/cloudtrail/update-trail.rst
index 37539b0b9849..f7b9284d88b6 100644
--- a/awscli/examples/cloudtrail/update-trail.rst
+++ b/awscli/examples/cloudtrail/update-trail.rst
@@ -1,16 +1,18 @@
-**To update a trail**
-
-The following ``update-trail`` command updates a trail to use an existing bucket for log delivery::
-
- aws cloudtrail update-trail --name Trail1 --s3-bucket-name my-bucket
-
-Output::
-
- {
- "IncludeGlobalServiceEvents": true,
- "Name": "Trail1",
- "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1",
- "LogFileValidationEnabled": false,
- "IsMultiRegionTrail": true,
- "S3BucketName": "my-bucket"
- }
\ No newline at end of file
+**To update a trail**
+
+The following ``update-trail`` example updates a trail to use an existing bucket for log delivery. ::
+
+ aws cloudtrail update-trail \
+ --name Trail1 \
+ --s3-bucket-name amzn-s3-demo-bucket
+
+Output::
+
+ {
+ "IncludeGlobalServiceEvents": true,
+ "Name": "Trail1",
+ "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1",
+ "LogFileValidationEnabled": false,
+ "IsMultiRegionTrail": true,
+ "S3BucketName": "amzn-s3-demo-bucket"
+ }
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/delete-anomaly-detector.rst b/awscli/examples/cloudwatch/delete-anomaly-detector.rst
new file mode 100644
index 000000000000..9a4f946785d5
--- /dev/null
+++ b/awscli/examples/cloudwatch/delete-anomaly-detector.rst
@@ -0,0 +1,12 @@
+**To delete a specified anomaly detection model**
+
+The following ``delete-anomaly-detector`` example deletes an anomaly detector model in the specified account. ::
+
+ aws cloudwatch delete-anomaly-detector \
+ --namespace AWS/Logs \
+ --metric-name IncomingBytes \
+ --stat SampleCount
+
+This command produces no output.
+
+For more information, see `Deleting an anomaly detection model `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/delete-dashboards.rst b/awscli/examples/cloudwatch/delete-dashboards.rst
new file mode 100644
index 000000000000..fe438c9c7bcb
--- /dev/null
+++ b/awscli/examples/cloudwatch/delete-dashboards.rst
@@ -0,0 +1,10 @@
+**To delete specified dashboards**
+
+The following ``delete-dashboards`` example deletes two dashboards named ``Dashboard-A`` and ``Dashboard-B`` in the specified account. ::
+
+ aws cloudwatch delete-dashboards \
+ --dashboard-names Dashboard-A Dashboard-B
+
+This command produces no output.
+
+For more information, see `Amazon CloudWatch dashboards `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/delete-insight-rules.rst b/awscli/examples/cloudwatch/delete-insight-rules.rst
new file mode 100644
index 000000000000..ac0131e2de25
--- /dev/null
+++ b/awscli/examples/cloudwatch/delete-insight-rules.rst
@@ -0,0 +1,14 @@
+**To delete specified contributor insights rules**
+
+The following ``delete-insight-rules`` example deletes two contributor insights rules named ``Rule-A`` and ``Rule-B`` in the specified account. ::
+
+ aws cloudwatch delete-insight-rules \
+ --rule-names Rule-A Rule-B
+
+Output::
+
+ {
+ "Failures": []
+ }
+
+For more information, see `Use Contributor Insights to analyze high-cardinality data `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/delete-metric-stream.rst b/awscli/examples/cloudwatch/delete-metric-stream.rst
new file mode 100644
index 000000000000..f3d225334b05
--- /dev/null
+++ b/awscli/examples/cloudwatch/delete-metric-stream.rst
@@ -0,0 +1,10 @@
+**To delete a specified metric stream**
+
+The following ``delete-metric-stream`` example deletes the metric stream named ``QuickPartial-gSCKvO`` in the specified account. ::
+
+ aws cloudwatch delete-metric-stream \
+ --name QuickPartial-gSCKvO
+
+This command produces no output.
+
+For more information, see `Use metric streams `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/describe-anomaly-detectors.rst b/awscli/examples/cloudwatch/describe-anomaly-detectors.rst
new file mode 100644
index 000000000000..5d921e64ba78
--- /dev/null
+++ b/awscli/examples/cloudwatch/describe-anomaly-detectors.rst
@@ -0,0 +1,59 @@
+**To retrieve a list of anomaly detection models**
+
+The following ``describe-anomaly-detectors`` example displays information about anomaly detector models that are associated with the ``AWS/Logs`` namespace in the specified account. ::
+
+ aws cloudwatch describe-anomaly-detectors \
+ --namespace AWS/Logs
+
+Output::
+
+ {
+ "AnomalyDetectors": [
+ {
+ "Namespace": "AWS/Logs",
+ "MetricName": "IncomingBytes",
+ "Dimensions": [],
+ "Stat": "SampleCount",
+ "Configuration": {
+ "ExcludedTimeRanges": []
+ },
+ "StateValue": "TRAINED",
+ "SingleMetricAnomalyDetector": {
+ "AccountId": "123456789012",
+ "Namespace": "AWS/Logs",
+ "MetricName": "IncomingBytes",
+ "Dimensions": [],
+ "Stat": "SampleCount"
+ }
+ },
+ {
+ "Namespace": "AWS/Logs",
+ "MetricName": "IncomingBytes",
+ "Dimensions": [
+ {
+ "Name": "LogGroupName",
+ "Value": "demo"
+ }
+ ],
+ "Stat": "Average",
+ "Configuration": {
+ "ExcludedTimeRanges": []
+ },
+ "StateValue": "PENDING_TRAINING",
+ "SingleMetricAnomalyDetector": {
+ "AccountId": "123456789012",
+ "Namespace": "AWS/Logs",
+ "MetricName": "IncomingBytes",
+ "Dimensions": [
+ {
+ "Name": "LogGroupName",
+ "Value": "demo"
+ }
+ ],
+ "Stat": "Average"
+ }
+ }
+ ]
+ }
+
+For more information, see `Using CloudWatch anomaly detection `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/describe-insight-rules.rst b/awscli/examples/cloudwatch/describe-insight-rules.rst
new file mode 100644
index 000000000000..8467a3618801
--- /dev/null
+++ b/awscli/examples/cloudwatch/describe-insight-rules.rst
@@ -0,0 +1,28 @@
+**To retrieve a list of Contributor Insights rules**
+
+The following ``describe-insight-rules`` example shows all the Contributor Insight rules in the specified account. ::
+
+ aws cloudwatch describe-insight-rules
+
+Output::
+
+ {
+ "InsightRules": [
+ {
+ "Name": "Rule-A",
+ "State": "ENABLED",
+ "Schema": "CloudWatchLogRule/1",
+ "Definition": "{\n\t\"AggregateOn\": \"Count\",\n\t\"Contribution\": {\n\t\t\"Filters\": [],\n\t\t\"Keys\": [\n\t\t\t\"$.requestId\"\n\t\t]\n\t},\n\t\"LogFormat\": \"JSON\",\n\t\"Schema\": {\n\t\t\"Name\": \"CloudWatchLogRule\",\n\t\t\"Version\": 1\n\t},\n\t\"LogGroupARNs\": [\n\t\t\"arn:aws:logs:us-east-1:123456789012:log-group:demo\"\n\t]\n}",
+ "ManagedRule": false
+ },
+ {
+ "Name": "Rule-B",
+ "State": "ENABLED",
+ "Schema": "CloudWatchLogRule/1",
+ "Definition": "{\n\t\"AggregateOn\": \"Count\",\n\t\"Contribution\": {\n\t\t\"Filters\": [],\n\t\t\"Keys\": [\n\t\t\t\"$.requestId\"\n\t\t]\n\t},\n\t\"LogFormat\": \"JSON\",\n\t\"Schema\": {\n\t\t\"Name\": \"CloudWatchLogRule\",\n\t\t\"Version\": 1\n\t},\n\t\"LogGroupARNs\": [\n\t\t\"arn:aws:logs:us-east-1:123456789012:log-group:demo-1\"\n\t]\n}",
+ "ManagedRule": false
+ }
+ ]
+ }
+
+For more information, see `Use Contributor Insights to analyze high-cardinality data `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/disable-insight-rules.rst b/awscli/examples/cloudwatch/disable-insight-rules.rst
new file mode 100644
index 000000000000..4edeb02bc596
--- /dev/null
+++ b/awscli/examples/cloudwatch/disable-insight-rules.rst
@@ -0,0 +1,14 @@
+**To disable specified contributor insight rules**
+
+The following ``disable-insight-rules`` example disables two contributor insights rules named ``Rule-A`` and ``Rule-B`` in the specified account. ::
+
+ aws cloudwatch disable-insight-rules \
+ --rule-names Rule-A Rule-B
+
+Output::
+
+ {
+ "Failures": []
+ }
+
+For more information, see `Use Contributor Insights to analyze high-cardinality data `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/enable-insight-rules.rst b/awscli/examples/cloudwatch/enable-insight-rules.rst
new file mode 100644
index 000000000000..0a93df440f35
--- /dev/null
+++ b/awscli/examples/cloudwatch/enable-insight-rules.rst
@@ -0,0 +1,14 @@
+**To enable specified contributor insight rules**
+
+The following ``enable-insight-rules`` example enables two contributor insights rules named ``Rule-A`` and ``Rule-B`` in the specified account. ::
+
+ aws cloudwatch enable-insight-rules \
+ --rule-names Rule-A Rule-B
+
+Output::
+
+ {
+ "Failures": []
+ }
+
+For more information, see `Use Contributor Insights to analyze high-cardinality data `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/get-dashboard.rst b/awscli/examples/cloudwatch/get-dashboard.rst
new file mode 100644
index 000000000000..8afa9efac090
--- /dev/null
+++ b/awscli/examples/cloudwatch/get-dashboard.rst
@@ -0,0 +1,16 @@
+**To retrieve information about a Dashboard**
+
+The following ``get-dashboard`` example displays information about the dashboard named ``Dashboard-A`` in the specified account. ::
+
+ aws cloudwatch get-dashboard \
+ --dashboard-name Dashboard-A
+
+Output::
+
+ {
+ "DashboardArn": "arn:aws:cloudwatch::123456789012:dashboard/Dashboard-A",
+ "DashboardBody": "{\"widgets\":[{\"type\":\"metric\",\"x\":0,\"y\":0,\"width\":6,\"height\":6,\"properties\":{\"view\":\"timeSeries\",\"stacked\":false,\"metrics\":[[\"AWS/EC2\",\"NetworkIn\",\"InstanceId\",\"i-0131f062232ade043\"],[\".\",\"NetworkOut\",\".\",\".\"]],\"region\":\"us-east-1\"}}]}",
+ "DashboardName": "Dashboard-A"
+ }
+
+For more information, see `Amazon CloudWatch dashboards `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/get-insight-rule-report.rst b/awscli/examples/cloudwatch/get-insight-rule-report.rst
new file mode 100644
index 000000000000..0ad2859416e6
--- /dev/null
+++ b/awscli/examples/cloudwatch/get-insight-rule-report.rst
@@ -0,0 +1,37 @@
+**To retrieve the time series data collected by a Contributor Insights rule**
+
+The following ``get-insight-rule-report`` example returns the time series data collected by a Contributor Insights rule. ::
+
+ aws cloudwatch get-insight-rule-report \
+ --rule-name Rule-A \
+ --start-time 2024-10-13T20:15:00Z \
+ --end-time 2024-10-13T20:30:00Z \
+ --period 300
+
+Output::
+
+ {
+ "KeyLabels": [
+ "PartitionKey"
+ ],
+ "AggregationStatistic": "Sum",
+ "AggregateValue": 0.5,
+ "ApproximateUniqueCount": 1,
+ "Contributors": [
+ {
+ "Keys": [
+ "RequestID"
+ ],
+ "ApproximateAggregateValue": 0.5,
+ "Datapoints": [
+ {
+ "Timestamp": "2024-10-13T21:00:00+00:00",
+ "ApproximateValue": 0.5
+ }
+ ]
+ }
+ ],
+ "RuleAttributes": []
+ }
+
+For more information, see `Use Contributor Insights to analyze high-cardinality data `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/get-metric-data.rst b/awscli/examples/cloudwatch/get-metric-data.rst
new file mode 100644
index 000000000000..6af2ed2cc3d5
--- /dev/null
+++ b/awscli/examples/cloudwatch/get-metric-data.rst
@@ -0,0 +1,106 @@
+**Example 1: To get the Average Total IOPS for the specified EC2 using math expression**
+
+The following ``get-metric-data`` example retrieves CloudWatch metric values for the EC2 instance with InstanceID ``i-abcdef`` using metric math exprssion that combines ``EBSReadOps`` and ``EBSWriteOps`` metrics. ::
+
+ aws cloudwatch get-metric-data \
+ --metric-data-queries file://file.json \
+ --start-time 2024-09-29T22:10:00Z \
+ --end-time 2024-09-29T22:15:00Z
+
+Contents of ``file.json``::
+
+ [
+ {
+ "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
+ }
+ ]
+
+Output::
+
+ {
+ "MetricDataResults": [
+ {
+ "Id": "m3",
+ "Label": "Avg Total IOPS",
+ "Timestamps": [
+ "2024-09-29T22:10:00+00:00"
+ ],
+ "Values": [
+ 96.85
+ ],
+ "StatusCode": "Complete"
+ }
+ ],
+ "Messages": []
+ }
+
+**Example 2: To monitor the estimated AWS charges using CloudWatch billing metrics**
+
+The following ``get-metric-data`` example retrieves ``EstimatedCharges`` CloudWatch metric from AWS/Billing namespace. ::
+
+ aws cloudwatch get-metric-data \
+ --metric-data-queries '[{"Id":"m1","MetricStat":{"Metric":{"Namespace":"AWS/Billing","MetricName":"EstimatedCharges","Dimensions":[{"Name":"Currency","Value":"USD"}]},"Period":21600,"Stat":"Maximum"}}]' \
+ --start-time 2024-09-26T12:00:00Z \
+ --end-time 2024-09-26T18:00:00Z \
+ --region us-east-1
+
+Output::
+
+ {
+ "MetricDataResults": [
+ {
+ "Id": "m1",
+ "Label": "EstimatedCharges",
+ "Timestamps": [
+ "2024-09-26T12:00:00+00:00"
+ ],
+ "Values": [
+ 542.38
+ ],
+ "StatusCode": "Complete"
+ }
+ ],
+ "Messages": []
+ }
+
+For more information, see `Using math expressions with CloudWatch metrics `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/get-metric-stream.rst b/awscli/examples/cloudwatch/get-metric-stream.rst
new file mode 100644
index 000000000000..21926377486f
--- /dev/null
+++ b/awscli/examples/cloudwatch/get-metric-stream.rst
@@ -0,0 +1,22 @@
+**To retrieve information about a metric stream**
+
+The following ``get-metric-stream`` example displays information about the metric stream named ``QuickFull-GuaFbs`` in the specified account. ::
+
+ aws cloudwatch get-metric-stream \
+ --name QuickFull-GuaFbs
+
+Output::
+
+ {
+ "Arn": "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/QuickFull-GuaFbs",
+ "Name": "QuickFull-GuaFbs",
+ "FirehoseArn": "arn:aws:firehose:us-east-1:123456789012:deliverystream/MetricStreams-QuickFull-GuaFbs-WnySbECG",
+ "RoleArn": "arn:aws:iam::123456789012:role/service-role/MetricStreams-FirehosePutRecords-JN10W9B3",
+ "State": "running",
+ "CreationDate": "2024-10-11T18:48:59.187000+00:00",
+ "LastUpdateDate": "2024-10-11T18:48:59.187000+00:00",
+ "OutputFormat": "json",
+ "IncludeLinkedAccountsMetrics": false
+ }
+
+For more information, see `Use metric streams `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/get-metric-widget-image.rst b/awscli/examples/cloudwatch/get-metric-widget-image.rst
new file mode 100644
index 000000000000..5bbef1c762a1
--- /dev/null
+++ b/awscli/examples/cloudwatch/get-metric-widget-image.rst
@@ -0,0 +1,10 @@
+**To retrieve a snapshot graph of CPUUtilization**
+
+The following ``get-metric-widget-image`` example retrieves snapshot graph for the metric ``CPUUtilization`` of the EC2 instance with the ID ``i-abcde`` and saves the retrieved image as a file named "image.png" on your local machine. ::
+
+ aws cloudwatch get-metric-widget-image \
+ --metric-widget '{"metrics":[["AWS/EC2","CPUUtilization","InstanceId","i-abcde"]]}' \
+ --output-format png \
+ --output text | base64 --decode > image.png
+
+This command produces no output.
diff --git a/awscli/examples/cloudwatch/list-dashboards.rst b/awscli/examples/cloudwatch/list-dashboards.rst
new file mode 100644
index 000000000000..432313e8aca9
--- /dev/null
+++ b/awscli/examples/cloudwatch/list-dashboards.rst
@@ -0,0 +1,26 @@
+**To retrieve a list of Dashboards**
+
+The following ``list-dashboards`` example lists all the Dashboards in the specified account. ::
+
+ aws cloudwatch list-dashboards
+
+Output::
+
+ {
+ "DashboardEntries": [
+ {
+ "DashboardName": "Dashboard-A",
+ "DashboardArn": "arn:aws:cloudwatch::123456789012:dashboard/Dashboard-A",
+ "LastModified": "2024-10-11T18:40:11+00:00",
+ "Size": 271
+ },
+ {
+ "DashboardName": "Dashboard-B",
+ "DashboardArn": "arn:aws:cloudwatch::123456789012:dashboard/Dashboard-B",
+ "LastModified": "2024-10-11T18:44:41+00:00",
+ "Size": 522
+ }
+ ]
+ }
+
+For more information, see `Amazon CloudWatch dashboards `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/list-metric-streams.rst b/awscli/examples/cloudwatch/list-metric-streams.rst
new file mode 100644
index 000000000000..523e72657d60
--- /dev/null
+++ b/awscli/examples/cloudwatch/list-metric-streams.rst
@@ -0,0 +1,23 @@
+**To retrieve a list of metric streams**
+
+The following ``list-metric-streams`` example lists all the metric streams in the specified account. ::
+
+ aws cloudwatch list-metric-streams
+
+Output::
+
+ {
+ "Entries": [
+ {
+ "Arn": "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/QuickFull-GuaFbs",
+ "CreationDate": "2024-10-11T18:48:59.187000+00:00",
+ "LastUpdateDate": "2024-10-11T18:48:59.187000+00:00",
+ "Name": "QuickFull-GuaFbs",
+ "FirehoseArn": "arn:aws:firehose:us-east-1:123456789012:deliverystream/MetricStreams-QuickFull-GuaFbs-WnySbECG",
+ "State": "running",
+ "OutputFormat": "json"
+ }
+ ]
+ }
+
+For more information, see `Use metric streams `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/list-tags-for-resource.rst b/awscli/examples/cloudwatch/list-tags-for-resource.rst
new file mode 100644
index 000000000000..6d1c1143207c
--- /dev/null
+++ b/awscli/examples/cloudwatch/list-tags-for-resource.rst
@@ -0,0 +1,23 @@
+**To list the tags associated with an existing alarm***
+
+The following ``list-tags-for-resource`` example lists all the tags associated with an alarm named ``demo`` in the specified account. ::
+
+ aws cloudwatch list-tags-for-resource \
+ --resource-arn arn:aws:cloudwatch:us-east-1:123456789012:alarm:demo
+
+Output::
+
+ {
+ "Tags": [
+ {
+ "Key": "stack",
+ "Value": "Production"
+ },
+ {
+ "Key": "team",
+ "Value": "Devops"
+ }
+ ]
+ }
+
+For more information, see `Alarms and tagging `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/put-anomaly-detector.rst b/awscli/examples/cloudwatch/put-anomaly-detector.rst
new file mode 100644
index 000000000000..38503f5fe7e1
--- /dev/null
+++ b/awscli/examples/cloudwatch/put-anomaly-detector.rst
@@ -0,0 +1,12 @@
+**To create an anomaly detection model**
+
+The following ``put-anomaly-detector`` example creates an anomaly detection model for a CloudWatch metric. ::
+
+ aws cloudwatch put-anomaly-detector \
+ --namespace AWS/Logs \
+ --metric-name IncomingBytes \
+ --stat SampleCount
+
+This command produces no output.
+
+For more information, see `Using CloudWatch anomaly detection `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/put-composite-alarm.rst b/awscli/examples/cloudwatch/put-composite-alarm.rst
new file mode 100644
index 000000000000..b564cd45d85d
--- /dev/null
+++ b/awscli/examples/cloudwatch/put-composite-alarm.rst
@@ -0,0 +1,13 @@
+**To create a composite cloudwatch alarm**
+
+The following ``put-composite-alarm`` example creates a composite alarm named ``ProdAlarm`` in the specified account. ::
+
+ aws cloudwatch put-composite-alarm \
+ --alarm-name ProdAlarm \
+ --alarm-rule "ALARM(CPUUtilizationTooHigh) AND ALARM(MemUsageTooHigh)" \
+ --alarm-actions arn:aws:sns:us-east-1:123456789012:demo \
+ --actions-enabled
+
+This command produces no output.
+
+For more information, see `Create a composite alarm `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/put-dashboard.rst b/awscli/examples/cloudwatch/put-dashboard.rst
new file mode 100644
index 000000000000..27d101cb600f
--- /dev/null
+++ b/awscli/examples/cloudwatch/put-dashboard.rst
@@ -0,0 +1,15 @@
+**To create a dashboard**
+
+The following ``put-dashboard`` example creates a dashboard named ``Dashboard-A`` in the specified account. ::
+
+ aws cloudwatch put-dashboard \
+ --dashboard-name Dashboard-A \
+ --dashboard-body '{"widgets":[{"height":6,"width":6,"y":0,"x":0,"type":"metric","properties":{"view":"timeSeries","stacked":false,"metrics":[["Namespace","CPUUtilization","Environment","Prod","Type","App"]],"region":"us-east-1"}}]}'
+
+Output::
+
+ {
+ "DashboardValidationMessages": []
+ }
+
+For more information, see `Creating a CloudWatch dashboard `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/put-insight-rule.rst b/awscli/examples/cloudwatch/put-insight-rule.rst
new file mode 100644
index 000000000000..da83be472b10
--- /dev/null
+++ b/awscli/examples/cloudwatch/put-insight-rule.rst
@@ -0,0 +1,35 @@
+**To create a contributor insights rule**
+
+The following ``put-insight-rule`` example creates a Contributor Insights rule named ``VPCFlowLogsContributorInsights`` in the specified account. ::
+
+ aws cloudwatch put-insight-rule \
+ --rule-name VPCFlowLogsContributorInsights \
+ --rule-definition file://insight-rule.json \
+ --rule-state ENABLED
+
+Contents of ``insight-rule.json``::
+
+ {
+ "Schema": {
+ "Name": "CloudWatchLogRule",
+ "Version": 1
+ },
+ "AggregateOn": "Count",
+ "Contribution": {
+ "Filters": [],
+ "Keys": [
+ "tcp-flag"
+ ]
+ },
+ "LogFormat": "CLF",
+ "LogGroupNames": [
+ "/vpc/flowlogs/*"
+ ],
+ "Fields": {
+ "23": "tcp-flag"
+ }
+ }
+
+This command produces no output.
+
+For more information, see `Create a Contributor Insights rule in CloudWatch `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/put-metric-stream.rst b/awscli/examples/cloudwatch/put-metric-stream.rst
new file mode 100644
index 000000000000..536071768df9
--- /dev/null
+++ b/awscli/examples/cloudwatch/put-metric-stream.rst
@@ -0,0 +1,18 @@
+**To create a metric stream**
+
+The following ``put-metric-stream`` example creates a metric stream named ``QuickFull-GuaFb`` in the specified account. ::
+
+ aws cloudwatch put-metric-stream \
+ --name QuickFull-GuaFbs \
+ --firehose-arn arn:aws:firehose:us-east-1:123456789012:deliverystream/MetricStreams-QuickFull-GuaFbs-WnySbECG \
+ --role-arn arn:aws:iam::123456789012:role/service-role/MetricStreams-FirehosePutRecords-JN10W9B3 \
+ --output-format json \
+ --no-include-linked-accounts-metrics
+
+Output::
+
+ {
+ "Arn": "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/QuickFull-GuaFbs"
+ }
+
+For more information, see `Set up a metric stream `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/start-metric-streams.rst b/awscli/examples/cloudwatch/start-metric-streams.rst
new file mode 100644
index 000000000000..fbf339bc961c
--- /dev/null
+++ b/awscli/examples/cloudwatch/start-metric-streams.rst
@@ -0,0 +1,10 @@
+**To start a specified metric stream**
+
+The following ``start-metric-streams`` example starts the metric stream named ``QuickFull-GuaFbs`` in the specified account. ::
+
+ aws cloudwatch start-metric-streams \
+ --names QuickFull-GuaFbs
+
+This command produces no output.
+
+For more information, see `Use metric streams `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/stop-metric-streams.rst b/awscli/examples/cloudwatch/stop-metric-streams.rst
new file mode 100644
index 000000000000..6c84e2b496e6
--- /dev/null
+++ b/awscli/examples/cloudwatch/stop-metric-streams.rst
@@ -0,0 +1,10 @@
+**To stop a specified metric stream**
+
+The following ``stop-metric-streams`` example stops the metric stream named ``QuickFull-GuaFbs`` in the specified account. ::
+
+ aws cloudwatch stop-metric-streams \
+ --names QuickFull-GuaFbs
+
+This command produces no output.
+
+For more information, see `Use metric streams `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/tag-resource.rst b/awscli/examples/cloudwatch/tag-resource.rst
new file mode 100644
index 000000000000..7dd6a73b1bd9
--- /dev/null
+++ b/awscli/examples/cloudwatch/tag-resource.rst
@@ -0,0 +1,11 @@
+**To add one or more tags to the specified resource**
+
+The following ``tag-resource`` example adds 2 tags to the cloudwatch alarm named ``demo`` in the specified account. ::
+
+ aws cloudwatch tag-resource \
+ --resource-arn arn:aws:cloudwatch:us-east-1:123456789012:alarm:demo \
+ --tags Key=stack,Value=Production Key=team,Value=Devops
+
+This command produces no output.
+
+For more information, see `Tagging your Amazon CloudWatch resources `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/untag-resource.rst b/awscli/examples/cloudwatch/untag-resource.rst
new file mode 100644
index 000000000000..3c01011d2890
--- /dev/null
+++ b/awscli/examples/cloudwatch/untag-resource.rst
@@ -0,0 +1,11 @@
+**To remove one or more tags from the specified resource**
+
+The following ``untag-resource`` example removes 2 tags from the cloudwatch alarm named ``demo`` in the specified account. ::
+
+ aws cloudwatch untag-resource \
+ --resource-arn arn:aws:cloudwatch:us-east-1:123456789012:alarm:demo \
+ --tag-keys stack team
+
+This command produces no output.
+
+For more information, see `Tagging your Amazon CloudWatch resources `__ in the *Amazon CloudWatch User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cloudwatch/wait/alarm-exists.rst b/awscli/examples/cloudwatch/wait/alarm-exists.rst
new file mode 100644
index 000000000000..c55a1e677c80
--- /dev/null
+++ b/awscli/examples/cloudwatch/wait/alarm-exists.rst
@@ -0,0 +1,8 @@
+**To wait until an alarm exists**
+
+The following ``wait alarm-exists`` example pauses and resumes running only after it confirms that the specified CloudWatch alarm exists. ::
+
+ aws cloudwatch wait alarm-exists \
+ --alarm-names demo
+
+This command produces no output.
diff --git a/awscli/examples/cloudwatch/wait/composite-alarm-exists.rst b/awscli/examples/cloudwatch/wait/composite-alarm-exists.rst
new file mode 100644
index 000000000000..5fec513f6f78
--- /dev/null
+++ b/awscli/examples/cloudwatch/wait/composite-alarm-exists.rst
@@ -0,0 +1,9 @@
+**To wait until a composite alarm exists**
+
+The following ``wait composite-alarm-exists`` example pauses and resumes running only after it confirms that the specified CloudWatch alarm exists. ::
+
+ aws cloudwatch wait composite-alarm-exists \
+ --alarm-names demo \
+ --alarm-types CompositeAlarm
+
+This command produces no output.
diff --git a/awscli/examples/codebuild/create-report-group.rst b/awscli/examples/codebuild/create-report-group.rst
index ba9815c0fa1d..f94266b403a9 100644
--- a/awscli/examples/codebuild/create-report-group.rst
+++ b/awscli/examples/codebuild/create-report-group.rst
@@ -13,7 +13,7 @@ Contents of create-report-group-source.json::
"exportConfig": {
"exportConfigType": "S3",
"s3Destination": {
- "bucket": "my-s3-bucket",
+ "bucket": "amzn-s3-demo-bucket",
"path": "",
"packaging": "ZIP",
"encryptionDisabled": true
@@ -31,7 +31,7 @@ Output::
"exportConfig": {
"exportConfigType": "S3",
"s3Destination": {
- "bucket": "my-s3-bucket",
+ "bucket": "amzn-s3-demo-bucket",
"path": "",
"packaging": "ZIP",
"encryptionDisabled": true
diff --git a/awscli/examples/codecommit/get-merge-commit.rst b/awscli/examples/codecommit/get-merge-commit.rst
index 6b8bb651e6ee..84fd5fcb94fd 100644
--- a/awscli/examples/codecommit/get-merge-commit.rst
+++ b/awscli/examples/codecommit/get-merge-commit.rst
@@ -1,11 +1,10 @@
**To get detailed information about a merge commit**
-The following ``get-merge-commit`` example displays details about a merge commit for the source branch named ``bugfix-bug1234`` with a destination branch named ``main`` using the THREE_WAY_MERGE strategy in a repository named ``MyDemoRepo``. ::
+The following ``get-merge-commit`` example displays details about a merge commit for the source branch named ``bugfix-bug1234`` with a destination branch named ``main`` in a repository named ``MyDemoRepo``. ::
aws codecommit get-merge-commit \
--source-commit-specifier bugfix-bug1234 \
--destination-commit-specifier main \
- --merge-option THREE_WAY_MERGE \
--repository-name MyDemoRepo
Output::
diff --git a/awscli/examples/codeguru-reviewer/list-recommendations.rst b/awscli/examples/codeguru-reviewer/list-recommendations.rst
index 6150030ab7b3..e6ff058f4cda 100644
--- a/awscli/examples/codeguru-reviewer/list-recommendations.rst
+++ b/awscli/examples/codeguru-reviewer/list-recommendations.rst
@@ -1,6 +1,6 @@
**To list the recommendations for a completed code review**
-The following ``list-recommendations`` example lists the recommendations for a comleted code review. This code review has one recommendations. ::
+The following ``list-recommendations`` example lists the recommendations for a completed code review. This code review has one recommendations. ::
aws codeguru-reviewer list-recommendations \
--code-review-arn arn:aws:codeguru-reviewer:us-west-2:544120495673:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
diff --git a/awscli/examples/codepipeline/list-action-executions.rst b/awscli/examples/codepipeline/list-action-executions.rst
index 907ef50fd54d..f5b7503650ad 100644
--- a/awscli/examples/codepipeline/list-action-executions.rst
+++ b/awscli/examples/codepipeline/list-action-executions.rst
@@ -1,115 +1,115 @@
-**To list action executions**
-
-The following ``list-action-executions`` example views action execution details for a pipeline, such as action execution ID, input artifacts, output artifacts, execution result, and status. ::
-
- aws codepipeline list-action-executions \
- --pipeline-name myPipeline
-
-Output::
-
- {
- "actionExecutionDetails": [
- {
- "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3",
- "actionExecutionId": "EXAMPLE4-2ee8-4853-bd6a-111111158148",
- "pipelineVersion": 12,
- "stageName": "Deploy",
- "actionName": "Deploy",
- "startTime": 1598572628.6,
- "lastUpdateTime": 1598572661.255,
- "status": "Succeeded",
- "input": {
- "actionTypeId": {
- "category": "Deploy",
- "owner": "AWS",
- "provider": "CodeDeploy",
- "version": "1"
- },
- "configuration": {
- "ApplicationName": "my-application",
- "DeploymentGroupName": "my-deployment-group"
- },
- "resolvedConfiguration": {
- "ApplicationName": "my-application",
- "DeploymentGroupName": "my-deployment-group"
- },
- "region": "us-east-1",
- "inputArtifacts": [
- {
- "name": "SourceArtifact",
- "s3location": {
- "bucket": "artifact-bucket",
- "key": "myPipeline/SourceArti/key"
- }
- }
- ],
- "namespace": "DeployVariables"
- },
- "output": {
- "outputArtifacts": [],
- "executionResult": {
- "externalExecutionId": "d-EXAMPLEE5",
- "externalExecutionSummary": "Deployment Succeeded",
- "externalExecutionUrl": "https://myaddress.com"
- },
- "outputVariables": {}
- }
- },
- {
- "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3",
- "actionExecutionId": "EXAMPLE5-abb4-4192-9031-11111113a7b0",
- "pipelineVersion": 12,
- "stageName": "Source",
- "actionName": "Source",
- "startTime": 1598572624.387,
- "lastUpdateTime": 1598572628.16,
- "status": "Succeeded",
- "input": {
- "actionTypeId": {
- "category": "Source",
- "owner": "AWS",
- "provider": "CodeCommit",
- "version": "1"
- },
- "configuration": {
- "BranchName": "production",
- "PollForSourceChanges": "false",
- "RepositoryName": "my-repo"
- },
- "resolvedConfiguration": {
- "BranchName": "production",
- "PollForSourceChanges": "false",
- "RepositoryName": "my-repo"
- },
- "region": "us-east-1",
- "inputArtifacts": [],
- "namespace": "SourceVariables"
- },
- "output": {
- "outputArtifacts": [
- {
- "name": "SourceArtifact",
- "s3location": {
- "bucket": "my-bucket",
- "key": "myPipeline/SourceArti/key"
- }
- }
- ],
- "executionResult": {
- "externalExecutionId": "1111111ad99dcd35914c00b7fbea13995EXAMPLE",
- "externalExecutionSummary": "Edited template.yml",
- "externalExecutionUrl": "https://myaddress.com"
- },
- "outputVariables": {
- "AuthorDate": "2020-05-08T17:45:43Z",
- "BranchName": "production",
- "CommitId": "EXAMPLEad99dcd35914c00b7fbea139951111111",
- "CommitMessage": "Edited template.yml",
- "CommitterDate": "2020-05-08T17:45:43Z",
- "RepositoryName": "my-repo"
- }
- }
- },
- . . . .
-
+**To list action executions**
+
+The following ``list-action-executions`` example views action execution details for a pipeline, such as action execution ID, input artifacts, output artifacts, execution result, and status. ::
+
+ aws codepipeline list-action-executions \
+ --pipeline-name myPipeline
+
+Output::
+
+ {
+ "actionExecutionDetails": [
+ {
+ "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3",
+ "actionExecutionId": "EXAMPLE4-2ee8-4853-bd6a-111111158148",
+ "pipelineVersion": 12,
+ "stageName": "Deploy",
+ "actionName": "Deploy",
+ "startTime": 1598572628.6,
+ "lastUpdateTime": 1598572661.255,
+ "status": "Succeeded",
+ "input": {
+ "actionTypeId": {
+ "category": "Deploy",
+ "owner": "AWS",
+ "provider": "CodeDeploy",
+ "version": "1"
+ },
+ "configuration": {
+ "ApplicationName": "my-application",
+ "DeploymentGroupName": "my-deployment-group"
+ },
+ "resolvedConfiguration": {
+ "ApplicationName": "my-application",
+ "DeploymentGroupName": "my-deployment-group"
+ },
+ "region": "us-east-1",
+ "inputArtifacts": [
+ {
+ "name": "SourceArtifact",
+ "s3location": {
+ "bucket": "artifact-bucket",
+ "key": "myPipeline/SourceArti/key"
+ }
+ }
+ ],
+ "namespace": "DeployVariables"
+ },
+ "output": {
+ "outputArtifacts": [],
+ "executionResult": {
+ "externalExecutionId": "d-EXAMPLEE5",
+ "externalExecutionSummary": "Deployment Succeeded",
+ "externalExecutionUrl": "https://myaddress.com"
+ },
+ "outputVariables": {}
+ }
+ },
+ {
+ "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3",
+ "actionExecutionId": "EXAMPLE5-abb4-4192-9031-11111113a7b0",
+ "pipelineVersion": 12,
+ "stageName": "Source",
+ "actionName": "Source",
+ "startTime": 1598572624.387,
+ "lastUpdateTime": 1598572628.16,
+ "status": "Succeeded",
+ "input": {
+ "actionTypeId": {
+ "category": "Source",
+ "owner": "AWS",
+ "provider": "CodeCommit",
+ "version": "1"
+ },
+ "configuration": {
+ "BranchName": "production",
+ "PollForSourceChanges": "false",
+ "RepositoryName": "my-repo"
+ },
+ "resolvedConfiguration": {
+ "BranchName": "production",
+ "PollForSourceChanges": "false",
+ "RepositoryName": "my-repo"
+ },
+ "region": "us-east-1",
+ "inputArtifacts": [],
+ "namespace": "SourceVariables"
+ },
+ "output": {
+ "outputArtifacts": [
+ {
+ "name": "SourceArtifact",
+ "s3location": {
+ "bucket": "amzn-s3-demo-bucket",
+ "key": "myPipeline/SourceArti/key"
+ }
+ }
+ ],
+ "executionResult": {
+ "externalExecutionId": "1111111ad99dcd35914c00b7fbea13995EXAMPLE",
+ "externalExecutionSummary": "Edited template.yml",
+ "externalExecutionUrl": "https://myaddress.com"
+ },
+ "outputVariables": {
+ "AuthorDate": "2020-05-08T17:45:43Z",
+ "BranchName": "production",
+ "CommitId": "EXAMPLEad99dcd35914c00b7fbea139951111111",
+ "CommitMessage": "Edited template.yml",
+ "CommitterDate": "2020-05-08T17:45:43Z",
+ "RepositoryName": "my-repo"
+ }
+ }
+ },
+ . . . .
+
For more information, see `View action executions (CLI) `__ in the *AWS CodePipeline User Guide*.
\ No newline at end of file
diff --git a/awscli/examples/codestar/associate-team-member.rst b/awscli/examples/codestar/associate-team-member.rst
deleted file mode 100755
index 4aeb984d7f7d..000000000000
--- a/awscli/examples/codestar/associate-team-member.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-**To add a team member to a project**
-
-The following ``associate-team-member`` example makes the ``intern`` user a viewer on the project with the specified ID. ::
-
- aws codestar associate-team-member \
- --project-id my-project \
- --user-arn arn:aws:iam::123456789012:user/intern \
- --project-role Viewer
-
-This command produces no output.
diff --git a/awscli/examples/codestar/create-project.rst b/awscli/examples/codestar/create-project.rst
deleted file mode 100755
index 96e0fd5dd74b..000000000000
--- a/awscli/examples/codestar/create-project.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-**To create a project**
-
-The following ``create-project`` example uses a JSON input file to create a CodeStar project. ::
-
- aws codestar create-project \
- --cli-input-json file://create-project.json
-
-Contents of ``create-project.json``::
-
- {
- "name": "Custom Project",
- "id": "custom-project",
- "sourceCode": [
- {
- "source": {
- "s3": {
- "bucketName": "codestar-artifacts",
- "bucketKey": "nodejs-function.zip"
- }
- },
- "destination": {
- "codeCommit": {
- "name": "codestar-custom-project"
- }
- }
- }
- ],
- "toolchain": {
- "source": {
- "s3": {
- "bucketName": "codestar-artifacts",
- "bucketKey": "toolchain.yml"
- }
- },
- "roleArn": "arn:aws:iam::123456789012:role/service-role/aws-codestar-service-role",
- "stackParameters": {
- "ProjectId": "custom-project"
- }
- }
- }
-
-Output::
-
- {
- "id": "my-project",
- "arn": "arn:aws:codestar:us-east-2:123456789012:project/custom-project"
- }
-
-For a tutorial that includes sample code and templates for a custom project, see `Create a Project in AWS CodeStar with the AWS CLI`__ in the *AWS CodeStar User Guide*.
diff --git a/awscli/examples/codestar/create-user-profile.rst b/awscli/examples/codestar/create-user-profile.rst
deleted file mode 100755
index 0e69081aeb1b..000000000000
--- a/awscli/examples/codestar/create-user-profile.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-**To create a user profile**
-
-The following ``create-user-profile`` example creates a user profile for the IAM user with the specified ARN. ::
-
- aws codestar create-user-profile \
- --user-arn arn:aws:iam::123456789012:user/intern \
- --display-name Intern \
- --email-address intern@example.com
-
-Output::
-
- {
- "userArn": "arn:aws:iam::123456789012:user/intern",
- "displayName": "Intern",
- "emailAddress": "intern@example.com",
- "sshPublicKey": "",
- "createdTimestamp": 1572552308.607,
- "lastModifiedTimestamp": 1572552308.607
- }
diff --git a/awscli/examples/codestar/delete-project.rst b/awscli/examples/codestar/delete-project.rst
deleted file mode 100755
index b3b16e98e100..000000000000
--- a/awscli/examples/codestar/delete-project.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-**To delete a project**
-
-The following ``delete-project`` example deletes the specified project. ::
-
- aws codestar delete-project \
- --project-id my-project
-
-Output::
-
- {
- "projectArn": "arn:aws:codestar:us-east-2:123456789012:project/my-project"
- }
diff --git a/awscli/examples/codestar/delete-user-profile.rst b/awscli/examples/codestar/delete-user-profile.rst
deleted file mode 100755
index bd448a77b140..000000000000
--- a/awscli/examples/codestar/delete-user-profile.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-**To delete a user profile**
-
-The following ``delete-user-profile`` example deletes the user profile for the user with the specified ARN. ::
-
- aws codestar delete-user-profile \
- --user-arn arn:aws:iam::123456789012:user/intern
-
-Output::
-
- {
- "userArn": "arn:aws:iam::123456789012:user/intern"
- }
diff --git a/awscli/examples/codestar/describe-project.rst b/awscli/examples/codestar/describe-project.rst
deleted file mode 100755
index c2f4f5b3158c..000000000000
--- a/awscli/examples/codestar/describe-project.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-**To view a project**
-
-The following ``describe-project`` example retrieves details about the specified project. ::
-
- aws codestar describe-project \
- --id my-project
-
-Output::
-
- {
- "name": "my project",
- "id": "my-project",
- "arn": "arn:aws:codestar:us-west-2:123456789012:project/my-project",
- "description": "My first CodeStar project.",
- "createdTimeStamp": 1572547510.128,
- "status": {
- "state": "CreateComplete"
- }
- }
diff --git a/awscli/examples/codestar/describe-user-profile.rst b/awscli/examples/codestar/describe-user-profile.rst
deleted file mode 100755
index aa39e075f273..000000000000
--- a/awscli/examples/codestar/describe-user-profile.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To view a user profile**
-
-The following ``describe-user-profile`` example retrieves details about the user profile for the user with the specified ARN. ::
-
- aws codestar describe-user-profile \
- --user-arn arn:aws:iam::123456789012:user/intern
-
-Output::
-
- {
- "userArn": "arn:aws:iam::123456789012:user/intern",
- "displayName": "Intern",
- "emailAddress": "intern@example.com",
- "sshPublicKey": "intern",
- "createdTimestamp": 1572552308.607,
- "lastModifiedTimestamp": 1572553495.47
- }
diff --git a/awscli/examples/codestar/disassociate-team-member.rst b/awscli/examples/codestar/disassociate-team-member.rst
deleted file mode 100755
index 8dc1daf8a169..000000000000
--- a/awscli/examples/codestar/disassociate-team-member.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-**To remove a team member**
-
-The following ``disassociate-team-member`` example removes the user with the specified ARN from the project ``my-project``. ::
-
- aws codestar disassociate-team-member \
- --project-id my-project \
- --user-arn arn:aws:iam::123456789012:user/intern
-
-This command produces no output.
diff --git a/awscli/examples/codestar/list-projects.rst b/awscli/examples/codestar/list-projects.rst
deleted file mode 100755
index f4badf347ca7..000000000000
--- a/awscli/examples/codestar/list-projects.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-**To view projects**
-
-The following ``list-projects`` example retrieves a list of projects in the current Region. ::
-
- aws codestar list-projects
-
-Output::
-
- {
- "projects": [
- {
- "projectId": "intern-projects",
- "projectArn": "arn:aws:codestar:us-west-2:123456789012:project/intern-projects"
- },
- {
- "projectId": "my-project",
- "projectArn": "arn:aws:codestar:us-west-2:123456789012:project/my-project"
- }
- ]
- }
diff --git a/awscli/examples/codestar/list-resources.rst b/awscli/examples/codestar/list-resources.rst
deleted file mode 100755
index c4b710a1b540..000000000000
--- a/awscli/examples/codestar/list-resources.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-**To view resources**
-
-The following ``list-resources`` example retrieves a list of resources for the specified project. ::
-
- aws codestar list-resources \
- --id my-project
-
-Output::
-
- {
- "resources": [
- {
- "id": "arn:aws:execute-api:us-east-2:123456789012:r3wxmplbv8"
- },
- {
- "id": "arn:aws:codedeploy:us-east-2:123456789012:application:awscodestar-my-project-lambda-ServerlessDeploymentApplication-PF0LXMPL1KA0"
- },
- {
- "id": "arn:aws:s3:::aws-codestar-us-east-2-123456789012-my-project-pipe"
- },
- {
- "id": "arn:aws:lambda:us-east-2:123456789012:function:awscodestar-my-project-lambda-GetHelloWorld-16W3LVXMPLNNS"
- },
- {
- "id": "arn:aws:cloudformation:us-east-2:123456789012:stack/awscodestar-my-project-lambda/b4904ea0-fc20-xmpl-bec6-029123b1cc42"
- },
- {
- "id": "arn:aws:cloudformation:us-east-2:123456789012:stack/awscodestar-my-project/1b133f30-fc20-xmpl-a93a-0688c4290cb8"
- },
- {
- "id": "arn:aws:iam::123456789012:role/CodeStarWorker-my-project-ToolChain"
- },
- {
- "id": "arn:aws:iam::123456789012:policy/CodeStar_my-project_PermissionsBoundary"
- },
- {
- "id": "arn:aws:s3:::aws-codestar-us-east-2-123456789012-my-project-app"
- },
- {
- "id": "arn:aws:codepipeline:us-east-2:123456789012:my-project-Pipeline"
- },
- {
- "id": "arn:aws:codedeploy:us-east-2:123456789012:deploymentgroup:my-project/awscodestar-my-project-lambda-GetHelloWorldDeploymentGroup-P7YWXMPLT0QB"
- },
- {
- "id": "arn:aws:iam::123456789012:role/CodeStar-my-project-Execution"
- },
- {
- "id": "arn:aws:iam::123456789012:role/CodeStarWorker-my-project-CodeDeploy"
- },
- {
- "id": "arn:aws:codebuild:us-east-2:123456789012:project/my-project"
- },
- {
- "id": "arn:aws:iam::123456789012:role/CodeStarWorker-my-project-CloudFormation"
- },
- {
- "id": "arn:aws:codecommit:us-east-2:123456789012:Go-project"
- }
- ]
- }
diff --git a/awscli/examples/codestar/list-tags-for-project.rst b/awscli/examples/codestar/list-tags-for-project.rst
deleted file mode 100755
index 0c45d557dd9b..000000000000
--- a/awscli/examples/codestar/list-tags-for-project.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-**To view tags for a project**
-
-The following ``list-tags-for-project`` example retrieves the tags attached to the specified project. ::
-
- aws codestar list-tags-for-project \
- --id my-project
-
-Output::
-
- {
- "tags": {
- "Department": "Marketing",
- "Team": "Website"
- }
- }
diff --git a/awscli/examples/codestar/list-team-members.rst b/awscli/examples/codestar/list-team-members.rst
deleted file mode 100755
index c3163e32e120..000000000000
--- a/awscli/examples/codestar/list-team-members.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-**To view a list of team members**
-
-The following ``list-team-members`` example retrieves a list of users associated with the specified project. ::
-
- aws codestar list-team-members \
- --project-id my-project
-
-Output::
-
- {
- "teamMembers": [
- {
- "userArn": "arn:aws:iam::123456789012:user/admin",
- "projectRole": "Owner",
- "remoteAccessAllowed": false
- },
- {
- "userArn": "arn:aws:iam::123456789012:user/intern",
- "projectRole": "Contributor",
- "remoteAccessAllowed": false
- }
- ]
- }
diff --git a/awscli/examples/codestar/list-user-profiles.rst b/awscli/examples/codestar/list-user-profiles.rst
deleted file mode 100755
index 049895f60623..000000000000
--- a/awscli/examples/codestar/list-user-profiles.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-**To view a list of user profiles**
-
-The following ``list-user-profiles`` example retrieves a list of all user profiles in the current Region. ::
-
- aws codestar list-user-profiles
-
-Output::
-
- {
- "userProfiles": [
- {
- "userArn": "arn:aws:iam::123456789012:user/admin",
- "displayName": "me",
- "emailAddress": "me@example.com",
- "sshPublicKey": ""
- },
- {
- "userArn": "arn:aws:iam::123456789012:user/intern",
- "displayName": "Intern",
- "emailAddress": "intern@example.com",
- "sshPublicKey": "intern"
- }
- ]
- }
diff --git a/awscli/examples/codestar/tag-project.rst b/awscli/examples/codestar/tag-project.rst
deleted file mode 100755
index 80e23a492729..000000000000
--- a/awscli/examples/codestar/tag-project.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-**To attach a tag to a project**
-
-The following ``tag-project`` example adds a tag named ``Department`` and a value of ``Marketing`` to the specified project. ::
-
- aws codestar tag-project \
- --id my-project \
- --tags Department=Marketing
-
-Output::
-
- {
- "tags": {
- "Department": "Marketing"
- }
- }
diff --git a/awscli/examples/codestar/untag-project.rst b/awscli/examples/codestar/untag-project.rst
deleted file mode 100755
index b9778df7d363..000000000000
--- a/awscli/examples/codestar/untag-project.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-**To remove a tag from a project**
-
-The following ``untag-project`` example removes any tag with a key name of ``Team`` from the specifiec project. ::
-
- aws codestar untag-project \
- --id my-project \
- --tags Team
-
-This command produces no output.
diff --git a/awscli/examples/codestar/update-project.rst b/awscli/examples/codestar/update-project.rst
deleted file mode 100755
index 620f6a35fb4c..000000000000
--- a/awscli/examples/codestar/update-project.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-**To update a project**
-
-The following ``update-project`` example adds a description to the specified project. ::
-
- aws codestar update-project \
- --id my-project \
- --description "My first CodeStar project"
-
-This command produces no output.
diff --git a/awscli/examples/codestar/update-team-member.rst b/awscli/examples/codestar/update-team-member.rst
deleted file mode 100755
index eed537e8353d..000000000000
--- a/awscli/examples/codestar/update-team-member.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-**To modify a team member**
-
-The following ``update-team-member`` example makes the specified user a contributor on a project and grants them remote access to project resources. ::
-
- aws codestar update-team-member \
- --project-id my-project \
- --user-arn arn:aws:iam::123456789012:user/intern \
- --project-role Contributor -\
- --remote-access-allowed
-
-Output::
-
- {
- "userArn": "arn:aws:iam::123456789012:user/intern",
- "projectRole": "Contributor",
- "remoteAccessAllowed": true
- }
diff --git a/awscli/examples/codestar/update-user-profile.rst b/awscli/examples/codestar/update-user-profile.rst
deleted file mode 100755
index 5b768390e6ed..000000000000
--- a/awscli/examples/codestar/update-user-profile.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-**To modify a user profile**
-
-The following ``update-user-profile`` example adds the specified SHH key to the specified user. ::
-
- aws codestar update-user-profile \
- --ssh-public-key intern \
- --user-arn arn:aws:iam::123456789012:user/intern
-
-Output::
-
- {
- "userArn": "arn:aws:iam::123456789012:user/intern",
- "displayName": "Intern",
- "emailAddress": "intern@example.com",
- "sshPublicKey": "intern",
- "createdTimestamp": 1572552308.607,
- "lastModifiedTimestamp": 1572553495.47
- }
diff --git a/awscli/examples/cognito-idp/admim-disable-user.rst b/awscli/examples/cognito-idp/admim-disable-user.rst
deleted file mode 100644
index 57e8ec369d44..000000000000
--- a/awscli/examples/cognito-idp/admim-disable-user.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-**To disable a user**
-
-This example disables user jane@example.com.
-
-Command::
-
- aws cognito-idp admin-disable-user --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com
-
diff --git a/awscli/examples/cognito-idp/admim-enable-user.rst b/awscli/examples/cognito-idp/admim-enable-user.rst
deleted file mode 100644
index 79bc468e4b3c..000000000000
--- a/awscli/examples/cognito-idp/admim-enable-user.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-**To enable a user**
-
-This example enables username jane@example.com.
-
-Command::
-
- aws cognito-idp admin-enable-user --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com
-
diff --git a/awscli/examples/cognito-idp/admin-disable-provider-for-user.rst b/awscli/examples/cognito-idp/admin-disable-provider-for-user.rst
new file mode 100644
index 000000000000..2d1209dd74b5
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-disable-provider-for-user.rst
@@ -0,0 +1,9 @@
+**To unlink a federated user from a local user profile**
+
+The following ``admin-disable-provider-for-user`` example disconnects a Google user from their linked local profile. ::
+
+ aws cognito-idp admin-disable-provider-for-user \
+ --user-pool-id us-west-2_EXAMPLE \
+ --user ProviderAttributeName=Cognito_Subject,ProviderAttributeValue=0000000000000000,ProviderName=Google
+
+For more information, see `Linking federated users to an existing user profile `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-disable-user.rst b/awscli/examples/cognito-idp/admin-disable-user.rst
new file mode 100644
index 000000000000..023745bf183a
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-disable-user.rst
@@ -0,0 +1,9 @@
+**To prevent sign-in by a user**
+
+The following ``admin-disable-user`` example prevents sign-in by the user ``diego@example.com``. ::
+
+ aws cognito-idp admin-disable-user \
+ --user-pool-id us-west-2_EXAMPLE \
+ --username diego@example.com
+
+For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-enable-user.rst b/awscli/examples/cognito-idp/admin-enable-user.rst
new file mode 100644
index 000000000000..4a03faf7ebc6
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-enable-user.rst
@@ -0,0 +1,9 @@
+**To enable sign-in by a user**
+
+The following ``admin-enable-user`` example enables sign-in by the user diego@example.com. ::
+
+ aws cognito-idp admin-enable-user \
+ --user-pool-id us-west-2_EXAMPLE \
+ --username diego@example.com
+
+For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-get-device.rst b/awscli/examples/cognito-idp/admin-get-device.rst
index 92fff255ed2c..7ed62712441e 100644
--- a/awscli/examples/cognito-idp/admin-get-device.rst
+++ b/awscli/examples/cognito-idp/admin-get-device.rst
@@ -1,8 +1,51 @@
-**To get a device**
-
-This example gets a device for username jane@example.com
-
-Command::
-
- aws cognito-idp admin-get-device --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com --device-key us-west-2_abcd_1234-5678
-
+**To get a device**
+
+The following ``admin-get-device`` example displays one device for the user ``diego``. ::
+
+ aws cognito-idp admin-get-device \
+ --user-pool-id us-west-2_EXAMPLE \
+ --username diego \
+ --device-key us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
+
+Output::
+
+ {
+ "Device": {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceAttributes": [
+ {
+ "Name": "device_status",
+ "Value": "valid"
+ },
+ {
+ "Name": "device_name",
+ "Value": "MyDevice"
+ },
+ {
+ "Name": "dev:device_arn",
+ "Value": "arn:aws:cognito-idp:us-west-2:123456789012:owner/diego.us-west-2_EXAMPLE/device/us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
+ },
+ {
+ "Name": "dev:device_owner",
+ "Value": "diego.us-west-2_EXAMPLE"
+ },
+ {
+ "Name": "last_ip_used",
+ "Value": "192.0.2.1"
+ },
+ {
+ "Name": "dev:device_remembered_status",
+ "Value": "remembered"
+ },
+ {
+ "Name": "dev:device_sdk",
+ "Value": "aws-sdk"
+ }
+ ],
+ "DeviceCreateDate": 1715100742.022,
+ "DeviceLastModifiedDate": 1723233651.167,
+ "DeviceLastAuthenticatedDate": 1715100742.0
+ }
+ }
+
+For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-initiate-auth.rst b/awscli/examples/cognito-idp/admin-initiate-auth.rst
index bdb01054c454..2e54deec5104 100644
--- a/awscli/examples/cognito-idp/admin-initiate-auth.rst
+++ b/awscli/examples/cognito-idp/admin-initiate-auth.rst
@@ -1,25 +1,24 @@
-**To initiate authorization**
-
-This example initiates authorization using the ADMIN_NO_SRP_AUTH flow for username jane@example.com
-
-The client must have sign-in API for server-based authentication (ADMIN_NO_SRP_AUTH) enabled.
-
-Use the session information in the return value to call `admin-respond-to-auth-challenge`_.
-
-Command::
-
- aws cognito-idp admin-initiate-auth --user-pool-id us-west-2_aaaaaaaaa --client-id 3n4b5urk1ft4fl3mg5e62d9ado --auth-flow ADMIN_NO_SRP_AUTH --auth-parameters USERNAME=jane@example.com,PASSWORD=password
-
-Output::
-
- {
- "ChallengeName": "NEW_PASSWORD_REQUIRED",
- "Session": "SESSION",
- "ChallengeParameters": {
- "USER_ID_FOR_SRP": "84514837-dcbc-4af1-abff-f3c109334894",
- "requiredAttributes": "[]",
- "userAttributes": "{\"email_verified\":\"true\",\"phone_number_verified\":\"true\",\"phone_number\":\"+01xxx5550100\",\"email\":\"jane@example.com\"}"
- }
- }
-
-.. _`admin-respond-to-auth-challenge`: https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-respond-to-auth-challenge.html
\ No newline at end of file
+**To sign in a user as an admin**
+
+The following ``admin-initiate-auth`` example signs in the user diego@example.com. This example also includes metadata for threat protection and ClientMetadata for Lambda triggers. The user is configured for TOTP MFA and receives a challenge to provide a code from their authenticator app before they can complete authentication. ::
+
+ aws cognito-idp admin-initiate-auth \
+ --user-pool-id us-west-2_EXAMPLE \
+ --client-id 1example23456789 \
+ --auth-flow ADMIN_USER_PASSWORD_AUTH \
+ --auth-parameters USERNAME=diego@example.com,PASSWORD="My@Example$Password3!",SECRET_HASH=ExampleEncodedClientIdSecretAndUsername= \
+ --context-data="{\"EncodedData\":\"abc123example\",\"HttpHeaders\":[{\"headerName\":\"UserAgent\",\"headerValue\":\"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0\"}],\"IpAddress\":\"192.0.2.1\",\"ServerName\":\"example.com\",\"ServerPath\":\"/login\"}" \
+ --client-metadata="{\"MyExampleKey\": \"MyExampleValue\"}"
+
+Output::
+
+ {
+ "ChallengeName": "SOFTWARE_TOKEN_MFA",
+ "Session": "AYABeExample...",
+ "ChallengeParameters": {
+ "FRIENDLY_DEVICE_NAME": "MyAuthenticatorApp",
+ "USER_ID_FOR_SRP": "diego@example.com"
+ }
+ }
+
+For more information, see `Admin authentication flow `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-link-provider-for-user.rst b/awscli/examples/cognito-idp/admin-link-provider-for-user.rst
new file mode 100644
index 000000000000..4316adb214fd
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-link-provider-for-user.rst
@@ -0,0 +1,10 @@
+**To link a local user to a federated user**
+
+The following ``admin-link-provider-for-user`` example links the local user diego to a user who will do federated sign-in with Google. ::
+
+ aws cognito-idp admin-link-provider-for-user \
+ --user-pool-id us-west-2_EXAMPLE \
+ --destination-user ProviderName=Cognito,ProviderAttributeValue=diego \
+ --source-user ProviderAttributeName=Cognito_Subject,ProviderAttributeValue=0000000000000000,ProviderName=Google
+
+For more information, see `Linking federated users to an existing user profile `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-list-devices.rst b/awscli/examples/cognito-idp/admin-list-devices.rst
index 2b710876d04a..6f150de3ebd6 100644
--- a/awscli/examples/cognito-idp/admin-list-devices.rst
+++ b/awscli/examples/cognito-idp/admin-list-devices.rst
@@ -1,7 +1,53 @@
-**To list devices for a user**
-
-This example lists devices for username jane@example.com.
-
-Command::
-
- aws cognito-idp admin-list-devices --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com
+**To list devices for a user**
+
+The following ``admin-list-devices`` example lists devices for the user diego. ::
+
+ aws cognito-idp admin-list-devices \
+ --user-pool-id us-west-2_EXAMPLE \
+ --username diego \
+ --limit 1
+
+Output::
+
+ {
+ "Devices": [
+ {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceAttributes": [
+ {
+ "Name": "device_status",
+ "Value": "valid"
+ },
+ {
+ "Name": "device_name",
+ "Value": "MyDevice"
+ },
+ {
+ "Name": "dev:device_arn",
+ "Value": "arn:aws:cognito-idp:us-west-2:123456789012:owner/diego.us-west-2_EXAMPLE/device/us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
+ },
+ {
+ "Name": "dev:device_owner",
+ "Value": "diego.us-west-2_EXAMPLE"
+ },
+ {
+ "Name": "last_ip_used",
+ "Value": "192.0.2.1"
+ },
+ {
+ "Name": "dev:device_remembered_status",
+ "Value": "remembered"
+ },
+ {
+ "Name": "dev:device_sdk",
+ "Value": "aws-sdk"
+ }
+ ],
+ "DeviceCreateDate": 1715100742.022,
+ "DeviceLastModifiedDate": 1723233651.167,
+ "DeviceLastAuthenticatedDate": 1715100742.0
+ }
+ ]
+ }
+
+For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-list-user-auth-events.rst b/awscli/examples/cognito-idp/admin-list-user-auth-events.rst
index eeff1edbe52d..066e32060180 100644
--- a/awscli/examples/cognito-idp/admin-list-user-auth-events.rst
+++ b/awscli/examples/cognito-idp/admin-list-user-auth-events.rst
@@ -1,8 +1,40 @@
-**To list authorization events for a user**
-
-This example lists authorization events for username diego@example.com.
-
-Command::
-
- aws cognito-idp admin-list-user-auth-events --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com
-
+**To list authorization events for a user**
+
+The following ``admin-list-user-auth-events`` example lists the most recent user activity log event for the user diego. ::
+
+ aws cognito-idp admin-list-user-auth-events \
+ --user-pool-id us-west-2_ywDJHlIfU \
+ --username brcotter+050123 \
+ --max-results 1
+
+Output::
+
+ {
+ "AuthEvents": [
+ {
+ "EventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
+ "EventType": "SignIn",
+ "CreationDate": 1726694203.495,
+ "EventResponse": "InProgress",
+ "EventRisk": {
+ "RiskDecision": "AccountTakeover",
+ "RiskLevel": "Medium",
+ "CompromisedCredentialsDetected": false
+ },
+ "ChallengeResponses": [
+ {
+ "ChallengeName": "Password",
+ "ChallengeResponse": "Success"
+ }
+ ],
+ "EventContextData": {
+ "IpAddress": "192.0.2.1",
+ "City": "Seattle",
+ "Country": "United States"
+ }
+ }
+ ],
+ "NextToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222#2024-09-18T21:16:43.495Z"
+ }
+
+For more information, see `Viewing and exporting user event history `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst b/awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst
new file mode 100644
index 000000000000..6ae67f4208e4
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst
@@ -0,0 +1,29 @@
+**To respond to an authentication challenge**
+
+There are many ways to respond to different authentication challenges, depending on your authentication flow, user pool configuration, and user settings. The following ``admin-respond-to-auth-challenge`` example provides a TOTP MFA code for diego@example.com and completes sign-in. This user pool has device remembering turned on, so the authentication result also returns a new device key. ::
+
+ aws cognito-idp admin-respond-to-auth-challenge \
+ --user-pool-id us-west-2_EXAMPLE \
+ --client-id 1example23456789 \
+ --challenge-name SOFTWARE_TOKEN_MFA \
+ --challenge-responses USERNAME=diego@example.com,SOFTWARE_TOKEN_MFA_CODE=000000 \
+ --session AYABeExample...
+
+Output::
+
+ {
+ "ChallengeParameters": {},
+ "AuthenticationResult": {
+ "AccessToken": "eyJra456defEXAMPLE",
+ "ExpiresIn": 3600,
+ "TokenType": "Bearer",
+ "RefreshToken": "eyJra123abcEXAMPLE",
+ "IdToken": "eyJra789ghiEXAMPLE",
+ "NewDeviceMetadata": {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceGroupKey": "-ExAmPlE1"
+ }
+ }
+ }
+
+For more information, see `Admin authentication flow `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-set-user-password.rst b/awscli/examples/cognito-idp/admin-set-user-password.rst
new file mode 100644
index 000000000000..88bdabf591d7
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-set-user-password.rst
@@ -0,0 +1,13 @@
+**To set a user password as an admin**
+
+The following ``admin-set-user-password`` example permanently sets the password for diego@example.com. ::
+
+ aws cognito-idp admin-set-user-password \
+ --user-pool-id us-west-2_EXAMPLE \
+ --username diego@example.com \
+ --password MyExamplePassword1! \
+ --permanent
+
+This command produces no output.
+
+For more information, see `Passwords, password recovery, and password policies `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/admin-user-global-sign-out.rst b/awscli/examples/cognito-idp/admin-user-global-sign-out.rst
new file mode 100644
index 000000000000..dc6365e40d40
--- /dev/null
+++ b/awscli/examples/cognito-idp/admin-user-global-sign-out.rst
@@ -0,0 +1,9 @@
+**To sign out a user as an admin**
+
+The following ``admin-user-global-sign-out`` example signs out the user diego@example.com. ::
+
+ aws cognito-idp admin-user-global-sign-out \
+ --user-pool-id us-west-2_EXAMPLE \
+ --username diego@example.com
+
+For more information, see `Authentication with a user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/associate-software-token.rst b/awscli/examples/cognito-idp/associate-software-token.rst
new file mode 100644
index 000000000000..9a72f3db15ac
--- /dev/null
+++ b/awscli/examples/cognito-idp/associate-software-token.rst
@@ -0,0 +1,14 @@
+**To generate a secret key for an MFA authenticator app**
+
+The following ``associate-software-token`` example generates a TOTP private key for a user who has signed in and received an access token. The resulting private key can be manually entered into an authenticator app, or applications can render it as a QR code that the user can scan. ::
+
+ aws cognito-idp associate-software-token \
+ --access-token eyJra456defEXAMPLE
+
+Output::
+
+ {
+ "SecretCode": "QWERTYUIOP123456EXAMPLE"
+ }
+
+For more information, see `TOTP software token MFA `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/confirm-device.rst b/awscli/examples/cognito-idp/confirm-device.rst
new file mode 100644
index 000000000000..6b391fb6d690
--- /dev/null
+++ b/awscli/examples/cognito-idp/confirm-device.rst
@@ -0,0 +1,16 @@
+**To confirm a user device**
+
+The following ``confirm-device`` example adds a new remembered device for the current user. ::
+
+ aws cognito-idp confirm-device \
+ --access-token eyJra456defEXAMPLE \
+ --device-key us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
+ --device-secret-verifier-config PasswordVerifier=TXlWZXJpZmllclN0cmluZw,Salt=TXlTUlBTYWx0
+
+Output::
+
+ {
+ "UserConfirmationNecessary": false
+ }
+
+For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/create-identity-provider.rst b/awscli/examples/cognito-idp/create-identity-provider.rst
new file mode 100644
index 000000000000..fd66f4b2d9c7
--- /dev/null
+++ b/awscli/examples/cognito-idp/create-identity-provider.rst
@@ -0,0 +1,102 @@
+**Example 1: To create a user pool SAML identity provider (IdP) with a metadata URL**
+
+The following ``create-identity-provider`` example creates a new SAML IdP with metadata from a public URL, attribute mapping, and two identifiers. ::
+
+ aws cognito-idp create-identity-provider \
+ --user-pool-id us-west-2_EXAMPLE \
+ --provider-name MySAML \
+ --provider-type SAML \
+ --provider-details IDPInit=true,IDPSignout=true,EncryptedResponses=true,MetadataURL=https://auth.example.com/sso/saml/metadata,RequestSigningAlgorithm=rsa-sha256 \
+ --attribute-mapping email=emailaddress,phone_number=phone,custom:111=department \
+ --idp-identifiers CorpSAML WestSAML
+
+Output::
+
+ {
+ "IdentityProvider": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "ProviderName": "MySAML",
+ "ProviderType": "SAML",
+ "ProviderDetails": {
+ "ActiveEncryptionCertificate": "MIICvTCCAaEXAMPLE",
+ "EncryptedResponses": "true",
+ "IDPInit": "true",
+ "IDPSignout": "true",
+ "MetadataURL": "https://auth.example.com/sso/saml/metadata",
+ "RequestSigningAlgorithm": "rsa-sha256",
+ "SLORedirectBindingURI": "https://auth.example.com/slo/saml",
+ "SSORedirectBindingURI": "https://auth.example.com/sso/saml"
+ },
+ "AttributeMapping": {
+ "custom:111": "department",
+ "emailaddress": "email",
+ "phone": "phone_number"
+ },
+ "IdpIdentifiers": [
+ "CorpSAML",
+ "WestSAML"
+ ],
+ "LastModifiedDate": 1726853833.977,
+ "CreationDate": 1726853833.977
+ }
+ }
+
+For more information, see `Adding user pool sign-in through a third party `__ in the *Amazon Cognito Developer Guide*.
+
+**Example 2: To create a user pool SAML identity provider (IdP) with a metadata file**
+
+The following ``create-identity-provider`` example creates a new SAML IdP with metadata from a file, attribute mapping, and two identifiers. File syntax can differ between operating systems in the ``--provider-details`` parameter. It's easiest to create a JSON input file for this operation.::
+
+ aws cognito-idp create-identity-provider \
+ --cli-input-json file://.\SAML-identity-provider.json
+
+Contents of ``SAML-identity-provider.json``::
+
+ {
+ "AttributeMapping": {
+ "email" : "idp_email",
+ "email_verified" : "idp_email_verified"
+ },
+ "IdpIdentifiers": [ "platform" ],
+ "ProviderDetails": {
+ "MetadataFile": "[IDP_CERTIFICATE_DATA] urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress ",
+ "IDPSignout" : "true",
+ "RequestSigningAlgorithm" : "rsa-sha256",
+ "EncryptedResponses" : "true",
+ "IDPInit" : "true"
+ },
+ "ProviderName": "MySAML2",
+ "ProviderType": "SAML",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+
+Output::
+
+ {
+ "IdentityProvider": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "ProviderName": "MySAML2",
+ "ProviderType": "SAML",
+ "ProviderDetails": {
+ "ActiveEncryptionCertificate": "[USER_POOL_ENCRYPTION_CERTIFICATE_DATA]",
+ "EncryptedResponses": "true",
+ "IDPInit": "true",
+ "IDPSignout": "true",
+ "MetadataFile": "[IDP_CERTIFICATE_DATA] urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress ",
+ "RequestSigningAlgorithm": "rsa-sha256",
+ "SLORedirectBindingURI": "https://www.example.com/slo/saml",
+ "SSORedirectBindingURI": "https://www.example.com/sso/saml"
+ },
+ "AttributeMapping": {
+ "email": "idp_email",
+ "email_verified": "idp_email_verified"
+ },
+ "IdpIdentifiers": [
+ "platform"
+ ],
+ "LastModifiedDate": 1726855290.731,
+ "CreationDate": 1726855290.731
+ }
+ }
+
+For more information, see `Adding user pool sign-in through a third party `__ in the *Amazon Cognito Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cognito-idp/create-resource-server.rst b/awscli/examples/cognito-idp/create-resource-server.rst
new file mode 100644
index 000000000000..3b00722f1702
--- /dev/null
+++ b/awscli/examples/cognito-idp/create-resource-server.rst
@@ -0,0 +1,31 @@
+**To create a user pool client**
+
+The following ``create-resource-server`` example creates a new resource server with custom scopes. ::
+
+ aws cognito-idp create-resource-server \
+ --user-pool-id us-west-2_EXAMPLE \
+ --identifier solar-system-data \
+ --name "Solar system object tracker" \
+ --scopes ScopeName=sunproximity.read,ScopeDescription="Distance in AU from Sol" ScopeName=asteroids.add,ScopeDescription="Enter a new asteroid"
+
+Output::
+
+ {
+ "ResourceServer": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "Identifier": "solar-system-data",
+ "Name": "Solar system object tracker",
+ "Scopes": [
+ {
+ "ScopeName": "sunproximity.read",
+ "ScopeDescription": "Distance in AU from Sol"
+ },
+ {
+ "ScopeName": "asteroids.add",
+ "ScopeDescription": "Enter a new asteroid"
+ }
+ ]
+ }
+ }
+
+For more information, see `Scopes, M2M, and APIs with resource servers `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/create-user-pool-client.rst b/awscli/examples/cognito-idp/create-user-pool-client.rst
index 3d9129ae8b12..b02c0071dd6d 100644
--- a/awscli/examples/cognito-idp/create-user-pool-client.rst
+++ b/awscli/examples/cognito-idp/create-user-pool-client.rst
@@ -1,26 +1,94 @@
**To create a user pool client**
-This example creates a new user pool client with two explicit authorization flows: USER_PASSWORD_AUTH and ADMIN_NO_SRP_AUTH.
+The following ``create-user-pool-client`` example creates a new user pool client with a client secret, explicit read and write attributes, sign in with username-password and SRP flows, sign-in with three IdPs, access to a subset of OAuth scopes, PinPoint analytics, and an extended authentication session validity. ::
-Command::
+ aws cognito-idp create-user-pool-client \
+ --user-pool-id us-west-2_EXAMPLE \
+ --client-name MyTestClient \
+ --generate-secret \
+ --refresh-token-validity 10 \
+ --access-token-validity 60 \
+ --id-token-validity 60 \
+ --token-validity-units AccessToken=minutes,IdToken=minutes,RefreshToken=days \
+ --read-attributes email phone_number email_verified phone_number_verified \
+ --write-attributes email phone_number \
+ --explicit-auth-flows ALLOW_USER_PASSWORD_AUTH ALLOW_USER_SRP_AUTH ALLOW_REFRESH_TOKEN_AUTH \
+ --supported-identity-providers Google Facebook MyOIDC \
+ --callback-urls https://www.amazon.com https://example.com http://localhost:8001 myapp://example \
+ --allowed-o-auth-flows code implicit \
+ --allowed-o-auth-scopes openid profile aws.cognito.signin.user.admin solar-system-data/asteroids.add \
+ --allowed-o-auth-flows-user-pool-client \
+ --analytics-configuration ApplicationArn=arn:aws:mobiletargeting:us-west-2:767671399759:apps/thisisanexamplepinpointapplicationid,UserDataShared=TRUE \
+ --prevent-user-existence-errors ENABLED \
+ --enable-token-revocation \
+ --enable-propagate-additional-user-context-data \
+ --auth-session-validity 4
- aws cognito-idp create-user-pool-client --user-pool-id us-west-2_aaaaaaaaa --client-name MyNewClient --no-generate-secret --explicit-auth-flows "USER_PASSWORD_AUTH" "ADMIN_NO_SRP_AUTH"
-
Output::
- {
- "UserPoolClient": {
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "ClientName": "MyNewClient",
- "ClientId": "6p3bs000no6a4ue1idruvd05ad",
- "LastModifiedDate": 1548697449.497,
- "CreationDate": 1548697449.497,
- "RefreshTokenValidity": 30,
- "ExplicitAuthFlows": [
- "USER_PASSWORD_AUTH",
- "ADMIN_NO_SRP_AUTH"
- ],
- "AllowedOAuthFlowsUserPoolClient": false
+ {
+ "UserPoolClient": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "ClientName": "MyTestClient",
+ "ClientId": "123abc456defEXAMPLE",
+ "ClientSecret": "this1234is5678my91011example1213client1415secret",
+ "LastModifiedDate": 1726788459.464,
+ "CreationDate": 1726788459.464,
+ "RefreshTokenValidity": 10,
+ "AccessTokenValidity": 60,
+ "IdTokenValidity": 60,
+ "TokenValidityUnits": {
+ "AccessToken": "minutes",
+ "IdToken": "minutes",
+ "RefreshToken": "days"
+ },
+ "ReadAttributes": [
+ "email_verified",
+ "phone_number_verified",
+ "phone_number",
+ "email"
+ ],
+ "WriteAttributes": [
+ "phone_number",
+ "email"
+ ],
+ "ExplicitAuthFlows": [
+ "ALLOW_USER_PASSWORD_AUTH",
+ "ALLOW_USER_SRP_AUTH",
+ "ALLOW_REFRESH_TOKEN_AUTH"
+ ],
+ "SupportedIdentityProviders": [
+ "Google",
+ "MyOIDC",
+ "Facebook"
+ ],
+ "CallbackURLs": [
+ "https://example.com",
+ "https://www.amazon.com",
+ "myapp://example",
+ "http://localhost:8001"
+ ],
+ "AllowedOAuthFlows": [
+ "implicit",
+ "code"
+ ],
+ "AllowedOAuthScopes": [
+ "aws.cognito.signin.user.admin",
+ "openid",
+ "profile",
+ "solar-system-data/asteroids.add"
+ ],
+ "AllowedOAuthFlowsUserPoolClient": true,
+ "AnalyticsConfiguration": {
+ "ApplicationArn": "arn:aws:mobiletargeting:us-west-2:123456789012:apps/thisisanexamplepinpointapplicationid",
+ "RoleArn": "arn:aws:iam::123456789012:role/aws-service-role/cognito-idp.amazonaws.com/AWSServiceRoleForAmazonCognitoIdp",
+ "UserDataShared": true
+ },
+ "PreventUserExistenceErrors": "ENABLED",
+ "EnableTokenRevocation": true,
+ "EnablePropagateAdditionalUserContextData": true,
+ "AuthSessionValidity": 4
+ }
}
- }
+For more information, see `Application-specific settings with app clients `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/create-user-pool-domain.rst b/awscli/examples/cognito-idp/create-user-pool-domain.rst
index 77e6185cc12f..9fb60e6cb1f6 100644
--- a/awscli/examples/cognito-idp/create-user-pool-domain.rst
+++ b/awscli/examples/cognito-idp/create-user-pool-domain.rst
@@ -1,8 +1,26 @@
-**To create a user pool domain**
+**Example 1: To create a user pool domain**
-This example creates a new user pool domain. with two explicit authorization flows: USER_PASSWORD_AUTH and ADMIN_NO_SRP_AUTH.
+The following ``create-user-pool-domain`` example creates a new custom domain. ::
-Command::
+ aws cognito-idp create-user-pool-domain \
+ --user-pool-id us-west-2_EXAMPLE \
+ --domain auth.example.com \
+ --custom-domain-config CertificateArn=arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222
- aws cognito-idp create-user-pool-domain --user-pool-id us-west-2_aaaaaaaaa --domain my-new-domain
-
+Output::
+
+ {
+ "CloudFrontDomain": "example1domain.cloudfront.net"
+ }
+
+For more information, see `Configuring a user pool domain `__ in the *Amazon Cognito Developer Guide*.
+
+**Example 2: To create a user pool domain**
+
+The following ``create-user-pool-domain`` example creates a new domain with a service-owned prefix. ::
+
+ aws cognito-idp create-user-pool-domain \
+ --user-pool-id us-west-2_EXAMPLE2 \
+ --domain mydomainprefix
+
+For more information, see `Configuring a user pool domain `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/delete-user-attributes.rst b/awscli/examples/cognito-idp/delete-user-attributes.rst
index 3856abc42271..16e730946a08 100644
--- a/awscli/examples/cognito-idp/delete-user-attributes.rst
+++ b/awscli/examples/cognito-idp/delete-user-attributes.rst
@@ -1,8 +1,11 @@
-**To delete user attributes**
+**To delete a user attribute**
-This example deletes the user attribute "FAVORITE_ANIMAL".
+The following ``delete-user-attributes`` example deletes the custom attribute "custom:attribute" from the currently signed-in user. ::
-Command::
+ aws cognito-idp delete-user-attributes \
+ --access-token ACCESS_TOKEN \
+ --user-attribute-names "custom:department"
- aws cognito-idp delete-user-attributes --access-token ACCESS_TOKEN --user-attribute-names "FAVORITE_ANIMAL"
-
+This command produces no output.
+
+For more information, see `Working with user attributes `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/describe-user-pool.rst b/awscli/examples/cognito-idp/describe-user-pool.rst
index 130a301f038d..3e3fba376e04 100644
--- a/awscli/examples/cognito-idp/describe-user-pool.rst
+++ b/awscli/examples/cognito-idp/describe-user-pool.rst
@@ -1,267 +1,376 @@
**To describe a user pool**
-This example describes a user pool with the user pool id us-west-2_aaaaaaaaa.
+The following example describes a user pool with the user pool id us-west-2_EXAMPLE. ::
-Command::
-
- aws cognito-idp describe-user-pool --user-pool-id us-west-2_aaaaaaaaa
+ aws cognito-idp describe-user-pool \
+ --user-pool-id us-west-2_EXAMPLE
Output::
- {
- "UserPool": {
- "SmsVerificationMessage": "Your verification code is {####}. ",
- "SchemaAttributes": [
- {
- "Name": "sub",
- "StringAttributeConstraints": {
- "MinLength": "1",
- "MaxLength": "2048"
- },
- "DeveloperOnlyAttribute": false,
- "Required": true,
- "AttributeDataType": "String",
- "Mutable": false
+ {
+ "UserPool": {
+ "Id": "us-west-2_EXAMPLE",
+ "Name": "MyUserPool",
+ "Policies": {
+ "PasswordPolicy": {
+ "MinimumLength": 8,
+ "RequireUppercase": true,
+ "RequireLowercase": true,
+ "RequireNumbers": true,
+ "RequireSymbols": true,
+ "TemporaryPasswordValidityDays": 1
+ }
},
- {
- "Name": "name",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ "DeletionProtection": "ACTIVE",
+ "LambdaConfig": {
+ "PreSignUp": "arn:aws:lambda:us-west-2:123456789012:function:MyPreSignUpFunction",
+ "CustomMessage": "arn:aws:lambda:us-west-2:123456789012:function:MyCustomMessageFunction",
+ "PostConfirmation": "arn:aws:lambda:us-west-2:123456789012:function:MyPostConfirmationFunction",
+ "PreAuthentication": "arn:aws:lambda:us-west-2:123456789012:function:MyPreAuthenticationFunction",
+ "PostAuthentication": "arn:aws:lambda:us-west-2:123456789012:function:MyPostAuthenticationFunction",
+ "DefineAuthChallenge": "arn:aws:lambda:us-west-2:123456789012:function:MyDefineAuthChallengeFunction",
+ "CreateAuthChallenge": "arn:aws:lambda:us-west-2:123456789012:function:MyCreateAuthChallengeFunction",
+ "VerifyAuthChallengeResponse": "arn:aws:lambda:us-west-2:123456789012:function:MyVerifyAuthChallengeFunction",
+ "PreTokenGeneration": "arn:aws:lambda:us-west-2:123456789012:function:MyPreTokenGenerationFunction",
+ "UserMigration": "arn:aws:lambda:us-west-2:123456789012:function:MyMigrateUserFunction",
+ "PreTokenGenerationConfig": {
+ "LambdaVersion": "V2_0",
+ "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyPreTokenGenerationFunction"
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "given_name",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ "CustomSMSSender": {
+ "LambdaVersion": "V1_0",
+ "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyCustomSMSSenderFunction"
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "family_name",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ "CustomEmailSender": {
+ "LambdaVersion": "V1_0",
+ "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyCustomEmailSenderFunction"
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
+ "KMSKeyID": "arn:aws:kms:us-west-2:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
},
- {
- "Name": "middle_name",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ "LastModifiedDate": 1726784814.598,
+ "CreationDate": 1602103465.273,
+ "SchemaAttributes": [
+ {
+ "Name": "sub",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": false,
+ "Required": true,
+ "StringAttributeConstraints": {
+ "MinLength": "1",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "nickname",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "name",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "preferred_username",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "given_name",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "profile",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "family_name",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "picture",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "middle_name",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "website",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "nickname",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "email",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "preferred_username",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": true,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "AttributeDataType": "Boolean",
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "Name": "email_verified",
- "Mutable": true
- },
- {
- "Name": "gender",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "profile",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "birthdate",
- "StringAttributeConstraints": {
- "MinLength": "10",
- "MaxLength": "10"
+ {
+ "Name": "picture",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "zoneinfo",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "website",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "locale",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "email",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": true,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
- },
- {
- "Name": "phone_number",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
+ {
+ "Name": "email_verified",
+ "AttributeDataType": "Boolean",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false
+ },
+ {
+ "Name": "gender",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
+ },
+ {
+ "Name": "birthdate",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "10",
+ "MaxLength": "10"
+ }
},
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
+ {
+ "Name": "zoneinfo",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
+ },
+ {
+ "Name": "locale",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
+ },
+ {
+ "Name": "phone_number",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
+ },
+ {
+ "Name": "phone_number_verified",
+ "AttributeDataType": "Boolean",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false
+ },
+ {
+ "Name": "address",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "0",
+ "MaxLength": "2048"
+ }
+ },
+ {
+ "Name": "updated_at",
+ "AttributeDataType": "Number",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "NumberAttributeConstraints": {
+ "MinValue": "0"
+ }
+ },
+ {
+ "Name": "identities",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {}
+ },
+ {
+ "Name": "custom:111",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "1",
+ "MaxLength": "256"
+ }
+ },
+ {
+ "Name": "dev:custom:222",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": true,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MinLength": "1",
+ "MaxLength": "421"
+ }
+ },
+ {
+ "Name": "custom:accesstoken",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MaxLength": "2048"
+ }
+ },
+ {
+ "Name": "custom:idtoken",
+ "AttributeDataType": "String",
+ "DeveloperOnlyAttribute": false,
+ "Mutable": true,
+ "Required": false,
+ "StringAttributeConstraints": {
+ "MaxLength": "2048"
+ }
+ }
+ ],
+ "AutoVerifiedAttributes": [
+ "email"
+ ],
+ "SmsVerificationMessage": "Your verification code is {####}. ",
+ "EmailVerificationMessage": "Your verification code is {####}. ",
+ "EmailVerificationSubject": "Your verification code",
+ "VerificationMessageTemplate": {
+ "SmsMessage": "Your verification code is {####}. ",
+ "EmailMessage": "Your verification code is {####}. ",
+ "EmailSubject": "Your verification code",
+ "EmailMessageByLink": "Please click the link below to verify your email address. {##Verify Your Email##}\n this is from us-west-2_ywDJHlIfU",
+ "EmailSubjectByLink": "Your verification link",
+ "DefaultEmailOption": "CONFIRM_WITH_LINK"
},
- {
- "AttributeDataType": "Boolean",
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "Name": "phone_number_verified",
- "Mutable": true
+ "SmsAuthenticationMessage": "Your verification code is {####}. ",
+ "UserAttributeUpdateSettings": {
+ "AttributesRequireVerificationBeforeUpdate": []
},
- {
- "Name": "address",
- "StringAttributeConstraints": {
- "MinLength": "0",
- "MaxLength": "2048"
- },
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "String",
- "Mutable": true
+ "MfaConfiguration": "OPTIONAL",
+ "DeviceConfiguration": {
+ "ChallengeRequiredOnNewDevice": true,
+ "DeviceOnlyRememberedOnUserPrompt": false
},
- {
- "Name": "updated_at",
- "NumberAttributeConstraints": {
- "MinValue": "0"
- },
- "DeveloperOnlyAttribute": false,
- "Required": false,
- "AttributeDataType": "Number",
- "Mutable": true
- }
- ],
- "EmailVerificationSubject": "Your verification code",
- "MfaConfiguration": "OFF",
- "Name": "MyUserPool",
- "EmailVerificationMessage": "Your verification code is {####}. ",
- "SmsAuthenticationMessage": "Your authentication code is {####}. ",
- "LastModifiedDate": 1547763720.822,
- "AdminCreateUserConfig": {
- "InviteMessageTemplate": {
- "EmailMessage": "Your username is {username} and temporary password is {####}. ",
- "EmailSubject": "Your temporary password",
- "SMSMessage": "Your username is {username} and temporary password is {####}. "
+ "EstimatedNumberOfUsers": 166,
+ "EmailConfiguration": {
+ "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com",
+ "EmailSendingAccount": "DEVELOPER"
},
- "UnusedAccountValidityDays": 7,
- "AllowAdminCreateUserOnly": false
- },
- "EmailConfiguration": {
- "ReplyToEmailAddress": "myemail@mydomain.com"
- "SourceArn": "arn:aws:ses:us-east-1:000000000000:identity/myemail@mydomain.com"
- },
- "AutoVerifiedAttributes": [
- "email"
- ],
- "Policies": {
- "PasswordPolicy": {
- "RequireLowercase": true,
- "RequireSymbols": true,
- "RequireNumbers": true,
- "MinimumLength": 8,
- "RequireUppercase": true
+ "SmsConfiguration": {
+ "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/userpool-SMS-Role",
+ "ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "SnsRegion": "us-west-2"
+ },
+ "UserPoolTags": {},
+ "Domain": "myCustomDomain",
+ "CustomDomain": "auth.example.com",
+ "AdminCreateUserConfig": {
+ "AllowAdminCreateUserOnly": false,
+ "UnusedAccountValidityDays": 1,
+ "InviteMessageTemplate": {
+ "SMSMessage": "Your username is {username} and temporary password is {####}. ",
+ "EmailMessage": "Your username is {username} and temporary password is {####}. ",
+ "EmailSubject": "Your temporary password"
+ }
+ },
+ "UserPoolAddOns": {
+ "AdvancedSecurityMode": "ENFORCED",
+ "AdvancedSecurityAdditionalFlows": {}
+ },
+ "Arn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_EXAMPLE",
+ "AccountRecoverySetting": {
+ "RecoveryMechanisms": [
+ {
+ "Priority": 1,
+ "Name": "verified_email"
+ }
+ ]
}
- },
- "UserPoolTags": {},
- "UsernameAttributes": [
- "email"
- ],
- "CreationDate": 1547763720.822,
- "EstimatedNumberOfUsers": 1,
- "Id": "us-west-2_aaaaaaaaa",
- "LambdaConfig": {}
+ }
}
- }
\ No newline at end of file
+
+For more information, see `Amazon Cognito user pools `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-device.rst b/awscli/examples/cognito-idp/get-device.rst
new file mode 100644
index 000000000000..d3839ee1b1a1
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-device.rst
@@ -0,0 +1,50 @@
+**To get a device**
+
+The following ``get-device`` example displays one device for currently signed-in user. ::
+
+ aws cognito-idp get-device \
+ --access-token eyJra456defEXAMPLE \
+ --device-key us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
+
+Output::
+
+ {
+ "Device": {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceAttributes": [
+ {
+ "Name": "device_status",
+ "Value": "valid"
+ },
+ {
+ "Name": "device_name",
+ "Value": "MyDevice"
+ },
+ {
+ "Name": "dev:device_arn",
+ "Value": "arn:aws:cognito-idp:us-west-2:123456789012:owner/diego.us-west-2_EXAMPLE/device/us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
+ },
+ {
+ "Name": "dev:device_owner",
+ "Value": "diego.us-west-2_EXAMPLE"
+ },
+ {
+ "Name": "last_ip_used",
+ "Value": "192.0.2.1"
+ },
+ {
+ "Name": "dev:device_remembered_status",
+ "Value": "remembered"
+ },
+ {
+ "Name": "dev:device_sdk",
+ "Value": "aws-sdk"
+ }
+ ],
+ "DeviceCreateDate": 1715100742.022,
+ "DeviceLastModifiedDate": 1723233651.167,
+ "DeviceLastAuthenticatedDate": 1715100742.0
+ }
+ }
+
+For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-group.rst b/awscli/examples/cognito-idp/get-group.rst
index 61a87756385c..dd6c4b0e16fb 100644
--- a/awscli/examples/cognito-idp/get-group.rst
+++ b/awscli/examples/cognito-idp/get-group.rst
@@ -1,19 +1,22 @@
**To get information about a group**
-This example gets information about a group named MyGroup.
+The following ``get-group`` example lists the properties of the user group named ``MyGroup``. This group has a precedence and an IAM role associated with it. ::
-Command::
-
- aws cognito-idp get-group --user-pool-id us-west-2_aaaaaaaaa --group-name MyGroup
+ aws cognito-idp get-group \
+ --user-pool-id us-west-2_EXAMPLE \
+ --group-name MyGroup
Output::
- {
- "Group": {
- "GroupName": "MyGroup",
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "Description": "A sample group.",
- "LastModifiedDate": 1548270073.795,
- "CreationDate": 1548270073.795
+ {
+ "Group": {
+ "GroupName": "MyGroup",
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "RoleArn": "arn:aws:iam::123456789012:role/example-cognito-role",
+ "Precedence": 7,
+ "LastModifiedDate": 1697211218.305,
+ "CreationDate": 1611685503.954
+ }
}
- }
\ No newline at end of file
+
+For more information, see `Adding groups to a user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst b/awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst
new file mode 100644
index 000000000000..a11f92b85bd1
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst
@@ -0,0 +1,35 @@
+**To get the configuration of an identity provider from the IdP identifier**
+
+The following ``get-identity-provider-by-identifier`` example returns the configuration of the identity provider with the identifier ``mysso``. ::
+
+ aws cognito-idp get-identity-provider-by-identifier \
+ --user-pool-id us-west-2_EXAMPLE \
+ --idp-identifier mysso
+
+Output::
+
+ {
+ "IdentityProvider": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "ProviderName": "MYSAML",
+ "ProviderType": "SAML",
+ "ProviderDetails": {
+ "ActiveEncryptionCertificate": "[Certificate contents]",
+ "IDPSignout": "false",
+ "MetadataURL": "https://auth.example.com/saml/metadata/",
+ "SLORedirectBindingURI": "https://auth.example.com/saml/logout/",
+ "SSORedirectBindingURI": "https://auth.example.com/saml/assertion/"
+ },
+ "AttributeMapping": {
+ "email": "email"
+ },
+ "IdpIdentifiers": [
+ "mysso",
+ "mysamlsso"
+ ],
+ "LastModifiedDate": 1705616729.188,
+ "CreationDate": 1643734622.919
+ }
+ }
+
+For more information, see `Third-party IdP sign-in `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-log-delivery-configuration.rst b/awscli/examples/cognito-idp/get-log-delivery-configuration.rst
new file mode 100644
index 000000000000..d44153105e2d
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-log-delivery-configuration.rst
@@ -0,0 +1,32 @@
+**To display the log delivery configuration**
+
+The following ``get-log-delivery-configuration`` example displays the log export settings of the requested user pool. ::
+
+ aws cognito-idp get-log-delivery-configuration \
+ --user-pool-id us-west-2_EXAMPLE
+
+Output::
+
+ {
+ "LogDeliveryConfiguration": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "LogConfigurations": [
+ {
+ "LogLevel": "INFO",
+ "EventSource": "userAuthEvents",
+ "FirehoseConfiguration": {
+ "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/my-test-deliverystream"
+ }
+ },
+ {
+ "LogLevel": "ERROR",
+ "EventSource": "userNotification",
+ "CloudWatchLogsConfiguration": {
+ "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:my-message-delivery-logs"
+ }
+ }
+ ]
+ }
+ }
+
+For more information, see `Exporting user pool logs `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-signing-certificate.rst b/awscli/examples/cognito-idp/get-signing-certificate.rst
index f7c26f1bfe6b..7099f8e656e5 100644
--- a/awscli/examples/cognito-idp/get-signing-certificate.rst
+++ b/awscli/examples/cognito-idp/get-signing-certificate.rst
@@ -1,13 +1,14 @@
-**To get a signing certificate**
-
-This example gets a signing certificate for a user pool.
-
-Command::
-
- aws cognito-idp get-signing-certificate --user-pool-id us-west-2_aaaaaaaaa
-
-Output::
-
- {
- "Certificate": "CERTIFICATE_DATA"
- }
\ No newline at end of file
+**To display the SAML signing certificate**
+
+The following ``get-signing-certificate`` example displays the SAML 2.0 signing certificate for the request user pool. ::
+
+ aws cognito-idp get-signing-certificate \
+ --user-pool-id us-west-2_EXAMPLE
+
+Output::
+
+ {
+ "Certificate": "[Certificate content]"
+ }
+
+For more information, see `SAML signing and encryption `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-ui-customization.rst b/awscli/examples/cognito-idp/get-ui-customization.rst
index 8943912c245f..e7a9675320bb 100644
--- a/awscli/examples/cognito-idp/get-ui-customization.rst
+++ b/awscli/examples/cognito-idp/get-ui-customization.rst
@@ -1,19 +1,22 @@
-**To get UI customization information**
-
-This example gets UI customization information for a user pool.
-
-Command::
-
- aws cognito-idp get-ui-customization --user-pool-id us-west-2_aaaaaaaaa
-
-Output::
-
- {
- "UICustomization": {
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "ClientId": "ALL",
- "ImageUrl": "https://aaaaaaaaaaaaa.cloudfront.net/us-west-2_aaaaaaaaa/ALL/20190128231240/assets/images/image.jpg",
- "CSS": ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 10px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 300;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 14px;\n\tfont-weight: bold;\n\tmargin: 20px 0px 10px 0px;\n\theight: 40px;\n\twidth: 100%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\theight: 40px;\n\ttext-align: left;\n\twidth: 100%;\n\tmargin-bottom: 15px;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #faf;\n}\n",
- "CSSVersion": "20190128231240"
- }
- }
\ No newline at end of file
+**To display the classic hosted UI customization settings for an app client**
+
+The following ``get-ui-customization`` example displays the classic hosted UI customization settings for an app client that doesn't inherit settings from the user pool. ::
+
+ aws cognito-idp get-ui-customization \
+ --user-pool-id us-west-2_EXAMPLE \
+ --client-id 1example23456789
+
+
+Output::
+
+ {
+ "UICustomization": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "ClientId": "1example23456789",
+ "ImageUrl": "https://example.cloudfront.net/us-west-2_EXAMPLE/1example23456789/20250115191928/assets/images/image.jpg",
+ "CSS": "\n.logo-customizable {\n max-width: 80%;\n max-height: 30%;\n}\n\n.banner-customizable {\n padding: 25px 0px 25px 0px;\n background-color: lightgray;\n}\n\n.label-customizable {\n font-weight: 400;\n}\n\n.textDescription-customizable {\n padding-top: 100px;\n padding-bottom: 10px;\n display: block;\n font-size: 12px;\n}\n\n.idpDescription-customizable {\n padding-top: 10px;\n padding-bottom: 10px;\n display: block;\n font-size: 16px;\n}\n\n.legalText-customizable {\n color: #747474;\n font-size: 11px;\n}\n\n.submitButton-customizable {\n font-size: 14px;\n font-weight: bold;\n margin: 20px 0px 10px 0px;\n height: 50px;\n width: 100%;\n color: #fff;\n background-color: #337ab7;\n}\n\n.submitButton-customizable:hover {\n color: #fff;\n background-color: #286090;\n}\n\n.errorMessage-customizable {\n padding: 5px;\n font-size: 12px;\n width: 100%;\n background: #F5F5F5;\n border: 2px solid #D64958;\n color: #D64958;\n}\n\n.inputField-customizable {\n width: 100%;\n height: 34px;\n color: #555;\n background-color: #fff;\n border: 1px solid #ccc;\n}\n\n.inputField-customizable:focus {\n border-color: #66afe9;\n outline: 0;\n}\n\n.idpButton-customizable {\n height: 40px;\n width: 100%;\n width: 100%;\n text-align: center;\n margin-bottom: 15px;\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n\n.idpButton-customizable:hover {\n color: #fff;\n background-color: #31b0d5;\n}\n\n.socialButton-customizable {\n border-radius: 2px;\n height: 60px;\n margin-bottom: 15px;\n padding: 1px;\n text-align: left;\n width: 100%;\n}\n\n.redirect-customizable {\n text-align: center;\n}\n\n.passwordCheck-notValid-customizable {\n color: #DF3312;\n}\n\n.passwordCheck-valid-customizable {\n color: #19BF00;\n}\n\n.background-customizable {\n background-color: #fff;\n}\n",
+ "CSSVersion": "20250115191928"
+ }
+ }
+
+For more information, see `Hosted UI (classic) branding `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-user-attribute-verification-code.rst b/awscli/examples/cognito-idp/get-user-attribute-verification-code.rst
new file mode 100644
index 000000000000..bb249c49f56c
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-user-attribute-verification-code.rst
@@ -0,0 +1,19 @@
+**To send an attribute verification code to the current user**
+
+The following ``get-user-attribute-verification-code`` example sends an attribute verification code to the currently signed-in user's email address. ::
+
+ aws cognito-idp get-user-attribute-verification-code \
+ --access-token eyJra456defEXAMPLE \
+ --attribute-name email
+
+Output::
+
+ {
+ "CodeDeliveryDetails": {
+ "Destination": "a***@e***",
+ "DeliveryMedium": "EMAIL",
+ "AttributeName": "email"
+ }
+ }
+
+For more information, see `Signing up and confirming user accounts `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-user-auth-factors.rst b/awscli/examples/cognito-idp/get-user-auth-factors.rst
new file mode 100644
index 000000000000..736cf1df1b39
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-user-auth-factors.rst
@@ -0,0 +1,20 @@
+**To list the authentication factors available to the current user**
+
+The following ``get-user-auth-factors`` example lists the available authentication factors for the currently signed-in user. ::
+
+ aws cognito-idp get-user-auth-factors \
+ --access-token eyJra456defEXAMPLE
+
+Output::
+
+ {
+ "Username": "testuser",
+ "ConfiguredUserAuthFactors": [
+ "PASSWORD",
+ "EMAIL_OTP",
+ "SMS_OTP",
+ "WEB_AUTHN"
+ ]
+ }
+
+For more information, see `Authentication `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-user-pool-mfa-config.rst b/awscli/examples/cognito-idp/get-user-pool-mfa-config.rst
new file mode 100644
index 000000000000..02cf42a33036
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-user-pool-mfa-config.rst
@@ -0,0 +1,33 @@
+**To display the multi-factor authentication and WebAuthn settings of a user pool**
+
+The following ``get-user-pool-mfa-config`` example displays the MFA and WebAuthn configuration of the requested user pool. ::
+
+ aws cognito-idp get-user-pool-mfa-config \
+ --user-pool-id us-west-2_EXAMPLE
+
+Output::
+
+ {
+ "SmsMfaConfiguration": {
+ "SmsAuthenticationMessage": "Your OTP for MFA or sign-in: use {####}.",
+ "SmsConfiguration": {
+ "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/my-SMS-Role",
+ "ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "SnsRegion": "us-west-2"
+ }
+ },
+ "SoftwareTokenMfaConfiguration": {
+ "Enabled": true
+ },
+ "EmailMfaConfiguration": {
+ "Message": "Your OTP for MFA or sign-in: use {####}",
+ "Subject": "OTP test"
+ },
+ "MfaConfiguration": "OPTIONAL",
+ "WebAuthnConfiguration": {
+ "RelyingPartyId": "auth.example.com",
+ "UserVerification": "preferred"
+ }
+ }
+
+For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/get-user.rst b/awscli/examples/cognito-idp/get-user.rst
new file mode 100644
index 000000000000..8f15c934f387
--- /dev/null
+++ b/awscli/examples/cognito-idp/get-user.rst
@@ -0,0 +1,56 @@
+**To get the details of the current user**
+
+The following ``get-user`` example displays the profile of the currently signed-in user. ::
+
+ aws cognito-idp get-user \
+ --access-token eyJra456defEXAMPLE
+
+Output::
+
+ {
+ "Username": "johndoe",
+ "UserAttributes": [
+ {
+ "Name": "sub",
+ "Value": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
+ },
+ {
+ "Name": "identities",
+ "Value": "[{\"userId\":\"a1b2c3d4-5678-90ab-cdef-EXAMPLE22222\",\"providerName\":\"SignInWithApple\",\"providerType\":\"SignInWithApple\",\"issuer\":null,\"primary\":false,\"dateCreated\":1701125599632}]"
+ },
+ {
+ "Name": "email_verified",
+ "Value": "true"
+ },
+ {
+ "Name": "custom:state",
+ "Value": "Maine"
+ },
+ {
+ "Name": "name",
+ "Value": "John Doe"
+ },
+ {
+ "Name": "phone_number_verified",
+ "Value": "true"
+ },
+ {
+ "Name": "phone_number",
+ "Value": "+12065551212"
+ },
+ {
+ "Name": "preferred_username",
+ "Value": "jamesdoe"
+ },
+ {
+ "Name": "locale",
+ "Value": "EMEA"
+ },
+ {
+ "Name": "email",
+ "Value": "jamesdoe@example.com"
+ }
+ ]
+ }
+
+For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/global-sign-out.rst b/awscli/examples/cognito-idp/global-sign-out.rst
new file mode 100644
index 000000000000..45bfef6539d7
--- /dev/null
+++ b/awscli/examples/cognito-idp/global-sign-out.rst
@@ -0,0 +1,10 @@
+**To sign out the current user**
+
+The following ``global-sign-out`` example signs out the current user. ::
+
+ aws cognito-idp global-sign-out \
+ --access-token eyJra456defEXAMPLE
+
+This command produces no output.
+
+For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/initiate-auth.rst b/awscli/examples/cognito-idp/initiate-auth.rst
new file mode 100644
index 000000000000..95fa3eb2911b
--- /dev/null
+++ b/awscli/examples/cognito-idp/initiate-auth.rst
@@ -0,0 +1,27 @@
+**To sign in a user**
+
+The following ``initiate-auth`` example signs in a user with the basic username-password flow and no additional challenges. ::
+
+ aws cognito-idp initiate-auth \
+ --auth-flow USER_PASSWORD_AUTH \
+ --client-id 1example23456789 \
+ --analytics-metadata AnalyticsEndpointId=d70b2ba36a8c4dc5a04a0451aEXAMPLE \
+ --auth-parameters USERNAME=testuser,PASSWORD=[Password] --user-context-data EncodedData=mycontextdata --client-metadata MyTestKey=MyTestValue
+
+Output::
+
+ {
+ "AuthenticationResult": {
+ "AccessToken": "eyJra456defEXAMPLE",
+ "ExpiresIn": 3600,
+ "TokenType": "Bearer",
+ "RefreshToken": "eyJra123abcEXAMPLE",
+ "IdToken": "eyJra789ghiEXAMPLE",
+ "NewDeviceMetadata": {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceGroupKey": "-v7w9UcY6"
+ }
+ }
+ }
+
+For more information, see `Authentication `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-devices.rst b/awscli/examples/cognito-idp/list-devices.rst
new file mode 100644
index 000000000000..caca5364e72a
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-devices.rst
@@ -0,0 +1,51 @@
+**To list a user's devices**
+
+The following ``list-devices`` example lists the devices that the current user has registered. ::
+
+ aws cognito-idp list-devices \
+ --access-token eyJra456defEXAMPLE
+
+Output::
+
+ {
+ "Devices": [
+ {
+ "DeviceAttributes": [
+ {
+ "Name": "device_status",
+ "Value": "valid"
+ },
+ {
+ "Name": "device_name",
+ "Value": "Dart-device"
+ },
+ {
+ "Name": "last_ip_used",
+ "Value": "192.0.2.1"
+ }
+ ],
+ "DeviceCreateDate": 1715100742.022,
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceLastAuthenticatedDate": 1715100742.0,
+ "DeviceLastModifiedDate": 1723233651.167
+ },
+ {
+ "DeviceAttributes": [
+ {
+ "Name": "device_status",
+ "Value": "valid"
+ },
+ {
+ "Name": "last_ip_used",
+ "Value": "192.0.2.2"
+ }
+ ],
+ "DeviceCreateDate": 1726856147.993,
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
+ "DeviceLastAuthenticatedDate": 1726856147.0,
+ "DeviceLastModifiedDate": 1726856147.993
+ }
+ ]
+ }
+
+For more information, see `Working with devices `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-groups.rst b/awscli/examples/cognito-idp/list-groups.rst
new file mode 100644
index 000000000000..649d31e01e25
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-groups.rst
@@ -0,0 +1,32 @@
+**To list the groups in a user pool**
+
+The following ``list-groups`` example lists the first two groups in the requested user pool. ::
+
+ aws cognito-idp list-groups \
+ --user-pool-id us-west-2_EXAMPLE \
+ --max-items 2
+
+Output::
+
+ {
+ "Groups": [
+ {
+ "CreationDate": 1681760899.633,
+ "Description": "My test group",
+ "GroupName": "testgroup",
+ "LastModifiedDate": 1681760899.633,
+ "Precedence": 1,
+ "UserPoolId": "us-west-2_EXAMPLE"
+ },
+ {
+ "CreationDate": 1642632749.051,
+ "Description": "Autogenerated group for users who sign in using Facebook",
+ "GroupName": "us-west-2_EXAMPLE_Facebook",
+ "LastModifiedDate": 1642632749.051,
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ ],
+ "NextToken": "[Pagination token]"
+ }
+
+For more information, see `Adding groups to a user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-identity-providers.rst b/awscli/examples/cognito-idp/list-identity-providers.rst
new file mode 100644
index 000000000000..cb6d477389c3
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-identity-providers.rst
@@ -0,0 +1,29 @@
+**To list identity providers**
+
+The following ``list-identity-providers`` example lists the first two identity providers in the requested user pool. ::
+
+ aws cognito-idp list-identity-providers \
+ --user-pool-id us-west-2_EXAMPLE \
+ --max-items 2
+
+Output::
+
+ {
+ "Providers": [
+ {
+ "CreationDate": 1619477386.504,
+ "LastModifiedDate": 1703798328.142,
+ "ProviderName": "Azure",
+ "ProviderType": "SAML"
+ },
+ {
+ "CreationDate": 1642698776.175,
+ "LastModifiedDate": 1642699086.453,
+ "ProviderName": "LoginWithAmazon",
+ "ProviderType": "LoginWithAmazon"
+ }
+ ],
+ "NextToken": "[Pagination token]"
+ }
+
+For more information, see `Third-party IdP sign-in `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-resource-servers.rst b/awscli/examples/cognito-idp/list-resource-servers.rst
new file mode 100644
index 000000000000..cd102d50d51e
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-resource-servers.rst
@@ -0,0 +1,43 @@
+**To list resource servers**
+
+The following ``list-resource-servers`` example lists the first two resource servers in the requested user pool. ::
+
+ aws cognito-idp list-resource-servers \
+ --user-pool-id us-west-2_EXAMPLE \
+ --max-results 2
+
+Output::
+
+ {
+ "ResourceServers": [
+ {
+ "Identifier": "myapi.example.com",
+ "Name": "Example API with custom access control scopes",
+ "Scopes": [
+ {
+ "ScopeDescription": "International customers",
+ "ScopeName": "international.read"
+ },
+ {
+ "ScopeDescription": "Domestic customers",
+ "ScopeName": "domestic.read"
+ }
+ ],
+ "UserPoolId": "us-west-2_EXAMPLE"
+ },
+ {
+ "Identifier": "myapi2.example.com",
+ "Name": "Another example API for access control",
+ "Scopes": [
+ {
+ "ScopeDescription": "B2B customers",
+ "ScopeName": "b2b.read"
+ }
+ ],
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ ],
+ "NextToken": "[Pagination token]"
+ }
+
+For more information, see `Access control with resource servers `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-tags-for-resource.rst b/awscli/examples/cognito-idp/list-tags-for-resource.rst
new file mode 100644
index 000000000000..81f03862e025
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-tags-for-resource.rst
@@ -0,0 +1,17 @@
+**To list user pool tags**
+
+The following ``list-tags-for-resource`` example lists the tags assigned to the user pool with the requested ARN. ::
+
+ aws cognito-idp list-tags-for-resource \
+ --resource-arn arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_EXAMPLE
+
+Output::
+
+ {
+ "Tags": {
+ "administrator": "Jie",
+ "tenant": "ExampleCorp"
+ }
+ }
+
+For more information, see `Tagging Amazon Cognito resources `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-user-import-jobs.rst b/awscli/examples/cognito-idp/list-user-import-jobs.rst
index e279cd016cb1..309631bfb4ca 100644
--- a/awscli/examples/cognito-idp/list-user-import-jobs.rst
+++ b/awscli/examples/cognito-idp/list-user-import-jobs.rst
@@ -1,57 +1,61 @@
-**To list user import jobs**
-
-This example lists user import jobs.
-
-For more information about importing users, see `Importing Users into User Pools From a CSV File`_.
-
-Command::
-
- aws cognito-idp list-user-import-jobs --user-pool-id us-west-2_aaaaaaaaa --max-results 20
-
-Output::
-
- {
- "UserImportJobs": [
- {
- "JobName": "Test2",
- "JobId": "import-d0OnwGA3mV",
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "PreSignedUrl": "PRE_SIGNED_URL",
- "CreationDate": 1548272793.069,
- "Status": "Created",
- "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole",
- "ImportedUsers": 0,
- "SkippedUsers": 0,
- "FailedUsers": 0
- },
- {
- "JobName": "Test1",
- "JobId": "import-qQ0DCt2fRh",
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "PreSignedUrl": "PRE_SIGNED_URL",
- "CreationDate": 1548271795.471,
- "Status": "Created",
- "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole",
- "ImportedUsers": 0,
- "SkippedUsers": 0,
- "FailedUsers": 0
- },
- {
- "JobName": "import-Test1",
- "JobId": "import-TZqNQvDRnW",
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "PreSignedUrl": "PRE_SIGNED_URL",
- "CreationDate": 1548271708.512,
- "StartDate": 1548277247.962,
- "CompletionDate": 1548277248.912,
- "Status": "Failed",
- "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole",
- "ImportedUsers": 0,
- "SkippedUsers": 0,
- "FailedUsers": 1,
- "CompletionMessage": "Too many users have failed or been skipped during the import."
- }
- ]
- }
-
-.. _`Importing Users into User Pools From a CSV File`: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html
\ No newline at end of file
+**To list user import jobs and statuses**
+
+The following ``list-user-import-jobs`` example lists first three user import jobs and their details in the requested user pool. ::
+
+ aws cognito-idp list-user-import-jobs \
+ --user-pool-id us-west-2_EXAMPLE \
+ --max-results 3
+
+Output::
+
+ {
+ "PaginationToken": "us-west-2_EXAMPLE#import-example3#1667948397084",
+ "UserImportJobs": [
+ {
+ "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/service-role/Cognito-UserImport-Role",
+ "CompletionDate": 1735329786.142,
+ "CompletionMessage": "The user import job has expired.",
+ "CreationDate": 1735241621.022,
+ "FailedUsers": 0,
+ "ImportedUsers": 0,
+ "JobId": "import-example1",
+ "JobName": "Test-import-job-1",
+ "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]",
+ "SkippedUsers": 0,
+ "Status": "Expired",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ },
+ {
+ "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/service-role/Cognito-UserImport-Role",
+ "CompletionDate": 1681509058.408,
+ "CompletionMessage": "Too many users have failed or been skipped during the import.",
+ "CreationDate": 1681509001.477,
+ "FailedUsers": 1,
+ "ImportedUsers": 0,
+ "JobId": "import-example2",
+ "JobName": "Test-import-job-2",
+ "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]",
+ "SkippedUsers": 0,
+ "StartDate": 1681509057.965,
+ "Status": "Failed",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ },
+ {
+ "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/service-role/Cognito-UserImport-Role",
+ "CompletionDate": 1.667864578676E9,
+ "CompletionMessage": "Import Job Completed Successfully.",
+ "CreationDate": 1.667864480281E9,
+ "FailedUsers": 0,
+ "ImportedUsers": 6,
+ "JobId": "import-example3",
+ "JobName": "Test-import-job-3",
+ "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]",
+ "SkippedUsers": 0,
+ "StartDate": 1.667864578167E9,
+ "Status": "Succeeded",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ ]
+ }
+
+For more information, see `Importing users from a CSV file `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-user-pool-clients.rst b/awscli/examples/cognito-idp/list-user-pool-clients.rst
new file mode 100644
index 000000000000..f2f99077716d
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-user-pool-clients.rst
@@ -0,0 +1,32 @@
+**To list app clients**
+
+The following ``list-user-pool-clients`` example lists the first three app clients in the requested user pool. ::
+
+ aws cognito-idp list-user-pool-clients \
+ --user-pool-id us-west-2_EXAMPLE \
+ --max-results 3
+
+Output::
+
+ {
+ "NextToken": "[Pagination token]",
+ "UserPoolClients": [
+ {
+ "ClientId": "1example23456789",
+ "ClientName": "app-client-1",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ },
+ {
+ "ClientId": "2example34567890",
+ "ClientName": "app-client-2",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ },
+ {
+ "ClientId": "3example45678901",
+ "ClientName": "app-client-3",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ ]
+ }
+
+For more information, see `App clients `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-user-pools.rst b/awscli/examples/cognito-idp/list-user-pools.rst
index 302487ef61fa..2b906a0909dd 100644
--- a/awscli/examples/cognito-idp/list-user-pools.rst
+++ b/awscli/examples/cognito-idp/list-user-pools.rst
@@ -1,22 +1,48 @@
-**To list user pools**
-
-This example lists up to 20 user pools.
-
-Command::
-
- aws cognito-idp list-user-pools --max-results 20
-
-Output::
-
- {
- "UserPools": [
- {
- "CreationDate": 1547763720.822,
- "LastModifiedDate": 1547763720.822,
- "LambdaConfig": {},
- "Id": "us-west-2_aaaaaaaaa",
- "Name": "MyUserPool"
- }
- ]
- }
-
+**To list user pools**
+
+The following ``list-user-pools`` example lists 3 of the available user pools in the AWS account of the current CLI credentials. ::
+
+ aws cognito-idp list-user-pools \
+ --max-results 3
+
+Output::
+
+ {
+ "NextToken": "[Pagination token]",
+ "UserPools": [
+ {
+ "CreationDate": 1681502497.741,
+ "Id": "us-west-2_EXAMPLE1",
+ "LambdaConfig": {
+ "CustomMessage": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction",
+ "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction",
+ "PreTokenGeneration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction",
+ "PreTokenGenerationConfig": {
+ "LambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction",
+ "LambdaVersion": "V1_0"
+ }
+ },
+ "LastModifiedDate": 1681502497.741,
+ "Name": "user pool 1"
+ },
+ {
+ "CreationDate": 1686064178.717,
+ "Id": "us-west-2_EXAMPLE2",
+ "LambdaConfig": {
+ },
+ "LastModifiedDate": 1686064178.873,
+ "Name": "user pool 2"
+ },
+ {
+ "CreationDate": 1627681712.237,
+ "Id": "us-west-2_EXAMPLE3",
+ "LambdaConfig": {
+ "UserMigration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction"
+ },
+ "LastModifiedDate": 1678486942.479,
+ "Name": "user pool 3"
+ }
+ ]
+ }
+
+For more information, see `Amazon Cognito user pools `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-users.rst b/awscli/examples/cognito-idp/list-users.rst
index 6245e17cf36f..2de4e336d790 100644
--- a/awscli/examples/cognito-idp/list-users.rst
+++ b/awscli/examples/cognito-idp/list-users.rst
@@ -1,35 +1,98 @@
-**To list users**
-
-This example lists up to 20 users.
-
-Command::
-
- aws cognito-idp list-users --user-pool-id us-west-2_aaaaaaaaa --limit 20
-
-Output::
-
- {
- "Users": [
- {
- "Username": "22704aa3-fc10-479a-97eb-2af5806bd327",
- "Enabled": true,
- "UserStatus": "FORCE_CHANGE_PASSWORD",
- "UserCreateDate": 1548089817.683,
- "UserLastModifiedDate": 1548089817.683,
- "Attributes": [
- {
- "Name": "sub",
- "Value": "22704aa3-fc10-479a-97eb-2af5806bd327"
- },
- {
- "Name": "email_verified",
- "Value": "true"
- },
- {
- "Name": "email",
- "Value": "mary@example.com"
- }
- ]
- }
- ]
- }
+**Example 1: To list users with a server-side filter**
+
+The following ``list-users`` example lists 3 users in the requested user pool whose email addresses begin with ``testuser``. ::
+
+ aws cognito-idp list-users \
+ --user-pool-id us-west-2_EXAMPLE \
+ --filter email^=\"testuser\" \
+ --max-items 3
+
+Output::
+
+ {
+ "PaginationToken": "efgh5678EXAMPLE",
+ "Users": [
+ {
+ "Attributes": [
+ {
+ "Name": "sub",
+ "Value": "eaad0219-2117-439f-8d46-4db20e59268f"
+ },
+ {
+ "Name": "email",
+ "Value": "testuser@example.com"
+ }
+ ],
+ "Enabled": true,
+ "UserCreateDate": 1682955829.578,
+ "UserLastModifiedDate": 1689030181.63,
+ "UserStatus": "CONFIRMED",
+ "Username": "testuser"
+ },
+ {
+ "Attributes": [
+ {
+ "Name": "sub",
+ "Value": "3b994cfd-0b07-4581-be46-3c82f9a70c90"
+ },
+ {
+ "Name": "email",
+ "Value": "testuser2@example.com"
+ }
+ ],
+ "Enabled": true,
+ "UserCreateDate": 1684427979.201,
+ "UserLastModifiedDate": 1684427979.201,
+ "UserStatus": "UNCONFIRMED",
+ "Username": "testuser2"
+ },
+ {
+ "Attributes": [
+ {
+ "Name": "sub",
+ "Value": "5929e0d1-4c34-42d1-9b79-a5ecacfe66f7"
+ },
+ {
+ "Name": "email",
+ "Value": "testuser3@example.com"
+ }
+ ],
+ "Enabled": true,
+ "UserCreateDate": 1684427823.641,
+ "UserLastModifiedDate": 1684427823.641,
+ "UserStatus": "UNCONFIRMED",
+ "Username": "testuser3@example.com"
+ }
+ ]
+ }
+
+For more information, see `Managing and searching for users `__ in the *Amazon Cognito Developer Guide*.
+
+**Example 2: To list users with a client-side filter**
+
+The following ``list-users`` example lists the attributes of three users who have an attribute, in this case their email address, that contains the email domain "@example.com". If other attributes contained this string, they would also be displayed. The second user has no attributes that match the query and is excluded from the displayed output, but not from the server response. ::
+
+ aws cognito-idp list-users \
+ --user-pool-id us-west-2_EXAMPLE \
+ --max-items 3
+ --query Users\[\*\].Attributes\[\?Value\.contains\(\@\,\'@example.com\'\)\]
+
+Output::
+
+ [
+ [
+ {
+ "Name": "email",
+ "Value": "admin@example.com"
+ }
+ ],
+ [],
+ [
+ {
+ "Name": "email",
+ "Value": "operator@example.com"
+ }
+ ]
+ ]
+
+For more information, see `Managing and searching for users `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/list-web-authn-credentials.rst b/awscli/examples/cognito-idp/list-web-authn-credentials.rst
new file mode 100644
index 000000000000..a5fe69d29858
--- /dev/null
+++ b/awscli/examples/cognito-idp/list-web-authn-credentials.rst
@@ -0,0 +1,22 @@
+**To list passkey credentials**
+
+The following ``list-web-authn-credentials`` example lists passkey, or WebAuthn, credentials for the current user. They have one registered device. ::
+
+ aws cognito-idp list-web-authn-credentials \
+ --access-token eyJra456defEXAMPLE
+
+Output::
+
+ {
+ "Credentials": [
+ {
+ "AuthenticatorAttachment": "cross-platform",
+ "CreatedAt": 1736293876.115,
+ "CredentialId": "8LApgk4-lNUFHbhm2w6Und7-uxcc8coJGsPxiogvHoItc64xWQc3r4CEXAMPLE",
+ "FriendlyCredentialName": "Roaming passkey",
+ "RelyingPartyId": "auth.example.com"
+ }
+ ]
+ }
+
+For more information, see `Passkey sign-in `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/respond-to-auth-challenge.rst b/awscli/examples/cognito-idp/respond-to-auth-challenge.rst
index 282d97eb3809..f627f5cd5c5c 100644
--- a/awscli/examples/cognito-idp/respond-to-auth-challenge.rst
+++ b/awscli/examples/cognito-idp/respond-to-auth-challenge.rst
@@ -1,27 +1,78 @@
-**To respond to an authorization challenge**
-
-This example responds to an authorization challenge initiated with `initiate-auth`_. It is a response to the NEW_PASSWORD_REQUIRED challenge.
-It sets a password for user jane@example.com.
-
-Command::
-
- aws cognito-idp respond-to-auth-challenge --client-id 3n4b5urk1ft4fl3mg5e62d9ado --challenge-name NEW_PASSWORD_REQUIRED --challenge-responses USERNAME=jane@example.com,NEW_PASSWORD="password" --session "SESSION_TOKEN"
-
-Output::
-
- {
- "ChallengeParameters": {},
- "AuthenticationResult": {
- "AccessToken": "ACCESS_TOKEN",
- "ExpiresIn": 3600,
- "TokenType": "Bearer",
- "RefreshToken": "REFRESH_TOKEN",
- "IdToken": "ID_TOKEN",
- "NewDeviceMetadata": {
- "DeviceKey": "us-west-2_fec070d2-fa88-424a-8ec8-b26d7198eb23",
- "DeviceGroupKey": "-wt2ha1Zd"
- }
- }
- }
-
-.. _`initiate-auth`: https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/initiate-auth.html
\ No newline at end of file
+**Example 1: To respond to a NEW_PASSWORD_REQUIRED challenge**
+
+The following ``respond-to-auth-challenge`` example responds to a NEW_PASSWORD_REQUIRED challenge that `initiate-auth`_ returned. It sets a password for the user ``jane@example.com``. ::
+
+ aws cognito-idp respond-to-auth-challenge \
+ --client-id 1example23456789 \
+ --challenge-name NEW_PASSWORD_REQUIRED \
+ --challenge-responses USERNAME=jane@example.com,NEW_PASSWORD=[Password] \
+ --session AYABeEv5HklEXAMPLE
+
+Output::
+
+ {
+ "ChallengeParameters": {},
+ "AuthenticationResult": {
+ "AccessToken": "ACCESS_TOKEN",
+ "ExpiresIn": 3600,
+ "TokenType": "Bearer",
+ "RefreshToken": "REFRESH_TOKEN",
+ "IdToken": "ID_TOKEN",
+ "NewDeviceMetadata": {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceGroupKey": "-wt2ha1Zd"
+ }
+ }
+ }
+
+For more information, see `Authentication `__ in the *Amazon Cognito Developer Guide*.
+
+**Example 2: To respond to a SELECT_MFA_TYPE challenge**
+
+The following ``respond-to-auth-challenge`` example chooses TOTP MFA as the MFA option for the current user. The user was prompted to select an MFA type and will next be prompted to enter their MFA code. ::
+
+ aws cognito-idp respond-to-auth-challenge \
+ --client-id 1example23456789
+ --session AYABeEv5HklEXAMPLE
+ --challenge-name SELECT_MFA_TYPE
+ --challenge-responses USERNAME=testuser,ANSWER=SOFTWARE_TOKEN_MFA
+
+Output::
+
+ {
+ "ChallengeName": "SOFTWARE_TOKEN_MFA",
+ "Session": "AYABeEv5HklEXAMPLE",
+ "ChallengeParameters": {
+ "FRIENDLY_DEVICE_NAME": "transparent"
+ }
+ }
+
+For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*.
+
+**Example 3: To respond to a SOFTWARE_TOKEN_MFA challenge**
+
+The following ``respond-to-auth-challenge`` example provides a TOTP MFA code and completes sign-in. ::
+
+ aws cognito-idp respond-to-auth-challenge \
+ --client-id 1example23456789 \
+ --session AYABeEv5HklEXAMPLE \
+ --challenge-name SOFTWARE_TOKEN_MFA \
+ --challenge-responses USERNAME=testuser,SOFTWARE_TOKEN_MFA_CODE=123456
+
+Output::
+
+ {
+ "AuthenticationResult": {
+ "AccessToken": "eyJra456defEXAMPLE",
+ "ExpiresIn": 3600,
+ "TokenType": "Bearer",
+ "RefreshToken": "eyJra123abcEXAMPLE",
+ "IdToken": "eyJra789ghiEXAMPLE",
+ "NewDeviceMetadata": {
+ "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "DeviceGroupKey": "-v7w9UcY6"
+ }
+ }
+ }
+
+For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/revoke-token.rst b/awscli/examples/cognito-idp/revoke-token.rst
new file mode 100644
index 000000000000..3725bf81df6b
--- /dev/null
+++ b/awscli/examples/cognito-idp/revoke-token.rst
@@ -0,0 +1,11 @@
+**To revoke a refresh token**
+
+The following ``revoke-token`` revokes the requested refresh token and associated access tokens. ::
+
+ aws cognito-idp revoke-token \
+ --token eyJjd123abcEXAMPLE \
+ --client-id 1example23456789
+
+This command produces no output.
+
+For more information, see `Revoking tokens `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/set-log-delivery-configuration.rst b/awscli/examples/cognito-idp/set-log-delivery-configuration.rst
new file mode 100644
index 000000000000..0c7c6906d195
--- /dev/null
+++ b/awscli/examples/cognito-idp/set-log-delivery-configuration.rst
@@ -0,0 +1,33 @@
+**To set up log export from a user pool**
+
+The following ``set-log-delivery-configuration`` example configures the requested user pool with user-notification error logging to a log group and user-authentication info logging to an S3 bucket. ::
+
+ aws cognito-idp set-log-delivery-configuration \
+ --user-pool-id us-west-2_EXAMPLE \
+ --log-configurations LogLevel=ERROR,EventSource=userNotification,CloudWatchLogsConfiguration={LogGroupArn=arn:aws:logs:us-west-2:123456789012:log-group:cognito-exported} LogLevel=INFO,EventSource=userAuthEvents,S3Configuration={BucketArn=arn:aws:s3:::amzn-s3-demo-bucket1}
+
+Output::
+
+ {
+ "LogDeliveryConfiguration": {
+ "LogConfigurations": [
+ {
+ "CloudWatchLogsConfiguration": {
+ "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:cognito-exported"
+ },
+ "EventSource": "userNotification",
+ "LogLevel": "ERROR"
+ },
+ {
+ "EventSource": "userAuthEvents",
+ "LogLevel": "INFO",
+ "S3Configuration": {
+ "BucketArn": "arn:aws:s3:::amzn-s3-demo-bucket1"
+ }
+ }
+ ],
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ }
+
+For more information, see `Exporting user pool logs `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/set-risk-configuration.rst b/awscli/examples/cognito-idp/set-risk-configuration.rst
index 5c78c0a98201..a31c7e0ffbdb 100644
--- a/awscli/examples/cognito-idp/set-risk-configuration.rst
+++ b/awscli/examples/cognito-idp/set-risk-configuration.rst
@@ -1,23 +1,136 @@
-**To set risk configuration**
-
-This example sets the risk configuration for a user pool. It sets the sign-up event action to NO_ACTION.
-
-Command::
-
- aws cognito-idp set-risk-configuration --user-pool-id us-west-2_aaaaaaaaa --compromised-credentials-risk-configuration EventFilter=SIGN_UP,Actions={EventAction=NO_ACTION}
-
-Output::
-
- {
- "RiskConfiguration": {
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "CompromisedCredentialsRiskConfiguration": {
- "EventFilter": [
- "SIGN_UP"
- ],
- "Actions": {
- "EventAction": "NO_ACTION"
- }
- }
- }
- }
\ No newline at end of file
+**To set the threat protection risk configuration**
+
+The following ``set-risk-configuration`` example configures threat protection messages and actions, compromised credentials, and IP address exceptions in the requested app client. Because of the complexity of the NotifyConfiguration object, JSON input is a best practice for this command. ::
+
+ aws cognito-idp set-risk-configuration \
+ --cli-input-json file://set-risk-configuration.json
+
+Contents of ``set-risk-configuration.json``::
+
+ {
+ "AccountTakeoverRiskConfiguration": {
+ "Actions": {
+ "HighAction": {
+ "EventAction": "MFA_REQUIRED",
+ "Notify": true
+ },
+ "LowAction": {
+ "EventAction": "NO_ACTION",
+ "Notify": true
+ },
+ "MediumAction": {
+ "EventAction": "MFA_IF_CONFIGURED",
+ "Notify": true
+ }
+ },
+ "NotifyConfiguration": {
+ "BlockEmail": {
+ "HtmlBody": "\n\n\n\tHTML email context \n\t\n\n\nWe blocked an unrecognized sign-in to your account with this information:\n
\n- Time: {login-time}
\n- Device: {device-name}
\n- Location: {city}, {country}
\n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know\n\n",
+ "Subject": "Blocked sign-in attempt",
+ "TextBody": "We blocked an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know"
+ },
+ "From": "admin@example.com",
+ "MfaEmail": {
+ "HtmlBody": "\n\n\n\tHTML email context \n\t\n\n\nWe required you to use multi-factor authentication for the following sign-in attempt:\n
\n- Time: {login-time}
\n- Device: {device-name}
\n- Location: {city}, {country}
\n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know\n\n",
+ "Subject": "New sign-in attempt",
+ "TextBody": "We required you to use multi-factor authentication for the following sign-in attempt:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know"
+ },
+ "NoActionEmail": {
+ "HtmlBody": "\n\n\n\tHTML email context \n\t\n\n\nWe observed an unrecognized sign-in to your account with this information:\n
\n- Time: {login-time}
\n- Device: {device-name}
\n- Location: {city}, {country}
\n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know\n\n",
+ "Subject": "New sign-in attempt",
+ "TextBody": "We observed an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know"
+ },
+ "ReplyTo": "admin@example.com",
+ "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
+ }
+ },
+ "ClientId": "1example23456789",
+ "CompromisedCredentialsRiskConfiguration": {
+ "Actions": {
+ "EventAction": "BLOCK"
+ },
+ "EventFilter": [
+ "PASSWORD_CHANGE",
+ "SIGN_UP",
+ "SIGN_IN"
+ ]
+ },
+ "RiskExceptionConfiguration": {
+ "BlockedIPRangeList": [
+ "192.0.2.1/32",
+ "192.0.2.2/32"
+ ],
+ "SkippedIPRangeList": [
+ "203.0.113.1/32",
+ "203.0.113.2/32"
+ ]
+ },
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+
+Output::
+
+ {
+ "RiskConfiguration": {
+ "AccountTakeoverRiskConfiguration": {
+ "Actions": {
+ "HighAction": {
+ "EventAction": "MFA_REQUIRED",
+ "Notify": true
+ },
+ "LowAction": {
+ "EventAction": "NO_ACTION",
+ "Notify": true
+ },
+ "MediumAction": {
+ "EventAction": "MFA_IF_CONFIGURED",
+ "Notify": true
+ }
+ },
+ "NotifyConfiguration": {
+ "BlockEmail": {
+ "HtmlBody": "\n\n\n\tHTML email context \n\t\n\n\nWe blocked an unrecognized sign-in to your account with this information:\n
\n- Time: {login-time}
\n- Device: {device-name}
\n- Location: {city}, {country}
\n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know\n\n",
+ "Subject": "Blocked sign-in attempt",
+ "TextBody": "We blocked an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know"
+ },
+ "From": "admin@example.com",
+ "MfaEmail": {
+ "HtmlBody": "\n\n\n\tHTML email context \n\t\n\n\nWe required you to use multi-factor authentication for the following sign-in attempt:\n
\n- Time: {login-time}
\n- Device: {device-name}
\n- Location: {city}, {country}
\n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know\n\n",
+ "Subject": "New sign-in attempt",
+ "TextBody": "We required you to use multi-factor authentication for the following sign-in attempt:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know"
+ },
+ "NoActionEmail": {
+ "HtmlBody": "\n\n\n\tHTML email context \n\t\n\n\nWe observed an unrecognized sign-in to your account with this information:\n
\n- Time: {login-time}
\n- Device: {device-name}
\n- Location: {city}, {country}
\n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know\n\n",
+ "Subject": "New sign-in attempt",
+ "TextBody": "We observed an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know"
+ },
+ "ReplyTo": "admin@example.com",
+ "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
+ }
+ },
+ "ClientId": "1example23456789",
+ "CompromisedCredentialsRiskConfiguration": {
+ "Actions": {
+ "EventAction": "BLOCK"
+ },
+ "EventFilter": [
+ "PASSWORD_CHANGE",
+ "SIGN_UP",
+ "SIGN_IN"
+ ]
+ },
+ "RiskExceptionConfiguration": {
+ "BlockedIPRangeList": [
+ "192.0.2.1/32",
+ "192.0.2.2/32"
+ ],
+ "SkippedIPRangeList": [
+ "203.0.113.1/32",
+ "203.0.113.2/32"
+ ]
+ },
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ }
+
+For more information, see `Threat protection `__ in the *Amazon Cognito Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cognito-idp/set-ui-customization.rst b/awscli/examples/cognito-idp/set-ui-customization.rst
index 7864e3a7bc51..39d505ee92e8 100644
--- a/awscli/examples/cognito-idp/set-ui-customization.rst
+++ b/awscli/examples/cognito-idp/set-ui-customization.rst
@@ -1,18 +1,45 @@
-**To set UI customization**
-
-This example customizes the CSS setting for a user pool.
-
-Command::
-
- aws cognito-idp set-ui-customization --user-pool-id us-west-2_aaaaaaaaa --css ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 10px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 300;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 14px;\n\tfont-weight: bold;\n\tmargin: 20px 0px 10px 0px;\n\theight: 40px;\n\twidth: 100%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\theight: 40px;\n\ttext-align: left;\n\twidth: 100%;\n\tmargin-bottom: 15px;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #faf;\n}\n"
-
-Output::
-
- {
- "UICustomization": {
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "ClientId": "ALL",
- "CSS": ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 10px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 300;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 14px;\n\tfont-weight: bold;\n\tmargin: 20px 0px 10px 0px;\n\theight: 40px;\n\twidth: 100%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\theight: 40px;\n\ttext-align: left;\n\twidth: 100%;\n\tmargin-bottom: 15px;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #faf;\n}\n",
- "CSSVersion": "20190129172214"
- }
- }
\ No newline at end of file
+**Example 1: To customize the classic hosted UI for an app client**
+
+The following ``set-ui-customization`` example configures the requested app client with some custom CSS and with the Amazon Cognito logo as the application logo. ::
+
+ aws cognito-idp set-ui-customization \
+ --user-pool-id us-west-2_ywDJHlIfU \
+ --client-id 14pq32c5q2uq2q7keorloqvb23 \
+ --css ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n" \
+ --image-file iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURd00TN9BV/Cmsfvm6f3y9P////fM0uqAj+yNmu6ZpvnZ3eNabuFNYuZneehzhPKzvPTAxwAAAOiMMlkAAAASdFJOU///////////////////////AOK/vxIAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKDSURBVFhH7ZfpkoMgEISDHKuEw/d/2u2BQWMiBrG29o+fVsKatdPMAeZxc3Nz8w+ISekzmB++sYIw/I/tjHzrPpO2Tx62EbR2PNxFac+jVuKxRaV50IzXkUe76NOCoUuwlvnQKei02gNF0ykotOLRBq/nboeWRxAISx2EbsHFoRhK6Igk2JJlwScfQjgt06dOaWWiTbEDAe/iq8N9kqCw2uCbHkHlYkaXEF8EYeL9RDqT4FhC6XMIIEifdcUwCc4leNyhabadWU6OlKYJE1Oac3NSPhB5rlaXlSgmr/1lww4nPaU/1ylfLGxX1r6Y66ZZkCqvnOlqKWws59ELj7fULc2CubwySYkdDuuiY0/F0L6Q5pZiSG0SfZTSTCOUhxOCH1AdIoCpTTIjtd+VpEjUDDytQH/0Fpc661Aisas/4qmyUItD557pSCOSQQzlx27J+meyDGc5zZgfhWuXE1lGgmVOMwmWdeGdzhjqZV14x5vSj7vsC5JDz/Cl0Vhp56n2NQt1wQIpury1EPbwyaYm+IhmAQKoajkH51wg4cMZ1wQ3QG9efKWWOaDhYWnU6jXjCMdRmm21PArI+Pb5DYoH93hq0ZCPlxeGJho/DI15C6sQc/L2sTC47UFBKZGHT6k+zlXg7WebA0Nr0HTcLMfk/Y4Rc65D3iG6WDd7YLSlVqk87bVhUwhnClrx11RsVQwlAA818Mn+QEs71BhSFU6orsUfKhHp72XMGYXi4q9c64RXRvzkWurRfG2vI2be/VaNcNgpX0Evb/vio7nPMmj5qujkpQgSaPd1UcVqciHFDNZpOcGlcOPyi+AamCbIL9fitxAGeFN2Dl+3vZubm5u/4fH4Bd14HhIPdwZPAAAAAElFTkSuQmCC
+
+Output::
+
+ {
+ "UICustomization": {
+ "UserPoolId": "us-west-2_ywDJHlIfU",
+ "ClientId": "14pq32c5q2uq2q7keorloqvb23",
+ "ImageUrl": "https://cf.thewrong.club/14pq32c5q2uq2q7keorloqvb23/20250117005911/assets/images/image.jpg",
+ "CSS": ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n",
+ "CSSVersion": "20250117005911"
+ }
+ }
+
+**Example 2: To set the default UI customization for all app clients**
+
+The following ``set-ui-customization`` example configures the requested user pool for all app clients that don't have a client-specific configuration. The command applies some custom CSS and with the Amazon Cognito logo as the application logo. ::
+
+ aws cognito-idp set-ui-customization \
+ --user-pool-id us-west-2_ywDJHlIfU \
+ --client-id ALL \
+ --css ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n" \
+ --image-file iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURd00TN9BV/Cmsfvm6f3y9P////fM0uqAj+yNmu6ZpvnZ3eNabuFNYuZneehzhPKzvPTAxwAAAOiMMlkAAAASdFJOU///////////////////////AOK/vxIAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKDSURBVFhH7ZfpkoMgEISDHKuEw/d/2u2BQWMiBrG29o+fVsKatdPMAeZxc3Nz8w+ISekzmB++sYIw/I/tjHzrPpO2Tx62EbR2PNxFac+jVuKxRaV50IzXkUe76NOCoUuwlvnQKei02gNF0ykotOLRBq/nboeWRxAISx2EbsHFoRhK6Igk2JJlwScfQjgt06dOaWWiTbEDAe/iq8N9kqCw2uCbHkHlYkaXEF8EYeL9RDqT4FhC6XMIIEifdcUwCc4leNyhabadWU6OlKYJE1Oac3NSPhB5rlaXlSgmr/1lww4nPaU/1ylfLGxX1r6Y66ZZkCqvnOlqKWws59ELj7fULc2CubwySYkdDuuiY0/F0L6Q5pZiSG0SfZTSTCOUhxOCH1AdIoCpTTIjtd+VpEjUDDytQH/0Fpc661Aisas/4qmyUItD557pSCOSQQzlx27J+meyDGc5zZgfhWuXE1lGgmVOMwmWdeGdzhjqZV14x5vSj7vsC5JDz/Cl0Vhp56n2NQt1wQIpury1EPbwyaYm+IhmAQKoajkH51wg4cMZ1wQ3QG9efKWWOaDhYWnU6jXjCMdRmm21PArI+Pb5DYoH93hq0ZCPlxeGJho/DI15C6sQc/L2sTC47UFBKZGHT6k+zlXg7WebA0Nr0HTcLMfk/Y4Rc65D3iG6WDd7YLSlVqk87bVhUwhnClrx11RsVQwlAA818Mn+QEs71BhSFU6orsUfKhHp72XMGYXi4q9c64RXRvzkWurRfG2vI2be/VaNcNgpX0Evb/vio7nPMmj5qujkpQgSaPd1UcVqciHFDNZpOcGlcOPyi+AamCbIL9fitxAGeFN2Dl+3vZubm5u/4fH4Bd14HhIPdwZPAAAAAElFTkSuQmCC
+
+Output::
+
+ {
+ "UICustomization": {
+ "UserPoolId": "us-west-2_ywDJHlIfU",
+ "ClientId": "14pq32c5q2uq2q7keorloqvb23",
+ "ImageUrl": "https://cf.thewrong.club/14pq32c5q2uq2q7keorloqvb23/20250117005911/assets/images/image.jpg",
+ "CSS": ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n",
+ "CSSVersion": "20250117005911"
+ }
+ }
+
+For more information, see `Hosted UI (classic) branding `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/set-user-mfa-preference.rst b/awscli/examples/cognito-idp/set-user-mfa-preference.rst
index b1cd207010b2..4df1f77a318a 100644
--- a/awscli/examples/cognito-idp/set-user-mfa-preference.rst
+++ b/awscli/examples/cognito-idp/set-user-mfa-preference.rst
@@ -1,12 +1,13 @@
-**To set user MFA settings**
+**To set a user's MFA preference**
-The following ``set-user-mfa-preference`` example modifies the MFA delivery options. It changes the MFA delivery medium to SMS. ::
+The following ``set-user-mfa-preference`` example configures the current user to use TOTP MFA and disables all other MFA factors. ::
aws cognito-idp set-user-mfa-preference \
- --access-token "eyJra12345EXAMPLE" \
+ --access-token eyJra456defEXAMPLE \
--software-token-mfa-settings Enabled=true,PreferredMfa=true \
- --sms-mfa-settings Enabled=false,PreferredMfa=false
+ --sms-mfa-settings Enabled=false,PreferredMfa=false \
+ --email-mfa-settings Enabled=false,PreferredMfa=false
This command produces no output.
-For more information, see `Adding MFA to a user pool `__ in the *Amazon Cognito Developer Guide*.
\ No newline at end of file
+For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/set-user-pool-mfa-config.rst b/awscli/examples/cognito-idp/set-user-pool-mfa-config.rst
new file mode 100644
index 000000000000..e973739ea474
--- /dev/null
+++ b/awscli/examples/cognito-idp/set-user-pool-mfa-config.rst
@@ -0,0 +1,38 @@
+**To configure user pool MFA and WebAuthn**
+
+The following ``set-user-pool-mfa-config`` example configures the requested user pool with optional MFA with all available MFA methods, and sets the WebAuthn configuration. ::
+
+ aws cognito-idp set-user-pool-mfa-config \
+ --user-pool-id us-west-2_EXAMPLE \
+ --sms-mfa-configuration "SmsAuthenticationMessage=\"Your OTP for MFA or sign-in: use {####}.\",SmsConfiguration={SnsCallerArn=arn:aws:iam::123456789012:role/service-role/test-SMS-Role,ExternalId=a1b2c3d4-5678-90ab-cdef-EXAMPLE11111,SnsRegion=us-west-2}" \
+ --software-token-mfa-configuration Enabled=true \
+ --email-mfa-configuration "Message=\"Your OTP for MFA or sign-in: use {####}\",Subject=\"OTP test\"" \
+ --mfa-configuration OPTIONAL \
+ --web-authn-configuration RelyingPartyId=auth.example.com,UserVerification=preferred
+
+Output::
+
+ {
+ "EmailMfaConfiguration": {
+ "Message": "Your OTP for MFA or sign-in: use {####}",
+ "Subject": "OTP test"
+ },
+ "MfaConfiguration": "OPTIONAL",
+ "SmsMfaConfiguration": {
+ "SmsAuthenticationMessage": "Your OTP for MFA or sign-in: use {####}.",
+ "SmsConfiguration": {
+ "ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/test-SMS-Role",
+ "SnsRegion": "us-west-2"
+ }
+ },
+ "SoftwareTokenMfaConfiguration": {
+ "Enabled": true
+ },
+ "WebAuthnConfiguration": {
+ "RelyingPartyId": "auth.example.com",
+ "UserVerification": "preferred"
+ }
+ }
+
+For more information, see `Adding MFA `__ and `Passkey sign-in `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/start-user-import-job.rst b/awscli/examples/cognito-idp/start-user-import-job.rst
index e33be386eccd..17e79d493946 100644
--- a/awscli/examples/cognito-idp/start-user-import-job.rst
+++ b/awscli/examples/cognito-idp/start-user-import-job.rst
@@ -1,29 +1,27 @@
-**To start a user import job**
-
-This example starts a user input job.
-
-For more information about importing users, see `Importing Users into User Pools From a CSV File`_.
-
-Command::
-
- aws cognito-idp start-user-import-job --user-pool-id us-west-2_aaaaaaaaa --job-id import-TZqNQvDRnW
-
-Output::
-
- {
- "UserImportJob": {
- "JobName": "import-Test10",
- "JobId": "import-lmpxSOuIzH",
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "PreSignedUrl": "PRE_SIGNED_URL",
- "CreationDate": 1548278378.928,
- "StartDate": 1548278397.334,
- "Status": "Pending",
- "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole",
- "ImportedUsers": 0,
- "SkippedUsers": 0,
- "FailedUsers": 0
- }
- }
-
-.. _`Importing Users into User Pools From a CSV File`: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html
\ No newline at end of file
+**To start an import job**
+
+The following ``start-user-import-job`` example starts the requested import job in the requested user pool. ::
+
+ aws cognito-idp start-user-import-job \
+ --user-pool-id us-west-2_EXAMPLE \
+ --job-id import-mAgUtd8PMm
+
+Output::
+
+ {
+ "UserImportJob": {
+ "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/example-cloudwatch-logs-role",
+ "CreationDate": 1736442975.904,
+ "FailedUsers": 0,
+ "ImportedUsers": 0,
+ "JobId": "import-mAgUtd8PMm",
+ "JobName": "Customer import",
+ "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]",
+ "SkippedUsers": 0,
+ "StartDate": 1736443020.081,
+ "Status": "Pending",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ }
+
+For more information, see `Importing users into a user pool `__ in the *Amazon Cognito Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cognito-idp/start-web-authn-registration.rst b/awscli/examples/cognito-idp/start-web-authn-registration.rst
new file mode 100644
index 000000000000..35a49b83c58f
--- /dev/null
+++ b/awscli/examples/cognito-idp/start-web-authn-registration.rst
@@ -0,0 +1,47 @@
+**To get passkey registration information for a signed-in user**
+
+The following ``start-web-authn-registration`` example generates WebAuthn registration options for the current user. ::
+
+ aws cognito-idp start-web-authn-registration \
+ --access-token eyJra456defEXAMPLE
+
+Output::
+
+ {
+ "CredentialCreationOptions": {
+ "authenticatorSelection": {
+ "requireResidentKey": true,
+ "residentKey": "required",
+ "userVerification": "preferred"
+ },
+ "challenge": "wxvbDicyqQqvF2EXAMPLE",
+ "excludeCredentials": [
+ {
+ "id": "8LApgk4-lNUFHbhm2w6Und7-uxcc8coJGsPxiogvHoItc64xWQc3r4CEXAMPLE",
+ "type": "public-key"
+ }
+ ],
+ "pubKeyCredParams": [
+ {
+ "alg": -7,
+ "type": "public-key"
+ },
+ {
+ "alg": -257,
+ "type": "public-key"
+ }
+ ],
+ "rp": {
+ "id": "auth.example.com",
+ "name": "auth.example.com"
+ },
+ "timeout": 60000,
+ "user": {
+ "displayName": "testuser",
+ "id": "ZWFhZDAyMTktMjExNy00MzlmLThkNDYtNGRiMjBlNEXAMPLE",
+ "name": "testuser"
+ }
+ }
+ }
+
+For more information, see `Passkey sign-in `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/stop-user-import-job.rst b/awscli/examples/cognito-idp/stop-user-import-job.rst
index 4d62b7f1534d..eb24e9233971 100644
--- a/awscli/examples/cognito-idp/stop-user-import-job.rst
+++ b/awscli/examples/cognito-idp/stop-user-import-job.rst
@@ -1,31 +1,29 @@
-**To stop a user import job**
-
-This example stops a user input job.
-
-For more information about importing users, see `Importing Users into User Pools From a CSV File`_.
-
-Command::
-
- aws cognito-idp stop-user-import-job --user-pool-id us-west-2_aaaaaaaaa --job-id import-TZqNQvDRnW
-
-Output::
-
- {
- "UserImportJob": {
- "JobName": "import-Test5",
- "JobId": "import-Fx0kARISFL",
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "PreSignedUrl": "PRE_SIGNED_URL",
- "CreationDate": 1548278576.259,
- "StartDate": 1548278623.366,
- "CompletionDate": 1548278626.741,
- "Status": "Stopped",
- "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole",
- "ImportedUsers": 0,
- "SkippedUsers": 0,
- "FailedUsers": 0,
- "CompletionMessage": "The Import Job was stopped by the developer."
- }
- }
-
-.. _`Importing Users into User Pools From a CSV File`: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html
\ No newline at end of file
+**To stop an import job**
+
+The following ``stop-user-import-job`` example stops the requested running user import job in the requested user pool. ::
+
+ aws cognito-idp stop-user-import-job \
+ --user-pool-id us-west-2_EXAMPLE \
+ --job-id import-mAgUtd8PMm
+
+Output::
+
+ {
+ "UserImportJob": {
+ "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/example-cloudwatch-logs-role",
+ "CompletionDate": 1736443496.379,
+ "CompletionMessage": "The Import Job was stopped by the developer.",
+ "CreationDate": 1736443471.781,
+ "FailedUsers": 0,
+ "ImportedUsers": 0,
+ "JobId": "import-mAgUtd8PMm",
+ "JobName": "Customer import",
+ "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]",
+ "SkippedUsers": 0,
+ "StartDate": 1736443494.154,
+ "Status": "Stopped",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ }
+
+For more information, see `Importing users into a user pool `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/tag-resource.rst b/awscli/examples/cognito-idp/tag-resource.rst
new file mode 100644
index 000000000000..43f8cc3f8ab9
--- /dev/null
+++ b/awscli/examples/cognito-idp/tag-resource.rst
@@ -0,0 +1,11 @@
+**To tag a user pool**
+
+The following ``tag-resource`` example applies ``administrator`` and ``department`` tags to the requested user pool. ::
+
+ aws cognito-idp tag-resource \
+ --resource-arn arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_EXAMPLE \
+ --tags administrator=Jie,tenant=ExampleCorp
+
+This command produces no output.
+
+For more information, see `Tagging Amazon Cognito resources `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/untag-resource.rst b/awscli/examples/cognito-idp/untag-resource.rst
new file mode 100644
index 000000000000..0582bce9249f
--- /dev/null
+++ b/awscli/examples/cognito-idp/untag-resource.rst
@@ -0,0 +1,11 @@
+**To remove tags from a user pool**
+
+The following ``untag-resource`` example removes ``administrator`` and ``department`` tags from the requested user pool. ::
+
+ aws cognito-idp untag-resource \
+ --resource-arn arn:aws:cognito-idp:us-west-2:767671399759:userpool/us-west-2_l5cxwdm2K \
+ --tag-keys administrator tenant
+
+This command produces no output.
+
+For more information, see `Tagging Amazon Cognito resources `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/update-identity-provider.rst b/awscli/examples/cognito-idp/update-identity-provider.rst
new file mode 100644
index 000000000000..cdcc48409ea9
--- /dev/null
+++ b/awscli/examples/cognito-idp/update-identity-provider.rst
@@ -0,0 +1,71 @@
+**To update a user pool identity provider**
+
+The following ``update-identity-provider`` example updates the OIDC provider "MyOIDCIdP" in the requested user pool. ::
+
+ aws cognito-idp update-identity-provider \
+ --cli-input-json file://update-identity-provider.json
+
+Contents of ``update-identity-provider.json``::
+
+ {
+ "AttributeMapping": {
+ "email": "idp_email",
+ "email_verified": "idp_email_verified",
+ "username": "sub"
+ },
+ "CreationDate": 1.701129701653E9,
+ "IdpIdentifiers": [
+ "corp",
+ "dev"
+ ],
+ "LastModifiedDate": 1.701129701653E9,
+ "ProviderDetails": {
+ "attributes_request_method": "GET",
+ "attributes_url": "https://example.com/userInfo",
+ "attributes_url_add_attributes": "false",
+ "authorize_scopes": "openid profile",
+ "authorize_url": "https://example.com/authorize",
+ "client_id": "idpexampleclient123",
+ "client_secret": "idpexamplesecret456",
+ "jwks_uri": "https://example.com/.well-known/jwks.json",
+ "oidc_issuer": "https://example.com",
+ "token_url": "https://example.com/token"
+ },
+ "ProviderName": "MyOIDCIdP",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+
+Output::
+
+ {
+ "IdentityProvider": {
+ "AttributeMapping": {
+ "email": "idp_email",
+ "email_verified": "idp_email_verified",
+ "username": "sub"
+ },
+ "CreationDate": 1701129701.653,
+ "IdpIdentifiers": [
+ "corp",
+ "dev"
+ ],
+ "LastModifiedDate": 1736444278.211,
+ "ProviderDetails": {
+ "attributes_request_method": "GET",
+ "attributes_url": "https://example.com/userInfo",
+ "attributes_url_add_attributes": "false",
+ "authorize_scopes": "openid profile",
+ "authorize_url": "https://example.com/authorize",
+ "client_id": "idpexampleclient123",
+ "client_secret": "idpexamplesecret456",
+ "jwks_uri": "https://example.com/.well-known/jwks.json",
+ "oidc_issuer": "https://example.com",
+ "token_url": "https://example.com/token"
+ },
+ "ProviderName": "MyOIDCIdP",
+ "ProviderType": "OIDC",
+ "UserPoolId": "us-west-2_EXAMPLE"
+ }
+ }
+
+For more information, see `Configuring a domain `__ in the *Amazon Cognito Developer Guide*.
diff --git a/awscli/examples/cognito-idp/update-managed-login-branding.rst b/awscli/examples/cognito-idp/update-managed-login-branding.rst
new file mode 100644
index 000000000000..c968630b6751
--- /dev/null
+++ b/awscli/examples/cognito-idp/update-managed-login-branding.rst
@@ -0,0 +1,949 @@
+**To update a managed login branding style**
+
+The following ``update-managed-login-branding`` example updates the requested app client branding style. ::
+
+ aws cognito-idp update-managed-login-branding \
+ --cli-input-json file://update-managed-login-branding.json
+
+Contents of ``update-managed-login-branding.json``::
+
+ {
+ "Assets": [
+ {
+ "Bytes": "PHN2ZyB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiB2aWV3Qm94PSIwIDAgMjAwMDAgNDAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTcyNTlfMjM2Njc0KSI+CjxyZWN0IHdpZHRoPSIyMDAwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQpIi8+CjxwYXRoIGQ9Ik0wIDBIMjAwMDBWNDAwSDBWMFoiIGZpbGw9IiMxMjIwMzciIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQiIHgxPSItODk0LjI0OSIgeTE9IjE5OS45MzEiIHgyPSIxODAzNC41IiB5Mj0iLTU4OTkuNTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0JGODBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjhGQUIiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xNzI1OV8yMzY2NzQiPgo8cmVjdCB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
+ "Category": "PAGE_FOOTER_BACKGROUND",
+ "ColorMode": "DARK",
+ "Extension": "SVG"
+ }
+ ],
+ "ManagedLoginBrandingId": "63f30090-6b1f-4278-b885-2bbb81f8e545",
+ "Settings": {
+ "categories": {
+ "auth": {
+ "authMethodOrder": [
+ [
+ {
+ "display": "BUTTON",
+ "type": "FEDERATED"
+ },
+ {
+ "display": "INPUT",
+ "type": "USERNAME_PASSWORD"
+ }
+ ]
+ ],
+ "federation": {
+ "interfaceStyle": "BUTTON_LIST",
+ "order": [
+ ]
+ }
+ },
+ "form": {
+ "displayGraphics": true,
+ "instructions": {
+ "enabled": false
+ },
+ "languageSelector": {
+ "enabled": false
+ },
+ "location": {
+ "horizontal": "CENTER",
+ "vertical": "CENTER"
+ },
+ "sessionTimerDisplay": "NONE"
+ },
+ "global": {
+ "colorSchemeMode": "LIGHT",
+ "pageFooter": {
+ "enabled": false
+ },
+ "pageHeader": {
+ "enabled": false
+ },
+ "spacingDensity": "REGULAR"
+ },
+ "signUp": {
+ "acceptanceElements": [
+ {
+ "enforcement": "NONE",
+ "textKey": "en"
+ }
+ ]
+ }
+ },
+ "componentClasses": {
+ "buttons": {
+ "borderRadius": 8.0
+ },
+ "divider": {
+ "darkMode": {
+ "borderColor": "232b37ff"
+ },
+ "lightMode": {
+ "borderColor": "ebebf0ff"
+ }
+ },
+ "dropDown": {
+ "borderRadius": 8.0,
+ "darkMode": {
+ "defaults": {
+ "itemBackgroundColor": "192534ff"
+ },
+ "hover": {
+ "itemBackgroundColor": "081120ff",
+ "itemBorderColor": "5f6b7aff",
+ "itemTextColor": "e9ebedff"
+ },
+ "match": {
+ "itemBackgroundColor": "d1d5dbff",
+ "itemTextColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "defaults": {
+ "itemBackgroundColor": "ffffffff"
+ },
+ "hover": {
+ "itemBackgroundColor": "f4f4f4ff",
+ "itemBorderColor": "7d8998ff",
+ "itemTextColor": "000716ff"
+ },
+ "match": {
+ "itemBackgroundColor": "414d5cff",
+ "itemTextColor": "0972d3ff"
+ }
+ }
+ },
+ "focusState": {
+ "darkMode": {
+ "borderColor": "539fe5ff"
+ },
+ "lightMode": {
+ "borderColor": "0972d3ff"
+ }
+ },
+ "idpButtons": {
+ "icons": {
+ "enabled": true
+ }
+ },
+ "input": {
+ "borderRadius": 8.0,
+ "darkMode": {
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "5f6b7aff"
+ },
+ "placeholderColor": "8d99a8ff"
+ },
+ "lightMode": {
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "7d8998ff"
+ },
+ "placeholderColor": "5f6b7aff"
+ }
+ },
+ "inputDescription": {
+ "darkMode": {
+ "textColor": "8d99a8ff"
+ },
+ "lightMode": {
+ "textColor": "5f6b7aff"
+ }
+ },
+ "inputLabel": {
+ "darkMode": {
+ "textColor": "d1d5dbff"
+ },
+ "lightMode": {
+ "textColor": "000716ff"
+ }
+ },
+ "link": {
+ "darkMode": {
+ "defaults": {
+ "textColor": "539fe5ff"
+ },
+ "hover": {
+ "textColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "defaults": {
+ "textColor": "0972d3ff"
+ },
+ "hover": {
+ "textColor": "033160ff"
+ }
+ }
+ },
+ "optionControls": {
+ "darkMode": {
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "7d8998ff"
+ },
+ "selected": {
+ "backgroundColor": "539fe5ff",
+ "foregroundColor": "000716ff"
+ }
+ },
+ "lightMode": {
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "7d8998ff"
+ },
+ "selected": {
+ "backgroundColor": "0972d3ff",
+ "foregroundColor": "ffffffff"
+ }
+ }
+ },
+ "statusIndicator": {
+ "darkMode": {
+ "error": {
+ "backgroundColor": "1a0000ff",
+ "borderColor": "eb6f6fff",
+ "indicatorColor": "eb6f6fff"
+ },
+ "pending": {
+ "indicatorColor": "AAAAAAAA"
+ },
+ "success": {
+ "backgroundColor": "001a02ff",
+ "borderColor": "29ad32ff",
+ "indicatorColor": "29ad32ff"
+ },
+ "warning": {
+ "backgroundColor": "1d1906ff",
+ "borderColor": "e0ca57ff",
+ "indicatorColor": "e0ca57ff"
+ }
+ },
+ "lightMode": {
+ "error": {
+ "backgroundColor": "fff7f7ff",
+ "borderColor": "d91515ff",
+ "indicatorColor": "d91515ff"
+ },
+ "pending": {
+ "indicatorColor": "AAAAAAAA"
+ },
+ "success": {
+ "backgroundColor": "f2fcf3ff",
+ "borderColor": "037f0cff",
+ "indicatorColor": "037f0cff"
+ },
+ "warning": {
+ "backgroundColor": "fffce9ff",
+ "borderColor": "8d6605ff",
+ "indicatorColor": "8d6605ff"
+ }
+ }
+ }
+ },
+ "components": {
+ "alert": {
+ "borderRadius": 12.0,
+ "darkMode": {
+ "error": {
+ "backgroundColor": "1a0000ff",
+ "borderColor": "eb6f6fff"
+ }
+ },
+ "lightMode": {
+ "error": {
+ "backgroundColor": "fff7f7ff",
+ "borderColor": "d91515ff"
+ }
+ }
+ },
+ "favicon": {
+ "enabledTypes": [
+ "ICO",
+ "SVG"
+ ]
+ },
+ "form": {
+ "backgroundImage": {
+ "enabled": false
+ },
+ "borderRadius": 8.0,
+ "darkMode": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "424650ff"
+ },
+ "lightMode": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "c6c6cdff"
+ },
+ "logo": {
+ "enabled": false,
+ "formInclusion": "IN",
+ "location": "CENTER",
+ "position": "TOP"
+ }
+ },
+ "idpButton": {
+ "custom": {
+ },
+ "standard": {
+ "darkMode": {
+ "active": {
+ "backgroundColor": "354150ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ },
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "c6c6cdff",
+ "textColor": "c6c6cdff"
+ },
+ "hover": {
+ "backgroundColor": "192534ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "active": {
+ "backgroundColor": "d3e7f9ff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ },
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "424650ff",
+ "textColor": "424650ff"
+ },
+ "hover": {
+ "backgroundColor": "f2f8fdff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ }
+ }
+ }
+ },
+ "pageBackground": {
+ "darkMode": {
+ "color": "0f1b2aff"
+ },
+ "image": {
+ "enabled": true
+ },
+ "lightMode": {
+ "color": "ffffffff"
+ }
+ },
+ "pageFooter": {
+ "backgroundImage": {
+ "enabled": false
+ },
+ "darkMode": {
+ "background": {
+ "color": "0f141aff"
+ },
+ "borderColor": "424650ff"
+ },
+ "lightMode": {
+ "background": {
+ "color": "fafafaff"
+ },
+ "borderColor": "d5dbdbff"
+ },
+ "logo": {
+ "enabled": false,
+ "location": "START"
+ }
+ },
+ "pageHeader": {
+ "backgroundImage": {
+ "enabled": false
+ },
+ "darkMode": {
+ "background": {
+ "color": "0f141aff"
+ },
+ "borderColor": "424650ff"
+ },
+ "lightMode": {
+ "background": {
+ "color": "fafafaff"
+ },
+ "borderColor": "d5dbdbff"
+ },
+ "logo": {
+ "enabled": false,
+ "location": "START"
+ }
+ },
+ "pageText": {
+ "darkMode": {
+ "bodyColor": "b6bec9ff",
+ "descriptionColor": "b6bec9ff",
+ "headingColor": "d1d5dbff"
+ },
+ "lightMode": {
+ "bodyColor": "414d5cff",
+ "descriptionColor": "414d5cff",
+ "headingColor": "000716ff"
+ }
+ },
+ "phoneNumberSelector": {
+ "displayType": "TEXT"
+ },
+ "primaryButton": {
+ "darkMode": {
+ "active": {
+ "backgroundColor": "539fe5ff",
+ "textColor": "000716ff"
+ },
+ "defaults": {
+ "backgroundColor": "539fe5ff",
+ "textColor": "000716ff"
+ },
+ "disabled": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "ffffffff"
+ },
+ "hover": {
+ "backgroundColor": "89bdeeff",
+ "textColor": "000716ff"
+ }
+ },
+ "lightMode": {
+ "active": {
+ "backgroundColor": "033160ff",
+ "textColor": "ffffffff"
+ },
+ "defaults": {
+ "backgroundColor": "0972d3ff",
+ "textColor": "ffffffff"
+ },
+ "disabled": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "ffffffff"
+ },
+ "hover": {
+ "backgroundColor": "033160ff",
+ "textColor": "ffffffff"
+ }
+ }
+ },
+ "secondaryButton": {
+ "darkMode": {
+ "active": {
+ "backgroundColor": "354150ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ },
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "539fe5ff",
+ "textColor": "539fe5ff"
+ },
+ "hover": {
+ "backgroundColor": "192534ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "active": {
+ "backgroundColor": "d3e7f9ff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ },
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "0972d3ff",
+ "textColor": "0972d3ff"
+ },
+ "hover": {
+ "backgroundColor": "f2f8fdff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ }
+ }
+ }
+ }
+ },
+ "UseCognitoProvidedValues": false,
+ "UserPoolId": "ca-central-1_EXAMPLE"
+ }
+
+Output::
+
+ {
+ "ManagedLoginBranding": {
+ "Assets": [
+ {
+ "Bytes": "PHN2ZyB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiB2aWV3Qm94PSIwIDAgMjAwMDAgNDAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTcyNTlfMjM2Njc0KSI+CjxyZWN0IHdpZHRoPSIyMDAwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQpIi8+CjxwYXRoIGQ9Ik0wIDBIMjAwMDBWNDAwSDBWMFoiIGZpbGw9IiMxMjIwMzciIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQiIHgxPSItODk0LjI0OSIgeTE9IjE5OS45MzEiIHgyPSIxODAzNC41IiB5Mj0iLTU4OTkuNTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0JGODBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjhGQUIiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xNzI1OV8yMzY2NzQiPgo8cmVjdCB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
+ "Category": "PAGE_FOOTER_BACKGROUND",
+ "ColorMode": "DARK",
+ "Extension": "SVG"
+ }
+ ],
+ "CreationDate": 1732138490.642,
+ "LastModifiedDate": 1732140420.301,
+ "ManagedLoginBrandingId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
+ "Settings": {
+ "categories": {
+ "auth": {
+ "authMethodOrder": [
+ [
+ {
+ "display": "BUTTON",
+ "type": "FEDERATED"
+ },
+ {
+ "display": "INPUT",
+ "type": "USERNAME_PASSWORD"
+ }
+ ]
+ ],
+ "federation": {
+ "interfaceStyle": "BUTTON_LIST",
+ "order": [
+ ]
+ }
+ },
+ "form": {
+ "displayGraphics": true,
+ "instructions": {
+ "enabled": false
+ },
+ "languageSelector": {
+ "enabled": false
+ },
+ "location": {
+ "horizontal": "CENTER",
+ "vertical": "CENTER"
+ },
+ "sessionTimerDisplay": "NONE"
+ },
+ "global": {
+ "colorSchemeMode": "LIGHT",
+ "pageFooter": {
+ "enabled": false
+ },
+ "pageHeader": {
+ "enabled": false
+ },
+ "spacingDensity": "REGULAR"
+ },
+ "signUp": {
+ "acceptanceElements": [
+ {
+ "enforcement": "NONE",
+ "textKey": "en"
+ }
+ ]
+ }
+ },
+ "componentClasses": {
+ "buttons": {
+ "borderRadius": 8.0
+ },
+ "divider": {
+ "darkMode": {
+ "borderColor": "232b37ff"
+ },
+ "lightMode": {
+ "borderColor": "ebebf0ff"
+ }
+ },
+ "dropDown": {
+ "borderRadius": 8.0,
+ "darkMode": {
+ "defaults": {
+ "itemBackgroundColor": "192534ff"
+ },
+ "hover": {
+ "itemBackgroundColor": "081120ff",
+ "itemBorderColor": "5f6b7aff",
+ "itemTextColor": "e9ebedff"
+ },
+ "match": {
+ "itemBackgroundColor": "d1d5dbff",
+ "itemTextColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "defaults": {
+ "itemBackgroundColor": "ffffffff"
+ },
+ "hover": {
+ "itemBackgroundColor": "f4f4f4ff",
+ "itemBorderColor": "7d8998ff",
+ "itemTextColor": "000716ff"
+ },
+ "match": {
+ "itemBackgroundColor": "414d5cff",
+ "itemTextColor": "0972d3ff"
+ }
+ }
+ },
+ "focusState": {
+ "darkMode": {
+ "borderColor": "539fe5ff"
+ },
+ "lightMode": {
+ "borderColor": "0972d3ff"
+ }
+ },
+ "idpButtons": {
+ "icons": {
+ "enabled": true
+ }
+ },
+ "input": {
+ "borderRadius": 8.0,
+ "darkMode": {
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "5f6b7aff"
+ },
+ "placeholderColor": "8d99a8ff"
+ },
+ "lightMode": {
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "7d8998ff"
+ },
+ "placeholderColor": "5f6b7aff"
+ }
+ },
+ "inputDescription": {
+ "darkMode": {
+ "textColor": "8d99a8ff"
+ },
+ "lightMode": {
+ "textColor": "5f6b7aff"
+ }
+ },
+ "inputLabel": {
+ "darkMode": {
+ "textColor": "d1d5dbff"
+ },
+ "lightMode": {
+ "textColor": "000716ff"
+ }
+ },
+ "link": {
+ "darkMode": {
+ "defaults": {
+ "textColor": "539fe5ff"
+ },
+ "hover": {
+ "textColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "defaults": {
+ "textColor": "0972d3ff"
+ },
+ "hover": {
+ "textColor": "033160ff"
+ }
+ }
+ },
+ "optionControls": {
+ "darkMode": {
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "7d8998ff"
+ },
+ "selected": {
+ "backgroundColor": "539fe5ff",
+ "foregroundColor": "000716ff"
+ }
+ },
+ "lightMode": {
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "7d8998ff"
+ },
+ "selected": {
+ "backgroundColor": "0972d3ff",
+ "foregroundColor": "ffffffff"
+ }
+ }
+ },
+ "statusIndicator": {
+ "darkMode": {
+ "error": {
+ "backgroundColor": "1a0000ff",
+ "borderColor": "eb6f6fff",
+ "indicatorColor": "eb6f6fff"
+ },
+ "pending": {
+ "indicatorColor": "AAAAAAAA"
+ },
+ "success": {
+ "backgroundColor": "001a02ff",
+ "borderColor": "29ad32ff",
+ "indicatorColor": "29ad32ff"
+ },
+ "warning": {
+ "backgroundColor": "1d1906ff",
+ "borderColor": "e0ca57ff",
+ "indicatorColor": "e0ca57ff"
+ }
+ },
+ "lightMode": {
+ "error": {
+ "backgroundColor": "fff7f7ff",
+ "borderColor": "d91515ff",
+ "indicatorColor": "d91515ff"
+ },
+ "pending": {
+ "indicatorColor": "AAAAAAAA"
+ },
+ "success": {
+ "backgroundColor": "f2fcf3ff",
+ "borderColor": "037f0cff",
+ "indicatorColor": "037f0cff"
+ },
+ "warning": {
+ "backgroundColor": "fffce9ff",
+ "borderColor": "8d6605ff",
+ "indicatorColor": "8d6605ff"
+ }
+ }
+ }
+ },
+ "components": {
+ "alert": {
+ "borderRadius": 12.0,
+ "darkMode": {
+ "error": {
+ "backgroundColor": "1a0000ff",
+ "borderColor": "eb6f6fff"
+ }
+ },
+ "lightMode": {
+ "error": {
+ "backgroundColor": "fff7f7ff",
+ "borderColor": "d91515ff"
+ }
+ }
+ },
+ "favicon": {
+ "enabledTypes": [
+ "ICO",
+ "SVG"
+ ]
+ },
+ "form": {
+ "backgroundImage": {
+ "enabled": false
+ },
+ "borderRadius": 8.0,
+ "darkMode": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "424650ff"
+ },
+ "lightMode": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "c6c6cdff"
+ },
+ "logo": {
+ "enabled": false,
+ "formInclusion": "IN",
+ "location": "CENTER",
+ "position": "TOP"
+ }
+ },
+ "idpButton": {
+ "custom": {
+ },
+ "standard": {
+ "darkMode": {
+ "active": {
+ "backgroundColor": "354150ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ },
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "c6c6cdff",
+ "textColor": "c6c6cdff"
+ },
+ "hover": {
+ "backgroundColor": "192534ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "active": {
+ "backgroundColor": "d3e7f9ff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ },
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "424650ff",
+ "textColor": "424650ff"
+ },
+ "hover": {
+ "backgroundColor": "f2f8fdff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ }
+ }
+ }
+ },
+ "pageBackground": {
+ "darkMode": {
+ "color": "0f1b2aff"
+ },
+ "image": {
+ "enabled": true
+ },
+ "lightMode": {
+ "color": "ffffffff"
+ }
+ },
+ "pageFooter": {
+ "backgroundImage": {
+ "enabled": false
+ },
+ "darkMode": {
+ "background": {
+ "color": "0f141aff"
+ },
+ "borderColor": "424650ff"
+ },
+ "lightMode": {
+ "background": {
+ "color": "fafafaff"
+ },
+ "borderColor": "d5dbdbff"
+ },
+ "logo": {
+ "enabled": false,
+ "location": "START"
+ }
+ },
+ "pageHeader": {
+ "backgroundImage": {
+ "enabled": false
+ },
+ "darkMode": {
+ "background": {
+ "color": "0f141aff"
+ },
+ "borderColor": "424650ff"
+ },
+ "lightMode": {
+ "background": {
+ "color": "fafafaff"
+ },
+ "borderColor": "d5dbdbff"
+ },
+ "logo": {
+ "enabled": false,
+ "location": "START"
+ }
+ },
+ "pageText": {
+ "darkMode": {
+ "bodyColor": "b6bec9ff",
+ "descriptionColor": "b6bec9ff",
+ "headingColor": "d1d5dbff"
+ },
+ "lightMode": {
+ "bodyColor": "414d5cff",
+ "descriptionColor": "414d5cff",
+ "headingColor": "000716ff"
+ }
+ },
+ "phoneNumberSelector": {
+ "displayType": "TEXT"
+ },
+ "primaryButton": {
+ "darkMode": {
+ "active": {
+ "backgroundColor": "539fe5ff",
+ "textColor": "000716ff"
+ },
+ "defaults": {
+ "backgroundColor": "539fe5ff",
+ "textColor": "000716ff"
+ },
+ "disabled": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "ffffffff"
+ },
+ "hover": {
+ "backgroundColor": "89bdeeff",
+ "textColor": "000716ff"
+ }
+ },
+ "lightMode": {
+ "active": {
+ "backgroundColor": "033160ff",
+ "textColor": "ffffffff"
+ },
+ "defaults": {
+ "backgroundColor": "0972d3ff",
+ "textColor": "ffffffff"
+ },
+ "disabled": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "ffffffff"
+ },
+ "hover": {
+ "backgroundColor": "033160ff",
+ "textColor": "ffffffff"
+ }
+ }
+ },
+ "secondaryButton": {
+ "darkMode": {
+ "active": {
+ "backgroundColor": "354150ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ },
+ "defaults": {
+ "backgroundColor": "0f1b2aff",
+ "borderColor": "539fe5ff",
+ "textColor": "539fe5ff"
+ },
+ "hover": {
+ "backgroundColor": "192534ff",
+ "borderColor": "89bdeeff",
+ "textColor": "89bdeeff"
+ }
+ },
+ "lightMode": {
+ "active": {
+ "backgroundColor": "d3e7f9ff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ },
+ "defaults": {
+ "backgroundColor": "ffffffff",
+ "borderColor": "0972d3ff",
+ "textColor": "0972d3ff"
+ },
+ "hover": {
+ "backgroundColor": "f2f8fdff",
+ "borderColor": "033160ff",
+ "textColor": "033160ff"
+ }
+ }
+ }
+ }
+ },
+ "UseCognitoProvidedValues": false,
+ "UserPoolId": "ca-central-1_EXAMPLE"
+ }
+ }
+
+For more information, see `Apply branding to managed login pages `__ in the *Amazon Cognito Developer Guide*.
+
\ No newline at end of file
diff --git a/awscli/examples/cognito-idp/update-user-pool-client.rst b/awscli/examples/cognito-idp/update-user-pool-client.rst
index b2f922eb0a91..7a9425459a39 100644
--- a/awscli/examples/cognito-idp/update-user-pool-client.rst
+++ b/awscli/examples/cognito-idp/update-user-pool-client.rst
@@ -1,24 +1,121 @@
-**To update a user pool client**
-
-This example updates the name of a user pool client. It also adds a writeable attribute "nickname".
-
-Command::
-
- aws cognito-idp update-user-pool-client --user-pool-id us-west-2_aaaaaaaaa --client-id 3n4b5urk1ft4fl3mg5e62d9ado --client-name "NewClientName" --write-attributes "nickname"
-
-Output::
-
- {
- "UserPoolClient": {
- "UserPoolId": "us-west-2_aaaaaaaaa",
- "ClientName": "NewClientName",
- "ClientId": "3n4b5urk1ft4fl3mg5e62d9ado",
- "LastModifiedDate": 1548802761.334,
- "CreationDate": 1548178931.258,
- "RefreshTokenValidity": 30,
- "WriteAttributes": [
- "nickname"
- ],
- "AllowedOAuthFlowsUserPoolClient": false
- }
- }
\ No newline at end of file
+**To update an app client**
+
+The following ``update-user-pool-client`` example updates the configuration of the requested app client. ::
+
+ aws cognito-idp update-user-pool-client \
+ --user-pool-id us-west-2_EXAMPLE \
+ --client-id 1example23456789 \
+ --client-name my-test-app \
+ --refresh-token-validity 30 \
+ --access-token-validity 60 \
+ --id-token-validity 60 \
+ --token-validity-units AccessToken=minutes,IdToken=minutes,RefreshToken=days \
+ --read-attributes "address" "birthdate" "email" "email_verified" "family_name" "gender" "locale" "middle_name" "name" "nickname" "phone_number" "phone_number_verified" "picture" "preferred_username" "profile" "updated_at" "website" "zoneinfo" \
+ --write-attributes "address" "birthdate" "email" "family_name" "gender" "locale" "middle_name" "name" "nickname" "phone_number" "picture" "preferred_username" "profile" "updated_at" "website" "zoneinfo" \
+ --explicit-auth-flows "ALLOW_ADMIN_USER_PASSWORD_AUTH" "ALLOW_CUSTOM_AUTH" "ALLOW_REFRESH_TOKEN_AUTH" "ALLOW_USER_PASSWORD_AUTH" "ALLOW_USER_SRP_AUTH" \
+ --supported-identity-providers "MySAML" "COGNITO" "Google" \
+ --callback-urls "https://www.example.com" "https://app2.example.com" \
+ --logout-urls "https://auth.example.com/login?client_id=1example23456789&response_type=code&redirect_uri=https%3A%2F%2Fwww.example.com" "https://example.com/logout" \
+ --default-redirect-uri "https://www.example.com" \
+ --allowed-o-auth-flows "code" "implicit" \
+ --allowed-o-auth-scopes "openid" "profile" "aws.cognito.signin.user.admin" \
+ --allowed-o-auth-flows-user-pool-client \
+ --prevent-user-existence-errors ENABLED \
+ --enable-token-revocation \
+ --no-enable-propagate-additional-user-context-data \
+ --auth-session-validity 3
+
+Output::
+
+ {
+ "UserPoolClient": {
+ "UserPoolId": "us-west-2_EXAMPLE",
+ "ClientName": "my-test-app",
+ "ClientId": "1example23456789",
+ "LastModifiedDate": "2025-01-31T14:40:12.498000-08:00",
+ "CreationDate": "2023-09-13T16:26:34.408000-07:00",
+ "RefreshTokenValidity": 30,
+ "AccessTokenValidity": 60,
+ "IdTokenValidity": 60,
+ "TokenValidityUnits": {
+ "AccessToken": "minutes",
+ "IdToken": "minutes",
+ "RefreshToken": "days"
+ },
+ "ReadAttributes": [
+ "website",
+ "zoneinfo",
+ "address",
+ "birthdate",
+ "email_verified",
+ "gender",
+ "profile",
+ "phone_number_verified",
+ "preferred_username",
+ "locale",
+ "middle_name",
+ "picture",
+ "updated_at",
+ "name",
+ "nickname",
+ "phone_number",
+ "family_name",
+ "email"
+ ],
+ "WriteAttributes": [
+ "website",
+ "zoneinfo",
+ "address",
+ "birthdate",
+ "gender",
+ "profile",
+ "preferred_username",
+ "locale",
+ "middle_name",
+ "picture",
+ "updated_at",
+ "name",
+ "nickname",
+ "phone_number",
+ "family_name",
+ "email"
+ ],
+ "ExplicitAuthFlows": [
+ "ALLOW_CUSTOM_AUTH",
+ "ALLOW_USER_PASSWORD_AUTH",
+ "ALLOW_ADMIN_USER_PASSWORD_AUTH",
+ "ALLOW_USER_SRP_AUTH",
+ "ALLOW_REFRESH_TOKEN_AUTH"
+ ],
+ "SupportedIdentityProviders": [
+ "Google",
+ "COGNITO",
+ "MySAML"
+ ],
+ "CallbackURLs": [
+ "https://www.example.com",
+ "https://app2.example.com"
+ ],
+ "LogoutURLs": [
+ "https://example.com/logout",
+ "https://auth.example.com/login?client_id=1example23456789&response_type=code&redirect_uri=https%3A%2F%2Fwww.example.com"
+ ],
+ "DefaultRedirectURI": "https://www.example.com",
+ "AllowedOAuthFlows": [
+ "implicit",
+ "code"
+ ],
+ "AllowedOAuthScopes": [
+ "aws.cognito.signin.user.admin",
+ "openid",
+ "profile"
+ ],
+ "AllowedOAuthFlowsUserPoolClient": true,
+ "PreventUserExistenceErrors": "ENABLED",
+ "EnableTokenRevocation": true,
+ "EnablePropagateAdditionalUserContextData": false,
+ "AuthSessionValidity": 3
+ }
+ }
+
+For more information, see `Application-specific settings with app clients `__ in the *Amazon Cognito Developer Guide*.
\ No newline at end of file
diff --git a/awscli/examples/cognito-idp/update-user-pool-domain.rst b/awscli/examples/cognito-idp/update-user-pool-domain.rst
new file mode 100644
index 000000000000..54bb0cff1530
--- /dev/null
+++ b/awscli/examples/cognito-idp/update-user-pool-domain.rst
@@ -0,0 +1,18 @@
+**To update a custom domain**
+
+The following ``update-user-pool-domain`` example configures the branding version and certificate for the custom domain the requested user pool. ::
+
+ aws cognito-idp update-user-pool-domain \
+ --user-pool-id ca-central-1_EXAMPLE \
+ --domain auth.example.com \
+ --managed-login-version 2 \
+ --custom-domain-config CertificateArn=arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
+
+Output::
+
+ {
+ "CloudFrontDomain": "example.cloudfront.net",
+ "ManagedLoginVersion": 2
+ }
+
+For more information, see `Managed login